QPaintedTextureImage 类

class Qt3DRender::QPaintedTextureImage

一个可以通过 QPainter 编写的 QAbstractTextureImage更多...

头文件 #include <QPaintedTextureImage>
CMakefind_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmakeQT += 3drender
继承 Qt3DRender::QAbstractTextureImage

属性

公开函数

intheight() const
QSizesize() const
voidupdate(const QRect &rect = QRect())
intwidth() const

公开槽

voidsetHeight(int h)
voidsetSize(QSize size)
voidsetWidth(int w)

信号

voidheightChanged(int w)
voidsizeChanged(QSize size)
voidwidthChanged(int w)

保护函数

virtual voidpaint(QPainter *painter) = 0

详细描述

QPaintedTextureImage 通过一个 QPainter 提供了一个指定纹理图(因此是 OpenGL 纹理)的方式。纹理图像的宽度和高度可以通过宽度和高度或大小属性指定。

QPaintedTextureImage 必须被继承,并且实现了虚拟的 paint() 函数。每次在 QPaintedTextureImage 上调用 update(),都会调用 paint() 函数,并将结果图像上传。

QPaintedTextureImage 必须连接到某个 QAbstractTexture

属性文档

高度 : int

此属性保存了纹理图像的高度。高度必须大于或等于1。

访问函数

int高度() const
voidsetHeight(int h)

通知信号

void高度改变(int w)

大小 : QSize

此属性保存了纹理图像的大小。

访问函数

QSize大小() const
voidsetSize(QSize size)

通知信号

void大小改变(QSize size)

另请参阅高度宽度

宽度 : int

此属性保存了纹理图像的宽度。宽度必须大于或等于1。

访问函数

int宽度() const
voidsetWidth(int w)

通知信号

void宽度改变(int w)

成员函数文档

[纯虚保护] void QPaintedTextureImage::paint(QPainter *painter)

使用指定的 QPainter 对象 painter 绘制纹理图像。

由于QPainter 将图像的左上角视为原点,而OpenGL将纹理的左下角视为原点,因此在任何其他绘画之前为画家设置一个自定义视口是解决这种差异的一种简单方法。

painter->setViewport(0, height(), width(), -height());
...

[slot] void QPaintedTextureImage::setHeight(int h)

设置纹理图像的高度(h)。如果大小发生变化,则触发更新。

注意:属性 高度 的设置函数。

另请参阅:高度

[slot] void QPaintedTextureImage::setSize(QSize size)

设置纹理图像的宽度和高度。如果大小发生变化,则触发更新。

注意:属性 大小 的设置函数。

另请参阅:大小

[slot] void QPaintedTextureImage::setWidth(int w)

设置纹理图像的宽度(w)。如果大小发生变化,则触发更新。

注意:属性 宽度 的设置函数。

另请参阅:宽度

void QPaintedTextureImage::update(const QRect &rect = QRect())

立即触发绘制的纹理的 paint() 函数,该函数会将新图像上传到GPU。如果您正在对绘制的纹理进行多项更改,在调用更新之前等待所有更改完成,以最小化所需的重新绘制的次数。

参数 rect 目前未使用。

© 2024 动态框架公司 Ltd. 本文档中包含的文档贡献属各自所有者的版权。提供的文档根据自由软件基金会的发布,受 GNU自由文档许可证1.3版 的条款许可。Qt 及相关标志是芬兰及/或其他国家全球范围内动态框架公司 Ltd. 的商标。所有其他商标均为其各自所有者的财产。