QSharedGLTexture Class
class Qt3DRender::QSharedGLTextureAllows to use a textureId from a separate OpenGL context in a Qt 3D scene. More...
Header: | #include <Qt3DRender/QTexture> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake: | QT += 3drender |
Instantiated By: | SharedGLTexture |
Inherits: | Qt3DRender::QAbstractTexture |
Properties
- textureId : int
Public Functions
int | textureId() const |
Public Slots
void | setTextureId(int id) |
Signals
void | textureIdChanged(int textureId) |
Detailed Description
Depending on the rendering mode used by Qt 3D, the shared context will either be:
- qt_gl_global_share_context when letting Qt 3D drive the rendering. When setting the attribute Qt::AA_ShareOpenGLContexts on the QApplication class, this will automatically make QOpenGLWidget instances have their context shared with qt_gl_global_share_context.
- the shared context from the QtQuick scene. You might have to subclass QWindow or use QtQuickRenderControl to have control over what that shared context is though as of 5.13 it is qt_gl_global_share_context.
Any 3rd party engine that shares its context with the Qt 3D renderer can now provide texture ids that will be referenced by the Qt 3D texture.
You can omit specifying the texture properties, Qt 3D will try at runtime to determine what they are. If you know them, you can of course provide them, avoid additional work for Qt 3D.
Keep in mind that if you are using custom materials and shaders, you need to specify the correct sampler type to be used.
© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.