您的位置:首页 > 编程语言 > Qt开发

qt中的OpenGL代码框架

2016-04-23 21:22 344 查看
initializeGL() 注册函数,在此设置GL的渲染绘制属性、定义显示列表、载入固定纹理等初始化工作。在initializeGL()在调用paintGL()之前只被调用一次,之后不再调用。
paintGL() 绘制函数,在此使用OpenGL中的接口进行场景绘制,QGLWidget的paintEvent( QPaintEvent* )将会自动调用 paintGL()进行部件的显示绘制。也可在需要重绘时通过updateGL()时调用paintGL()。
resizeGL() 该函数用于处理当部件大小发生改变时,对OpenGL绘图管线各矩阵需要进行的操作。该函数paintGL()第一次调用之前,initializeGL()调用之后被第一次被调用, 之后每当QGLWidget的不见大小发生改变时,都将调用该函数来对视图、投影矩阵等进行相应的设置。

可在任何需要刷新场景绘制的地方通过调用updateGL()来通知OpenGL进行重绘,但updateGL()自身不用实现。
与QWidget相同,鼠标和键盘事件是通过mousePressEvent()和keyPressEvent()等事件处理函数进行处理的。要创建动画,只需启动QTimer,然后调用updateGL()。但应注意,如果需要在QGLWidget派生类之外的其他函数中进行paintGL()相同功能的绘制,需要先使用makeCurrent()接口将后面绘制的上下文对象(Context)标记为当前上下文对象(Current
Context)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: