The QSGEngine class allows low level rendering of a scene graph. 更多...
头: | #include <QSGEngine> |
qmake: | QT += quick |
Since: | Qt 5.4 |
继承: | QObject |
enum | CreateTextureOption { TextureHasAlphaChannel, TextureOwnsGLTexture, TextureCanUseAtlas, TextureIsOpaque } |
flags | CreateTextureOptions |
QSGEngine (QObject * parent = nullptr) | |
virtual | ~QSGEngine () override |
QSGImageNode * | createImageNode () const |
QSGNinePatchNode * | createNinePatchNode () const |
QSGRectangleNode * | createRectangleNode () const |
QSGAbstractRenderer * | createRenderer () const |
QSGTexture * | createTextureFromId (uint id , const QSize & size , QSGEngine::CreateTextureOptions options = CreateTextureOption()) const |
QSGTexture * | createTextureFromImage (const QImage & image , QSGEngine::CreateTextureOptions options = CreateTextureOption()) const |
void | initialize (QOpenGLContext * context ) |
void | invalidate () |
QSGRendererInterface * | rendererInterface () const |
const QMetaObject | staticMetaObject |
The QSGEngine class allows low level rendering of a scene graph.
A QSGEngine can be used to render a tree of QSGNode directly on a QWindow or QOpenGLFramebufferObject without any integration with QML, QQuickWindow or QQuickItem and the convenience that they provide.
This means that you must handle event propagation, animation timing, and node lifetime yourself.
注意: This class is for very low level access to an independent scene graph. Most of the time you will instead want to subclass QQuickItem and insert your QSGNode in a normal QtQuick scene by overriding QQuickItem::updatePaintNode ().
另请参阅 QSGAbstractRenderer .
The CreateTextureOption enums are used to customize how a texture is wrapped.
常量 | 值 | 描述 |
---|---|---|
QSGEngine::TextureHasAlphaChannel
|
0x0001
|
The texture has an alpha channel and should be drawn using blending. |
QSGEngine::TextureOwnsGLTexture
|
0x0004
|
The texture object owns the texture id and will delete the GL texture when the texture object is deleted. |
QSGEngine::TextureCanUseAtlas
|
0x0008
|
The image can be uploaded into a texture atlas. |
QSGEngine::TextureIsOpaque
|
0x0010
|
The texture object is opaque. |
CreateTextureOptions 类型是 typedef 对于 QFlags <CreateTextureOption>. It stores an OR combination of CreateTextureOption values.
构造新的 QSGEngine 采用其 parent
[override virtual]
QSGEngine::
~QSGEngine
()
Destroys the engine
创建简单图像节点。当场景图形未初始化时,返回值为 null。
这是直接构造 QSGSimpleTextureNode 的跨后端替代。
该函数在 Qt 5.8 引入。
另请参阅 QSGImageNode .
创建 9 个补丁节点。当场景图形未初始化时,返回值为 null。
该函数在 Qt 5.8 引入。
创建简单矩形节点。当场景图形未初始化时,返回值为 null。
这是直接构造 QSGSimpleRectNode 的跨后端替代。
该函数在 Qt 5.8 引入。
另请参阅 QSGRectangleNode .
Returns a renderer that can be used to render a QSGNode tree
You call initialize () first with the QOpenGLContext that you want to use with this renderer. This will return a null renderer otherwise.
Creates a texture object that wraps the GL texture id uploaded with size
Valid options are TextureHasAlphaChannel and TextureOwnsGLTexture
The caller takes ownership of the texture object and the texture should only be used with this engine.
另请参阅 createTextureFromImage (), QSGSimpleTextureNode::setOwnsTexture (),和 QQuickWindow::createTextureFromId ().
Creates a texture using the data of image
Valid options are TextureCanUseAtlas and TextureIsOpaque .
The caller takes ownership of the texture and the texture should only be used with this engine.
另请参阅 createTextureFromId (), QSGSimpleTextureNode::setOwnsTexture (),和 QQuickWindow::createTextureFromImage ().
Initialize the engine with context .
警告: You have to make sure that you call QOpenGLContext::makeCurrent () 在 context before calling this.
Invalidate the engine releasing its resources
You will have to call initialize () 和 createRenderer () if you want to use it again.
Returns the current renderer interface if there is one. Otherwise null is returned.
该函数在 Qt 5.8 引入。
另请参阅 QSGRenderNode and QSGRendererInterface .