C

纹理类

class Qul::PlatformInterface::Texture

一个包含纹理信息的类。更多...

头文件 #include <platforminterface/texture.h>
Qt Quick Ultralite (平台) 1.5

公共类型

枚举Flags { NoTextureFlags, Swizzled, PartiallyOverlaps, NeedsCachedLoadFromSlowMemory, PaddedWithTransparency, …, PreRotated }

公共函数

Texture(const unsigned char *data, Qul::PixelFormat format, int flags, int16_t width, int16_t height, int8_t bitsPerPixel, int16_t bytesPerLine, const Qul::Private::TextureLayout *textureLayout = NULL)
int8_tbitsPerPixel() const
int16_tbytesPerLine() const
const unsigned char *data() const
intflags() const
Qul::PixelFormatformat() const
int16_theight() const
Qul::PlatformInterface::PixelDataPointerpixelData(int16_t x, int16_t y) const
Qul::PlatformInterface::Sizesize() const
int16_twidth() const

详细描述

此类包含用于渲染纹理所需的所有值,这意味着以适合快速显示的方式表示的图像数据。这些值包括一个 数据 指针,格式 说明符,纹理 标志,像素 格式宽度高度每像素位每行字节数

成员类型文档

[since Qt Quick Ultralite (Platform) 1.5] enum Texture::Flags

此枚举类型指定了各种纹理属性。

常量描述
Qul::PlatformInterface::Texture::NoTextureFlags0x00未设置标志。
Qul::PlatformInterface::Texture::Swizzled0x01纹理数据是交错存储的,也就是说以非线性方式排列,需要硬件支持来解码。此标志仅用于具有交错纹理格式支持的某些平台,如瑞萨RH850。
Qul::PlatformInterface::Texture::PartiallyOverlaps0x02纹理数据可能与其他纹理部分重叠。这可能发生在将图像分割成多个子图像以节省空间的情况下。如果在一个不透明的区域分割,并且需要旋转或缩放图像,则每个子图像可能需要用周围内容填充,以便双线性插值产生正确的视觉输出。
Qul::PlatformInterface::Texture::NeedsCachedLoadFromSlowMemory0x04此值由Qt Quick Ultralite内部使用,在平台实现中可忽略。它表示纹理需要在从慢速存储(如闪存)到某些更快存储之前进行复制才能使用。
Qul::PlatformInterface::Texture::PaddedWithTransparency0x08此值指定纹理以至少一像素宽的透明边界填充。这在旋转或缩放图像以使用双线性插值平滑渐变到图像边缘时可能很有用。注意:此透明填充 _在外部_ 于纹理的宽度和高度指定的边界之外。
Qul::PlatformInterface::Texture::Rotated0x10此值指定纹理在运行时旋转。在特定平台中,纹理会转换为不同的格式以优化渲染过程。优化设置在具有ImageFiles.MCU.resourceOptimizeForRotation属性的资源上,并将应用于其中的所有纹理。
Qul::PlatformInterface::Texture::RawData0x20此值由Qt Quick Ultralite内部使用,在平台实现中可忽略。像素数据是未知原始格式,由ImageDecoder解码。此标志由核心库部分设置,不应更改。
Qul::PlatformInterface::Texture::LoadFromFile0x40此值由Qt Quick Ultralite内部使用,在平台实现中可忽略。像素数据不在纹理数据指针中可用。相反,数据指针包含有关从文件获取数据的文件信息。获取数据的唯一方法是通过ResourceCache,它将提供缓存的项,该项包含解码的图像数据。
Qul::PlatformInterface::Texture::PreRotated0x80此值指定纹理已预先旋转以匹配显示旋转角度。此值由Qt Quick Ultralite内部使用,在平台实现中可忽略。手动绘制纹理的应用程序,例如在自定义绘制的项中,可能还需要补偿预先旋转。

此枚举是在Qt Quick Ultralite (Platform) 1.5中引入或修改的。

另请参阅 Texture.

成员函数文档

Texture::Texture(const unsigned char *data, Qul::PixelFormat format, int flags, int16_t width, int16_t height, int8_t bitsPerPixel, int16_t bytesPerLine, const Qul::Private::TextureLayout *textureLayout = NULL)

创建纹理对象。

使用指定的数据、格式、标志、宽度、高度、每像素位数和每行字节来创建纹理对象。

纹理布局值由后备的DrawingEngine用于混合转换后的图像。

int8_t Texture::bitsPerPixel() const

返回纹理中每像素的位数。

由于填充,纹理大小可能大于宽度 * 高度 * 8 * 每像素位数。

int16_t Texture::bytesPerLine() const

返回纹理中每行的字节数。

这包括任何填充,因此此值可能大于宽度乘以 8 * 每像素位数

[自 Qt Quick Ultralite (Platform) 1.5] const unsigned char *Texture::data() const

返回包含纹理数据的内存指针。

此函数自 Qt Quick Ultralite (Platform) 1.5 以来已引入。

int Texture::flags() const

返回来自标志枚举的标志或组合。

标志描述了纹理的特殊功能,例如它是否有透明的填充。

Qul::PixelFormat Texture::format() const

返回纹理数据的像素格式。

int16_t Texture::height() const

以像素为单位返回纹理的高度。

[自 Qt Quick Ultralite (Platform) 1.9] Qul::PlatformInterface::PixelDataPointer Texture::pixelData(int16_t x, int16_t y) const

返回从 x 像素偏移 x 和 y 像素偏移 y 开始的纹理像素数据的精确信息。

如果纹理的每像素位数不是字节的倍数(8位),则像素 xy 的实际数据可能不会从完整的字节边界开始,例如在字节 3 的位 2 处。在这种情况下,Qul::PlatformInterface::PixelDataPointer::bitOffset 返回的值将不是零。

通常:像素数据从字节数据指针::地址 + 位数据指针位偏移位。

此功能不支持四种运行长度编码的像素格式:PixelFormat_RLE_ARGB32PixelFormat_RLE_ARGB32_PremultipliedPixelFormat_RLE_RGB32PixelFormat_RLE_RGB888

此功能自 Qt Quick Ultralite (Platform) 1.9 以来已引入。

[自 Qt Quick Ultralite (Platform) 1.7] Qul::PlatformInterface::Size Texture::size() const

返回纹理的像素大小。

此功能自 Qt Quick Ultralite (Platform) 1.7 以来已引入。

int16_t Texture::width() const

返回纹理的宽度(像素)。

在某些 Qt 许可下可用。
了解更多信息。