IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

QSGEngine Class

The QSGEngine class allows low level rendering of a scene graph.

This class was introduced in Qt 5.4.

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

QSGEngine Class

  • Header: QSGEngine

  • Since: Qt 5.4

  • qmake: QT += quick

  • Inherits: QObject

Detailed Description

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().

See Also

Member Type Documentation

 

enum QSGEngine::CreateTextureOption

flags QSGEngine::CreateTextureOptions

The CreateTextureOption enums are used to customize how a texture is wrapped.

Constant

Value

Description

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.

The CreateTextureOptions type is a typedef for QFlags<CreateTextureOption>. It stores an OR combination of CreateTextureOption values.

Member Function Documentation

 

[explicit] QSGEngine::QSGEngine(QObject *parent = nullptr)

Constructs a new QSGEngine with its parent

[override virtual] QSGEngine::~QSGEngine()

Destroys the engine

[since 5.8] QSGImageNode *QSGEngine::createImageNode() const

Creates a simple image node. When the scenegraph is not initialized, the return value is null.

This is cross-backend alternative to constructing a QSGSimpleTextureNode directly.

This function was introduced in Qt 5.8.

See Also

See also QSGImageNode

[since 5.8] QSGNinePatchNode *QSGEngine::createNinePatchNode() const

Creates a nine patch node. When the scenegraph is not initialized, the return value is null.

This function was introduced in Qt 5.8.

[since 5.8] QSGRectangleNode *QSGEngine::createRectangleNode() const

Creates a simple rectangle node. When the scenegraph is not initialized, the return value is null.

This is cross-backend alternative to constructing a QSGSimpleRectNode directly.

This function was introduced in Qt 5.8.

See Also

See also QSGRectangleNode

QSGAbstractRenderer *QSGEngine::createRenderer() const

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.

QSGTexture *QSGEngine::createTextureFromId(uint id, const QSize &size, QSGEngine::CreateTextureOptions options = CreateTextureOption()) const

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.

See Also

QSGTexture *QSGEngine::createTextureFromImage(const QImage &image, QSGEngine::CreateTextureOptions options = CreateTextureOption()) const

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.

See Also

void QSGEngine::initialize(QOpenGLContext *context)

Initialize the engine with context.

You have to make sure that you call QOpenGLContext::makeCurrent() on context before calling this.

void QSGEngine::invalidate()

Invalidate the engine releasing its resources

You will have to call initialize() and createRenderer() if you want to use it again.

[since 5.8] QSGRendererInterface *QSGEngine::rendererInterface() const

Returns the current renderer interface if there is one. Otherwise null is returned.

This function was introduced in Qt 5.8.

See Also

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+