- Qt 6.7
- Qt Quick
- C++ Classes
- QSGSimpleTextureNode
- Qt 6.7.0 Reference Documentation

# QSGSimpleTextureNode Class

The QSGSimpleTextureNode class is provided for convenience to easily draw textured content using the QML scene graph. More...

Header: | #include <QSGSimpleTextureNode>
CMake: | find_package(Qt6 REQUIRED COMPONENTS Quick) target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake: | QT += quick
Inherits: | QSGGeometryNode

- List of all members, including inherited members

## Public Types

enum | TextureCoordinatesTransformFlag { NoTransform, MirrorHorizontally, MirrorVertically }
flags | TextureCoordinatesTransformMode

## Public Functions

| QSGSimpleTextureNode()
virtual | ~QSGSimpleTextureNode() override
QSGTexture::Filtering | filtering() const
bool | ownsTexture() const
QRectF | rect() const
void | setFiltering(QSGTexture::Filtering filtering)
void | setOwnsTexture(bool owns)
void | setRect(const QRectF &r)
void | setRect(qreal x, qreal y, qreal w, qreal h)
void | setSourceRect(const QRectF &r)
void | setSourceRect(qreal x, qreal y, qreal w, qreal h)
void | setTexture(QSGTexture *texture)
void | setTextureCoordinatesTransform(QSGSimpleTextureNode::TextureCoordinatesTransformMode mode)
QRectF | sourceRect() const
QSGTexture * | texture() const
QSGSimpleTextureNode::TextureCoordinatesTransformMode | textureCoordinatesTransform() const

## Detailed Description

Warning: The simple texture node class must have a texture before being added to the scene graph to be rendered.

Warning: This utility class is only functional when running with the default or software backends of the Qt Quick scenegraph. As an alternative, prefer using QSGImageNode via QQuickWindow::createImageNode(). However, this standalone class is still useful when used via subclassing and the application knows that no special scenegraph backends will be involved.

## Member Type Documentation

### enum QSGSimpleTextureNode::TextureCoordinatesTransformFlag
flags QSGSimpleTextureNode::TextureCoordinatesTransformMode

The TextureCoordinatesTransformFlag enum is used to specify the mode used to generate texture coordinates for a textured quad.

Constant | Value | Description
--- | --- | ---
`QSGSimpleTextureNode::NoTransform` | `0x00` | Texture coordinates are oriented with window coordinates i.e. with origin at top-left.
`QSGSimpleTextureNode::MirrorHorizontally` | `0x01` | Texture coordinates are inverted in the horizontal axis with respect to window coordinates
`QSGSimpleTextureNode::MirrorVertically` | `0x02` | Texture coordinates are inverted in the vertical axis with respect to window coordinates

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

## Member Function Documentation

### QSGSimpleTextureNode::QSGSimpleTextureNode()

Constructs a new simple texture node

### `[override virtual noexcept]` QSGSimpleTextureNode::~QSGSimpleTextureNode()

Destroys the texture node

### QSGTexture::Filtering QSGSimpleTextureNode::filtering() const

Returns the filtering currently set on this texture node

See also setFiltering().

### bool QSGSimpleTextureNode::ownsTexture() const

Returns `true` if the node takes ownership of the texture; otherwise returns `false`.

See also setOwnsTexture().

### QRectF QSGSimpleTextureNode::rect() const

Returns the target rect of this texture node.

See also setRect().

### void QSGSimpleTextureNode::setFiltering(QSGTexture::Filtering filtering)

Sets the filtering to be used for this texture node to filtering.

For smooth scaling, use QSGTexture::Linear; for normal scaling, use QSGTexture::Nearest.

See also filtering().

### void QSGSimpleTextureNode::setOwnsTexture(bool owns)

Sets whether the node takes ownership of the texture to owns.

By default, the node does not take ownership of the texture.

See also ownsTexture() and setTexture().

### void QSGSimpleTextureNode::setRect(const QRectF &r)

Sets the target rect of this texture node to r.

See also rect().

### void QSGSimpleTextureNode::setRect(qreal x, qreal y, qreal w, qreal h)

This is an overloaded function.

Sets the rectangle of this texture node to begin at (x, y) and have width w and height h.

### void QSGSimpleTextureNode::setSourceRect(const QRectF &r)

Sets the source rect of this texture node to r.

See also sourceRect().

### void QSGSimpleTextureNode::setSourceRect(qreal x, qreal y, qreal w, qreal h)

This is an overloaded function.

Sets the rectangle of this texture node to show its texture from (x, y) and have width w and height h relatively to the QSGTexture::textureSize.

### void QSGSimpleTextureNode::setTexture(QSGTexture *texture)

Sets the texture of this texture node to texture.

Use setOwnsTexture() to set whether the node should take ownership of the texture. By default, the node does not take ownership.

Warning: A texture node must have a texture before being added to the scenegraph to be rendered.

See also texture().

### void QSGSimpleTextureNode::setTextureCoordinatesTransform(QSGSimpleTextureNode::TextureCoordinatesTransformMode mode)

Sets the method used to generate texture coordinates to mode. This can be used to obtain correct orientation of the texture. This is commonly needed when using a third party OpenGL library to render to texture as OpenGL has an inverted y-axis relative to Qt Quick.

See also textureCoordinatesTransform().

### QRectF QSGSimpleTextureNode::sourceRect() const

Returns the source rect of this texture node.

See also setSourceRect().

### QSGTexture *QSGSimpleTextureNode::texture() const

Returns the texture for this texture node

See also setTexture().

### QSGSimpleTextureNode::TextureCoordinatesTransformMode QSGSimpleTextureNode::textureCoordinatesTransform() const

Returns the mode used to generate texture coordinates for this node.

See also setTextureCoordinatesTransform().