PySide6.QtOpenGL.QOpenGLTextureBlitter¶
- class QOpenGLTextureBlitter¶
- The - QOpenGLTextureBlitterclass provides a convenient way to draw textured quads via OpenGL. More…- Synopsis¶- Methods¶- def - __init__()
- def - bind()
- def - blit()
- def - create()
- def - destroy()
- def - isCreated()
- def - release()
- def - setOpacity()
 - Static functions¶- Note - This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE - Detailed Description¶- Drawing textured quads, in order to get the contents of a texture onto the screen, is a common operation when developing 2D user interfaces. - QOpenGLTextureBlitterprovides a convenience class to avoid repeating vertex data, shader sources, buffer and program management and matrix calculations.- For example, a - QOpenGLWidgetsubclass can do the following to draw the contents rendered into a framebuffer at the pixel position- (x, y):- void OpenGLWidget::initializeGL() { m_blitter.create(); m_fbo = new QOpenGLFramebufferObject(size); } void OpenGLWidget::paintGL() { m_fbo->bind(); // update offscreen content m_fbo->release(); m_blitter.bind(); const QRect targetRect(QPoint(x, y), m_fbo->size()); const QMatrix4x4 target = QOpenGLTextureBlitter::targetTransform(targetRect, QRect(QPoint(0, 0), m_fbo->size())); m_blitter.blit(m_fbo->texture(), target, QOpenGLTextureBlitter::OriginBottomLeft); m_blitter.release(); } - The blitter implements GLSL shaders both for GLSL 1.00 (suitable for OpenGL (ES) 2.x and compatibility profiles of newer OpenGL versions) and version 150 (suitable for core profile contexts with OpenGL 3.2 and newer). - class Origin¶
- Constant - Description - QOpenGLTextureBlitter.OriginBottomLeft - Indicates that the data in the texture follows the OpenGL convention of coordinate systems, meaning Y is running from bottom to top. - QOpenGLTextureBlitter.OriginTopLeft - Indicates that the data in the texture has Y running from top to bottom, which is typical with regular, unflipped image data. - See also 
 - __init__()¶
 - Constructs a new - QOpenGLTextureBlitterinstance.- Note - no graphics resources are initialized in the constructor. This makes it safe to place plain - QOpenGLTextureBlittermembers into classes because the actual initialization that depends on the OpenGL context happens only in- create().- bind([target=GL_TEXTURE_2D])¶
- Parameters:
- target – int 
 
 - Binds the graphics resources used by the blitter. This must be called before calling - blit(). Code modifying the OpenGL state should be avoided between the call to bind() and- blit()because otherwise conflicts may arise.- targetis the texture target for the source texture and must be either- GL_TEXTURE_2D,- GL_TEXTURE_RECTANGLE, or- GL_OES_EGL_image_external.- blit(texture, targetTransform, sourceOrigin)¶
- Parameters:
- texture – int 
- targetTransform – - QMatrix4x4
- sourceOrigin – - Origin
 
 
 - blit(texture, targetTransform, sourceTransform)
- Parameters:
- texture – int 
- targetTransform – - QMatrix4x4
- sourceTransform – - QMatrix3x3
 
 
 - create()¶
- Return type:
- bool 
 
 - Initializes the graphics resources used by the blitter. - Returns - trueif successful,- falseif there was a failure. Failures can occur when there is no OpenGL context current on the current thread, or when shader compilation fails for some reason.- See also - destroy()¶
 - Frees all graphics resources held by the blitter. Assumes that the OpenGL context, or another context sharing resources with it, that was current on the thread when invoking - create()is current.- The function has no effect when the blitter is not in created state. - See also - isCreated()¶
- Return type:
- bool 
 
 - Returns - trueif- create()was called and succeeded.- falseotherwise.- release()¶
 - Unbinds the graphics resources used by the blitter. - See also - setOpacity(opacity)¶
- Parameters:
- opacity – float 
 
 - Changes the opacity to - opacity. The default opacity is 1.0.- Note - the blitter does not alter the blend state. It is up to the caller of - blit()to ensure the correct blend settings are active.- setRedBlueSwizzle(swizzle)¶
- Parameters:
- swizzle – bool 
 
 - Sets whether swizzling is enabled for the red and blue color channels to - swizzle. An BGRA to RGBA conversion (occurring in the shader on the GPU, instead of a slow CPU-side transformation) can be useful when the source texture contains data from a QImage with a format like QImage::Format_ARGB32 which maps to BGRA on little endian systems.- By default the red-blue swizzle is disabled since this is what a texture attached to an framebuffer object or a texture based on a byte ordered QImage format (like QImage::Format_RGBA8888) needs. - static sourceTransform(subTexture, textureSize, origin)¶
- Parameters:
- Return type:
 
 - Calculates a 3x3 matrix suitable as the input to - blit(). This is used when only a part of the texture is to be used in the blit.- subTextureis the desired source rectangle in pixels,- textureSizeis the full width and height of the texture data.- originspecifies the orientation of the image data when it comes to the Y axis.- supportsExternalOESTarget()¶
- Return type:
- bool 
 
 - Returns - truewhen- bind()accepts- GL_TEXTURE_EXTERNAL_OESas its target argument.- supportsRectangleTarget()¶
- Return type:
- bool 
 
 - Returns - truewhen- bind()accepts- GL_TEXTURE_RECTANGLEas its target argument.- static targetTransform(target, viewport)¶
- Parameters:
- Return type:
 
 - Calculates a target transform suitable for - blit().- targetis the target rectangle in pixels.- viewportdescribes the source dimensions and will in most cases be set to (0, 0, image width, image height).- For unscaled output the size of - targetand- viewportshould match.- See also