QSGImageNode Class
提供 QSGImageNode 类是为了方便用户通过 QML 场景图轻松绘制带纹理的内容。更多内容...
| 头文件: | #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 | ~QSGImageNode() override |
| 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) |
成员类型文档
enum QSGImageNode::TextureCoordinatesTransformFlag
flags QSGImageNode::TextureCoordinatesTransformMode
TextureCoordinatesTransformFlag 枚举用于指定为带纹理的四边形生成纹理坐标所采用的模式。
| 常量 | 值 | 描述 |
|---|---|---|
QSGImageNode::NoTransform | 0x00 | 纹理坐标的取向与窗口坐标一致,即原点位于左上角。 |
QSGImageNode::MirrorHorizontally | 0x01 | 纹理坐标在水平轴上相对于窗口坐标进行反转 |
QSGImageNode::MirrorVertically | 0x02 | 纹理坐标在垂直轴上相对于窗口坐标被反转 |
TextureCoordinatesTransformMode 类型是QFlags<TextureCoordinatesTransformFlag> 的 typedef。它存储了 TextureCoordinatesTransformFlag 值的按“或”运算组合。
成员函数文档
[override virtual noexcept default] QSGImageNode::~QSGImageNode()
销毁QSGImageNode 的实例。该析构函数是虚函数。
[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)
使用texture 、rect 中的坐标以及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 。
若需在微图之间进行平滑缩放,请使用 `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),宽度为w ,高度为h ,该矩形相对于QSGTexture::textureSize 定位。
这是一个重载函数。
[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()。
© 2026 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.