找回密码
 立即注册
收起左侧

QGLWidget的paintGL重载

5
回复
9395
查看
[复制链接]
累计签到:331 天
连续签到:1 天
来源: 2013-12-11 11:27:21 显示全部楼层 |阅读模式
1Qter豆
QT4版本下,重载paintGL函数时不加入glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT),而将其放入initializeGL函数中不起效果。(测试在不做绘图情况下,屏幕颜色也无法清屏)
如果paintGL中不加入glClear,则后续函数无法在屏幕绘制,黑屏。
那么如果想实现叠加绘图,就只能保存之前的帧,这和非qt下的opengl非常不同,求解。

最佳答案

查看完整内容

可以通过在前面绘图来实现啊。
回复

使用道具 举报

累计签到:1570 天
连续签到:1 天
2013-12-11 11:27:22 显示全部楼层
可以通过在前面绘图来实现啊。
回复

使用道具 举报

累计签到:331 天
连续签到:1 天
2013-12-17 08:08:26 显示全部楼层
yafeilinux 发表于 2013-12-16 10:35
可以通过在前面绘图来实现啊。

能不能详细点,什么是在前面绘图。
之前自己找了一些资料,按照doc给的资料这种效果叫做叠置绘图——overlay paint。
按照里面给的设置在程序运行是检测hasopengloverlay返回false。
回复

使用道具 举报

累计签到:331 天
连续签到:1 天
2013-12-17 08:10:53 显示全部楼层
之前在win下用glut库是默认绘图时候不加以清除就是叠置,实现有所区别。不想再qt里面再嵌入glut,有点画蛇添足的味道。
回复

使用道具 举报

累计签到:1570 天
连续签到:1 天
2013-12-17 16:01:19 显示全部楼层
loadomain 发表于 2013-12-17 08:10
之前在win下用glut库是默认绘图时候不加以清除就是叠置,实现有所区别。不想再qt里面再嵌入glut,有点画蛇 ...

啊,我的意思就是不清除,直接在上面绘图啊,这样不行吗?
回复

使用道具 举报

累计签到:331 天
连续签到:1 天
2013-12-18 08:26:34 显示全部楼层
yafeilinux 发表于 2013-12-17 16:01
啊,我的意思就是不清除,直接在上面绘图啊,这样不行吗?

我试过了,在paintGL里glclear不使用不行,窗口刷不出来,另外如果将清楚放在initialgl里又没有效果。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了