OpenGL【1】视图类与鼠标坐标操作

本文探讨了OpenGL中glFlush和glFinish的使用,通过分段调用来提升渲染效率。作者建议在GPU执行长时间绘制时,利用多线程进行辅助计算或者采用CPU时间预算方法来优化。此外,还提到了窗口重绘和保持图像比例的处理方法。
摘要由CSDN通过智能技术生成
定义视窗大小的函数
glViewport (0, 0,  w,  h); (<—这玩意儿一定要记得后面两个参数是长和高,不是x,y坐标)
在自定义的mydisplay函数里面任意时刻开始编写。定义窗口位置数据从左下角开始(0,0),右上角结束
(参考链接glviewport)
从下图可以知道,无论如何扩大窗口,glviewport后的绘图代码,只在定义的左下角400x400区域绘制

OpenGL【1】视图类与鼠标坐标操作

这里可以设置矩阵模式:
glMatrixMode (GL_PROJECTION);

创建完视觉范围glviewport以后,在创建gluOrtho2D正交投影或者透视投影坐标之前,必须先装载单位矩阵,不然每次都会依照上一次运算完的矩阵叠加装载,在gl循环里面会不断更改视角,结果回悲剧。
glLoadIdentity ();

然后就是创建投影坐标:
gluOrtho2D (0, w, 0, h);


强制刷新命令
(参考链接: glFlush和glFinish以及SwapBuffer的用法

    OpenGL 绘图的机制是: 先用 OpenGL 的绘图上下文 Rendering Context (简称为 RC )把图画好,再把所绘结果通过 SwapBuffer() 函数传给 Window 的 绘图上下文 Device Context (简记为 DC).要注意的是,程序运行过程中,可以有多个 DC,但只能有一个 RC。因此当一个 DC 画完图后,要立即释放 RC,以便其它的 DC 也使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值