C
LayerEngine 类
class Qul::PlatformInterface::LayerEngine此类提供一个管理硬件层的抽象接口。 更多信息...
头文件 | #include <platforminterface/layerengine.h> |
自从 | Qt Quick Ultralite (平台) 1.7 |
公共类型
struct | ImageLayer |
struct | ImageLayerProperties |
struct | ItemLayer |
struct | ItemLayerProperties |
struct | LayerPropertiesBase |
struct | SizedLayerPropertiesBase |
struct | SpriteLayer |
struct | SpriteLayerProperties |
enum | ColorDepth { Bpp8, Bpp16, Bpp16Alpha, Bpp24, Bpp32, Bpp32Alpha } |
enum | RenderingHints { NoRenderingHint, OptimizeForSpeed, OptimizeForSize } |
公共函数
virtual Qul::PlatformInterface::LayerEngine::ImageLayer * | allocateImageLayer(const Qul::PlatformInterface::Screen *screen, const Qul::PlatformInterface::LayerEngine::ImageLayerProperties &properties, Qul::PlatformInterface::LayerEngine::SpriteLayer *spriteLayer = NULL) |
virtual Qul::PlatformInterface::LayerEngine::ItemLayer * | allocateItemLayer(const Qul::PlatformInterface::Screen *screen, const Qul::PlatformInterface::LayerEngine::ItemLayerProperties &properties, Qul::PlatformInterface::LayerEngine::SpriteLayer *spriteLayer = NULL) |
virtual Qul::PlatformInterface::LayerEngine::SpriteLayer * | allocateSpriteLayer(const Qul::PlatformInterface::Screen *screen, const Qul::PlatformInterface::LayerEngine::SpriteLayerProperties &properties) |
virtual void | deallocateImageLayer(Qul::PlatformInterface::LayerEngine::ImageLayer *layer) |
virtual void | deallocateItemLayer(Qul::PlatformInterface::LayerEngine::ItemLayer *layer) |
virtual void | deallocateSpriteLayer(Qul::PlatformInterface::LayerEngine::SpriteLayer *layer) |
virtual void | updateImageLayer(Qul::PlatformInterface::LayerEngine::ImageLayer *layer, const Qul::PlatformInterface::LayerEngine::ImageLayerProperties &properties) |
virtual void | updateItemLayer(Qul::PlatformInterface::LayerEngine::ItemLayer *layer, const Qul::PlatformInterface::LayerEngine::ItemLayerProperties &properties) |
virtual void | updateSpriteLayer(Qul::PlatformInterface::LayerEngine::SpriteLayer *layer, const Qul::PlatformInterface::LayerEngine::SpriteLayerProperties &properties) |
详细描述
此类的一个实例可用于分配、更新和释放硬件层。硬件层有三种类型:图像层、项目层和精灵层。图像层用于静态图像内容,项目层用于使用绘图引擎动态渲染的内容,精灵层是包含多个图像或项目子层的聚合层。
可以独立更新层的位置和不透明度。此外,层可能应用了任意的变换矩阵。
注意:特定的LayerEngine实例不一定需要支持所有这些层类型或任意的变换。
成员类型文档
enum LayerEngine::ColorDepth
该枚举指定层的颜色深度以及是否使用 alpha 通道。
注意:平台可能会决定为给定的颜色深度和 alpha 通道配置精确使用哪种像素格式。
常量 | 值 | 描述 |
---|---|---|
Qul::PlatformInterface::LayerEngine::Bpp8 | 0 | 每像素8位颜色深度,无alpha通道 |
Qul::PlatformInterface::LayerEngine::Bpp16 | 1 | 每像素16位颜色深度,无alpha通道 |
Qul::PlatformInterface::LayerEngine::Bpp16Alpha | 2 | 每像素16位颜色深度,带alpha通道 |
Qul::PlatformInterface::LayerEngine::Bpp24 | 3 | 每像素24位颜色深度,无alpha通道 |
Qul::PlatformInterface::LayerEngine::Bpp32 | 4 | 每像素32位颜色深度,无alpha通道 |
Qul::PlatformInterface::LayerEngine::Bpp32Alpha | 5 | 每像素32位颜色深度,带alpha通道 |
enum LayerEngine::RenderingHints
层的渲染优化提示。
提示由平台层引擎用于以最适合应用程序的方式配置层。
可能的值
常量 | 值 | 描述 |
---|---|---|
Qul::PlatformInterface::LayerEngine::NoRenderingHint | 0 | 未指定渲染提示 |
Qul::PlatformInterface::LayerEngine::OptimizeForSpeed | 1U << 0 | 层针对快速渲染进行优化 |
Qul::PlatformInterface::LayerEngine::OptimizeForSize | 1U << 1 | 层针对低内存使用进行优化(默认) |
成员函数文档
[虚函数]
Qul::PlatformInterface::LayerEngine::ImageLayer *LayerEngine::allocateImageLayer(const Qul::PlatformInterface::Screen *screen, const Qul::PlatformInterface::LayerEngine::ImageLayerProperties &properties, Qul::PlatformInterface::LayerEngine::SpriteLayer *spriteLayer = NULL)
为显示静态图像内容分配图像层。
此方法为给定的 screen 分配图像层,该层用于显示从某些内存地址的静态图像数据。给定的 properties 指定图像层的位置、z-order、变换、不透明度和图像源,以及图像层是否启用。
如果设置了 spriteLayer,它表示图像层应属于的精灵层。可以认为精灵层是在与图像层相同 screen 上创建的。
注意:某些平台可能要求精灵层内部的项目和图像层都使用与精灵层本身相同的颜色深度。
另请参阅 updateImageLayer 和 deallocateImageLayer.
[虚拟]
Qul::PlatformInterface::LayerEngine::ItemLayer *LayerEngine::allocateItemLayer(const Qul::PlatformInterface::Screen *screen, const Qul::PlatformInterface::LayerEngine::ItemLayerProperties &properties, Qul::PlatformInterface::LayerEngine::SpriteLayer *spriteLayer = NULL)
为渲染动态内容分配项目层。
此方法为给定的 screen 分配项目层,该层通过 DrawingEngine 渲染以显示动态内容。给定的 properties 指定项目层的位置、Z排序、大小、颜色深度、变换和透明度,以及是否启用项目层。
如果 spriteLayer 被设置,它代表了项目层应该属于的角色层。可以假设角色层是在与项目层相同的 screen 上创建的。
注意:某些平台可能要求精灵层内部的项目和图像层都使用与精灵层本身相同的颜色深度。
另请参阅 updateItemLayer 和 deallocateItemLayer.
[虚拟]
Qul::PlatformInterface::LayerEngine::SpriteLayer *LayerEngine::allocateSpriteLayer(const Qul::PlatformInterface::Screen *screen, const Qul::PlatformInterface::LayerEngine::SpriteLayerProperties &properties)
为显示精灵分配精灵层。
此方法为给定的 screen 分配精灵层,用于显示精灵。每个精灵的图像内容由子层提供,该子层可以是项目层或图像层。如果两个精灵重叠,可能只有顶部精灵可见。
给定的 properties 指定精灵层的位置、Z排序、大小和颜色深度,以及是否启用精灵层。
另请参阅 ItemLayer、ImageLayer、updateSpriteLayer 和 deallocateSpriteLayer.
[虚拟]
void LayerEngine::deallocateImageLayer(Qul::PlatformInterface::LayerEngine::ImageLayer *layer)
释放图像层。
此方法释放图像层并使其不再可见。
调用此方法后,layer 指针无效。
另请参阅 allocateImageLayer 和 updateImageLayer.
[虚拟]
void LayerEngine::deallocateItemLayer(Qul::PlatformInterface::LayerEngine::ItemLayer *layer)
释放项目层。
此方法释放项目层并使其不再可见。
调用此方法后,layer 指针无效。
另请参阅 allocateItemLayer 和 updateItemLayer.
[虚拟]
void LayerEngine::deallocateSpriteLayer(Qul::PlatformInterface::LayerEngine::SpriteLayer *layer)
释放精灵层。
此方法释放精灵层并使其不再可见。
调用此方法后,layer 指针无效。
参见allocateSpriteLayer 和 updateSpriteLayer。
[虚拟]
void LayerEngine::updateImageLayer(Qul::PlatformInterface::LayerEngine::ImageLayer *layer, const Qul::PlatformInterface::LayerEngine::ImageLayerProperties &properties)
更新图像层的属性。
此方法使用提供的properties更新layer的属性。
properties指定图像层的位置、Z排序、变换、不透明度和图像源,以及图像层是否启用。
[虚拟]
void LayerEngine::updateItemLayer(Qul::PlatformInterface::LayerEngine::ItemLayer *layer, const Qul::PlatformInterface::LayerEngine::ItemLayerProperties &properties)
更新项目层的属性。
此方法使用提供的properties更新layer的属性。
properties指定项目层的位置、Z排序、大小、颜色深度、变换和不透明度,以及项目层是否启用。
[虚拟]
void LayerEngine::updateSpriteLayer(Qul::PlatformInterface::LayerEngine::SpriteLayer *layer, const Qul::PlatformInterface::LayerEngine::SpriteLayerProperties &properties)
更新精灵层的属性。
此方法使用提供的properties更新layer的属性。
properties指定精灵层的位置、Z排序、大小、颜色深度,以及精灵层是否启用。
在本例中,适用于某些Qt许可证。
了解更多。