C

Texture Class

class Qul::PlatformInterface::Texture

A class containing information about a texture. More...

Header: #include <platforminterface/texture.h>
Since: Qt Quick Ultralite (Platform) 1.5

Public Types

enum Flags { NoTextureFlags, Swizzled, PartiallyOverlaps, NeedsCachedLoadFromSlowMemory, PaddedWithTransparency, …, PreRotated }

Public Functions

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_t bitsPerPixel() const
int16_t bytesPerLine() const
const unsigned char *data() const
int flags() const
Qul::PixelFormat format() const
int16_t height() const
Qul::PlatformInterface::PixelDataPointer pixelData(int16_t x, int16_t y) const
Qul::PlatformInterface::Size size() const
int16_t width() const

Detailed Description

This class contains values needed to render a texture, meaning image data represented in some format adapted for fast display. The values include a data pointer, format specifier, texture flags, pixel format, width, height, bitsPerPixel and bytesPerLine.

Member Type Documentation

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

This enum type specifies various texture properties.

ConstantValueDescription
Qul::PlatformInterface::Texture::NoTextureFlags0x00No flags set.
Qul::PlatformInterface::Texture::Swizzled0x01The texture data is swizzled, i.e. laid out in a non-linear way and needs hardware support to decode. This flag is only used on certain platforms that have swizzled texture format support, like Renesas RH850.
Qul::PlatformInterface::Texture::PartiallyOverlaps0x02The texture data might partially overlap with another texture. This might happen when an image is split into multiple sub-images in order to save space. If there's a split across an opaque region and the image is meant to be rotated or scaled, then each sub-image might be padded with the surrounding contents in order for bilinear filtering to produce the right visual output.
Qul::PlatformInterface::Texture::NeedsCachedLoadFromSlowMemory0x04This value is used internally by Qt Quick Ultralite and can be ignored in platform implementations. It indicates that a texture needs copying from slow memory like flash to some faster memory before being used.
Qul::PlatformInterface::Texture::PaddedWithTransparency0x08This value specifies that the texture is padded with a border of transparency at least one pixel wide. This can be useful when rotating or scaling an image in order to use bilinear filtering to fade smoothly to transparent at the image edges. Note: This transparent padding is _outside_ of the texture bounds as given by width and height.
Qul::PlatformInterface::Texture::Rotated0x10This value specifies that the texture is rotated during runtime. On certain platforms the texture is converted to different format to optimize the rendering process. Optimization is set for the resource with ImageFiles.MCU.resourceOptimizeForRotation property and it is applied for all textures in it.
Qul::PlatformInterface::Texture::RawData0x20This value is used internally by Qt Quick Ultralite and can be ignored in platform implementations. The pixel data is in an unknown raw format to be decoded by an ImageDecoder. This flag is set by the core library part and should not be changed.
Qul::PlatformInterface::Texture::LoadFromFile0x40This value is used internally by Qt Quick Ultralite and can be ignored in platform implementations. The pixel data is not available in the textures data pointer. Instead, the data pointer contains information about the file to fetch the data from. The only way to get the data is through the ResourceCache, which will provide a cached item hosting the decoded image data.
Qul::PlatformInterface::Texture::PreRotated0x80This value specifies that the texture has been pre-rotated to match the display rotation angle. This value is used internally by Qt Quick Ultralite and can be ignored in platform implementations. Applications that are drawing textures manually, for example in a custom painted item, might also need to compensate for the pre-rotation.

This enum was introduced or modified in Qt Quick Ultralite (Platform) 1.5.

See also Texture.

Member Function Documentation

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)

Creates a texture object.

Creates a texture object with the given data, format, flags, width, height, bitsPerPixel, and bytesPerLine.

The textureLayout value is used by the fallback DrawingEngine to blend transformed images.

int8_t Texture::bitsPerPixel() const

Returns the number of bits per pixel in the texture.

Due to padding, the size of the texture might be bigger than width * height * 8 * bitsPerPixel.

int16_t Texture::bytesPerLine() const

Returns the number of bytes per line in the texture.

This includes any padding, so this value might be bigger than width multiplied by 8 * bitsPerPixel.

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

Returns a pointer to the memory containing the texture data.

This function was introduced in Qt Quick Ultralite (Platform) 1.5.

int Texture::flags() const

Returns an or'ed combination of flags from the Flags enum.

The flags describe the texture's special features, such as whether it has transparent padding.

Qul::PixelFormat Texture::format() const

Returns the pixel format of the texture data.

int16_t Texture::height() const

Returns height of the texture in pixels.

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

Returns a precise information about texture's pixel data location starting at x-pixel-offset x and y-pixel-offset y.

If texture's bits per pixel value is not a multiplication of a byte (8 bits), then actual data for pixel x, y may start somewhere else than at a full byte boundary, e.g. at bit 2 of byte 3. In such case, returned value of Qul::PlatformInterface::PixelDataPointer::bitOffset will be non-zero.

In general: pixel data starts at byte Qul::PlatformInterface::PixelDataPointer::address + Qul::PlatformInterface::PixelDataPointer::bitOffset bits.

This function is not supported for the run-length encoded pixel formats PixelFormat_RLE_ARGB32, PixelFormat_RLE_ARGB32_Premultiplied, PixelFormat_RLE_RGB32, and PixelFormat_RLE_RGB888.

This function was introduced in Qt Quick Ultralite (Platform) 1.9.

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

Returns size of the texture in pixels.

This function was introduced in Qt Quick Ultralite (Platform) 1.7.

int16_t Texture::width() const

Returns width of the texture in pixels.

Available under certain Qt licenses.
Find out more.