• 4338阅读
  • 2回复

QPainer、QImage和OpenGL的问题 [复制链接]

上一主题 下一主题
离线roywillow
 

只看楼主 倒序阅读 楼主  发表于: 2011-12-16
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2011-12-19) —
最近在跟朋友讨论的时候,突然想起了一个问题,就是QPainterQImage上绘图的时候,能否使用OpenGL进行加速?
目前搜索到的资料都是QPainter的device为QGLWidget的时候会自动使用GL的paintEngine。但是如果我想先在QImage等上面先绘制图像,并且进行相关处理,然后再绘制到窗口上,毕竟直接绘制到窗口上很多效果不太好实现,比如扭曲、模糊等。
由于绘图处理的大头都在QImage上面了,所以我想这一步如果能用GL进行加速最好,不知能否实现?或者利用Qt OpenGL的一些机制进行替代?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线roywillow

只看该作者 1楼 发表于: 2011-12-16
该怎么说呢……看到这个文章后好像找到了点线索
http://www.linuxgraphics.cn/qt/paint_system.html
里面提到了个QGLPixelBuffer类,用它的toImage()函数似乎能实现我想要的效果
有没有哪位兄弟尝试过这个东西?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线ninsun

只看该作者 2楼 发表于: 2011-12-19
我记得,用QPainter的时候,并不是直接就绘制的。
也就是说,QPainter绘制的时候只是储存了绘制的步骤。
应该是只有等QImage真正开始绘制的时候才会调用QPainter设计好的“步骤”去绘制了吧。

不过只是猜测……所以应该不具有什么参考意义……
PS:我发觉……为什么使用OpenGL的时候效果不仅没有不用的时候好,速度也没有什么提升呢……
快速回复
限100 字节
 
上一个 下一个