Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该QGLPixelBuffer类封装了一个OpenGL pbuffer的。More...
继承QPaintDevice。
该QGLPixelBuffer类封装了一个OpenGL pbuffer的。
渲染到pbuffer的通常情况下用完整的硬件加速。这可以比渲染成显着更快QPixmap。
有三种方法来使用这个类:
由于Qt的4.8的,有可能使用的是渲染成QGLPixelBufferQPainter在一个单独的线程。需要注意的是OpenGL的2.0或OpenGL ES 2.0的是需要这种合作。此外, X11下,有必要设置Qt.AA_X11InitThreads应用属性。
pbuffers的是通过对OpenGL提供pbuffer扩展;调用hasOpenGLPbuffer ( ) ,以找出是否为系统提供pbuffers的。
构造给定一个OpenGL pbuffer的size。如果没有format被指定,则default format被使用。如果shareWidget参数指向一个有效的QGLWidget,该pbuffer的将共享其上下文shareWidget。
如果您打算在这个pbuffer的绑定为一个动态纹理的宽度和高度组件size必须是两个(例如, 512× 128)的权力。
这是一个重载函数。
构造一个OpenGL pbuffer的同width和height。如果没有format被指定,则default format被使用。如果shareWidget参数指向一个有效的QGLWidget,该pbuffer的将共享其上下文shareWidget。
如果您打算在这个pbuffer的绑定为一个动态纹理的宽度和高度组件size必须是两个(例如, 512× 128)的权力。
生成和二维GL纹理绑定到当前上下文的基础上,image。所生成的纹理ID被返回,并且可以被用于在以后glBindTexture ()调用。
该target参数指定纹理目标。
相当于调用QGLContext.bindTexture( ) 。
See also deleteTexture( ) 。
这是一个重载函数。
生成并根据绑定一个2D GL纹理pixmap。
相当于调用QGLContext.bindTexture( ) 。
See also deleteTexture( ) 。
这是一个重载函数。
读取DirectDrawSurface ( DDS )压缩文件fileName并从它生成一个二维GL纹理。
相当于调用QGLContext.bindTexture( ) 。
See also deleteTexture( ) 。
通过绑定指定的质感texture_id该pbuffer的。成功时返回TRUE ,否则返回False 。
纹理必须是相同的尺寸和格式的pbuffer的的。
要解除绑定纹理,呼叫releaseFromDynamicTexture( ) 。虽然质地是绑定的,它会自动更新时, pbuffer的内容发生变化,不再需要额外的复制操作。
例如:
QGLPixelBuffer pbuffer(...); ... pbuffer.makeCurrent(); GLuint dynamicTexture = pbuffer.generateDynamicTexture(); pbuffer.bindToDynamicTexture(dynamicTexture); ... pbuffer.releaseFromDynamicTexture();
Warning:该函数使用render_texture扩展,这是目前没有在X11下的支持。在所有的系统(包括X11)的作品另一种方法是手动使用pbuffer的内容复制到一个纹理updateDynamicTexture( ) 。
Warning:对于bindToDynamicTexture ( )调用成功,在Mac OS X上, pbuffer的需要一个共享的情况下,即QGLPixelBuffer必须以份额小部件来创建。
See also generateDynamicTexture()和releaseFromDynamicTexture( ) 。
去除所确定的纹理texture_id从纹理高速缓存。
相当于调用QGLContext.deleteTexture( ) 。
是没有上下文的当前OpenGL上下文。成功时返回TRUE ,否则返回False 。
绘制给定的质感,textureId向给定目标矩形,target在OpenGL的模型空间。该textureTarget应该是一个2D纹理的目标。
等同于相应的QGLContext.drawTexture( ) 。
此功能被引入Qt的4.4 。
绘制给定的质感,textureId,在给定的point在OpenGL的模型空间。该textureTarget参数应该是一个2D纹理的目标。
等同于相应的QGLContext.drawTexture( ) 。
此功能被引入Qt的4.4 。
返回pbuffer的格式。该格式可以是从被请求的不同。
生成并结合一个2D GL的手感是大小相同的pbuffer的,并返回该纹理的ID。这可与结合使用bindToDynamicTexture()和updateDynamicTexture( ) 。
See also size( ) 。
返回本机pbuffer的句柄。
返回True如果OpenGL的pbuffer扩展出现在这个系统上,否则返回False 。
返回True如果pbuffer的是有效的,否则返回False 。
使得这个pbuffer的当前OpenGL渲染上下文。成功时返回TRUE ,否则返回False 。
See also QGLContext.makeCurrent()和doneCurrent( ) 。
从重新实现QPaintDevice.metric( ) 。
从重新实现QPaintDevice.paintEngine( ) 。
发布任何以前绑定的质感pbuffer的。
See also bindToDynamicTexture( ) 。
返回pbuffer的大小。
返回pbuffer的内容作为QImage。
与指定复制pbuffer的内容到纹理texture_id。
纹理必须是相同的尺寸和格式的pbuffer的的。
例如:
QGLPixelBuffer pbuffer(...); ... pbuffer.makeCurrent(); GLuint dynamicTexture = pbuffer.generateDynamicTexture(); ... pbuffer.updateDynamicTexture(dynamicTexture);
在支持Windows和Mac OS X系统的替代render_texture分机是用bindToDynamicTexture()来获取纹理的动态更新。
See also generateDynamicTexture()和bindToDynamicTexture( ) 。
PyQt 4.10.3 for X11 | Copyright © Riverbank Computing Ltd and Nokia 2012 | Qt 4.8.5 |