QSGImageNode Class

提供 QSGImageNode 类是为了方便使用 QML 场景图轻松绘制纹理内容。更多

Header: #include <QSGImageNode>
CMake: find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake: QT += quick
继承: QSGGeometryNode

公共类型

enum TextureCoordinatesTransformFlag { NoTransform, MirrorHorizontally, MirrorVertically }
flags TextureCoordinatesTransformMode

公共函数

virtual QSGTexture::AnisotropyLevel anisotropyLevel() const = 0
virtual QSGTexture::Filtering filtering() const = 0
virtual QSGTexture::Filtering mipmapFiltering() const = 0
virtual bool ownsTexture() const = 0
virtual QRectF rect() const = 0
virtual void setAnisotropyLevel(QSGTexture::AnisotropyLevel level) = 0
virtual void setFiltering(QSGTexture::Filtering filtering) = 0
virtual void setMipmapFiltering(QSGTexture::Filtering filtering) = 0
virtual void setOwnsTexture(bool owns) = 0
virtual void setRect(const QRectF &rect) = 0
void setRect(qreal x, qreal y, qreal w, qreal h)
virtual void setSourceRect(const QRectF &rect) = 0
void setSourceRect(qreal x, qreal y, qreal w, qreal h)
virtual void setTexture(QSGTexture *texture) = 0
virtual void setTextureCoordinatesTransform(QSGImageNode::TextureCoordinatesTransformMode mode) = 0
virtual QRectF sourceRect() const = 0
virtual QSGTexture *texture() const = 0
virtual QSGImageNode::TextureCoordinatesTransformMode textureCoordinatesTransform() const = 0

静态公共成员

void rebuildGeometry(QSGGeometry *g, QSGTexture *texture, const QRectF &rect, QRectF sourceRect, QSGImageNode::TextureCoordinatesTransformMode texCoordMode)

详细说明

警告: 图像节点类在添加到要渲染的场景图之前必须有纹理。

成员类型文档

枚举 QSGImageNode::TextureCoordinatesTransformFlag
flags QSGImageNode::TextureCoordinatesTransformMode

TextureCoordinatesTransformFlag 枚举用于指定为纹理 quad 生成纹理坐标的模式。

常量说明
QSGImageNode::NoTransform0x00纹理坐标与窗口坐标一致,即原点位于左上角。
QSGImageNode::MirrorHorizontally0x01纹理坐标在水平轴上与窗口坐标倒置
QSGImageNode::MirrorVertically0x02相对于窗口坐标,纹理坐标在纵轴上反转

纹理坐标转换模式(TextureCoordinatesTransformMode)类型是QFlags<TextureCoordinatesTransformFlag> 的类型定义。它存储 TextureCoordinatesTransformFlag 值的 OR 组合。

成员函数文档

[pure virtual] QSGTexture::AnisotropyLevel QSGImageNode::anisotropyLevel() const

返回此图像节点的熵值。

另请参阅 setAnisotropyLevel()。

[pure virtual] QSGTexture::Filtering QSGImageNode::filtering() const

返回此图像节点的筛选结果。

另请参阅 setFiltering()。

[pure virtual] QSGTexture::Filtering QSGImageNode::mipmapFiltering() const

返回此图像节点的 mipmap 过滤。

另请参阅 setMipmapFiltering()。

[pure virtual] bool QSGImageNode::ownsTexture() const

如果节点拥有纹理的所有权,则返回true ;否则返回false

另请参阅 setOwnsTexture()。

[static] void QSGImageNode::rebuildGeometry(QSGGeometry *g, QSGTexture *texture, const QRectF &rect, QRectF sourceRect, QSGImageNode::TextureCoordinatesTransformMode texCoordMode)

texturerect 中的坐标和sourceRect 中的纹理坐标更新几何图形g

g 假定为由四个顶点组成的三角形条带,类型为 。QSGGeometry::TexturedPoint2D

texCoordMode 用于对 进行归一化处理。sourceRect

[pure virtual] QRectF QSGImageNode::rect() const

返回此图像节点的目标矩形。

另请参阅 setRect()。

[pure virtual] void QSGImageNode::setAnisotropyLevel(QSGTexture::AnisotropyLevel level)

将此图像节点的熵值设置为level

另请参阅 anisotropyLevel() 。

[pure virtual] void QSGImageNode::setFiltering(QSGTexture::Filtering filtering)

将用于此图像节点的滤波设置为filtering

要进行平滑缩放,请使用QSGTexture::Linear 。对于正常缩放,请使用QSGTexture::Nearest

另请参阅 filtering()。

[pure virtual] void QSGImageNode::setMipmapFiltering(QSGTexture::Filtering filtering)

将此图像节点使用的 mipmap 滤波设置为filtering

要在 mip 映射之间进行平滑缩放,请使用QSGTexture::Linear 。对于正常缩放,请使用QSGTexture::Nearest

另请参阅 mipmapFiltering() 。

[pure virtual] void QSGImageNode::setOwnsTexture(bool owns)

将节点是否拥有纹理的所有权设置为owns

默认情况下,节点不拥有纹理的所有权。

另请参阅 ownsTexture().

[pure virtual] void QSGImageNode::setRect(const QRectF &rect)

将此图像节点的目标矩形设置为rect

另请参阅 rect()。

void QSGImageNode::setRect(qreal x, qreal y, qreal w, qreal h)

这是一个重载函数。

设置此图像节点的矩形以 (x,y) 为起点,宽度为w ,高度为h

[pure virtual] void QSGImageNode::setSourceRect(const QRectF &rect)

将此图像节点的源矩形设置为rect

另请参阅 sourceRect()。

void QSGImageNode::setSourceRect(qreal x, qreal y, qreal w, qreal h)

这是一个重载函数。

设置此图像节点的矩形,以显示其纹理来自 (x,y) 并具有相对于QSGTexture::textureSize 的宽度w 和高度h

[pure virtual] void QSGImageNode::setTexture(QSGTexture *texture)

将此图像节点的纹理设置为texture

使用setOwnsTexture() 设置节点是否拥有纹理的所有权。默认情况下,节点不拥有纹理所有权。

警告 图像节点必须先有纹理,然后才能添加到场景图中进行渲染。

另请参阅 texture().

[pure virtual] void QSGImageNode::setTextureCoordinatesTransform(QSGImageNode::TextureCoordinatesTransformMode mode)

将用于生成纹理坐标的方法设置为mode 。这可用于获得纹理的正确方向。使用第三方 OpenGL 库渲染纹理时通常需要这样做,因为 OpenGL 的 Y 轴相对于Qt Quick 是倒置的。

另请参阅 textureCoordinatesTransform() 。

[pure virtual] QRectF QSGImageNode::sourceRect() const

返回此图像节点的源矩形。

另请参阅 setSourceRect()。

[pure virtual] QSGTexture *QSGImageNode::texture() const

返回此图像节点的纹理。

另请参阅 setTexture()。

[pure virtual] QSGImageNode::TextureCoordinatesTransformMode QSGImageNode::textureCoordinatesTransform() const

返回用于生成此节点纹理坐标的模式。

另请参阅 setTextureCoordinatesTransform()。

© 2025 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.