C
平台命名空间
Qul::Platform该命名空间提供了将 Qt Quick Ultralite 端口到新平台所需的接口。 更多...
头文件 | #include <Platform> |
类
struct | Config |
class | DeviceLink |
class | DeviceLinkInterface |
struct | FrameStatistics |
struct | FramebufferFormat |
class | MessageQueue |
class | MessageQueueInterface |
struct | PerformanceMetrics |
struct | PlatformContext |
struct | SinglePointTouchEvent |
class | SinglePointTouchEventDispatcher |
class | StackAllocator |
类型
枚举 | FrameBufferingType { 单缓冲,翻转双缓冲,复制双缓冲,部分缓冲,其他缓冲} |
枚举类 | MessageQueueStatus { 成功,消息丢弃,消息覆盖,空队列,超时,……,其他错误} |
函数
void | deleteQueue(Qul::Platform::MessageQueueInterface *queue) |
Qul::Platform::DeviceLinkInterface * | getDeviceLinkInterface() |
Qul::Platform::PlatformContext * | getPlatformInstance() |
std::size_t | maximumQueueMessageSize() |
void | printHeapStats() |
void | printStackStats() |
void | qul_free(void *ptr) |
void * | qul_malloc(std::size_t size) |
void * | qul_realloc(void *ptr, std::size_t new_size) |
Qul::Platform::MessageQueueInterface * | requestQueue(std::size_t queueCapacity, std::size_t messageSize) |
类
class Config
此结构提供平台配置的运行时表示。 更多...
class DeviceLink
此类提供主机和设备之间通信的功能。 更多...
class DeviceLinkInterface
这提供了平台实现接口。 更多...
class FrameStatistics
提供帧渲染统计信息。 更多...
class FramebufferFormat
此结构体包含帧缓冲区信息。更多信息...
类 MessageQueue
用于与队列实现接口的便利类。更多信息...
类 MessageQueueInterface
提供平台特定队列以供Qt Quick Ultralite使用的接口类。更多信息...
类 PerformanceMetrics
提供性能指标。更多信息...
类 PlatformContext
此类提供抽象接口以实现平台上下文。更多信息...
类 SinglePointTouchEvent
包含与单个点触摸事件相关的信息的结构体。更多信息...
类 SinglePointTouchEventDispatcher
用于处理平台单点触摸的便利类。更多信息...
类 StackAllocator
为可能暂时需要额外内存进行缓存的函数提供简单内存分配器。更多信息...
类型文档
[自Qt Quick Ultralite (Platform) 1.5以来]
枚举 FrameBufferingType
定义了支持的不同的缓冲机制。
常数 | 值 | 描述 |
---|---|---|
SingleBuffering | 0 | 只使用单个缓冲区进行渲染。所有渲染必须发生在由显示刷新率允许的时间预算内完成。 |
FlippedDoubleBuffering | 1 | 使用两个缓冲区,两个都可以显示。一个用于显示,另一个用于渲染然后翻转。 |
CopyingDoubleBuffering | 2 | 有一个用于渲染和一个用于显示的缓冲区。当渲染完成后,渲染缓冲区的内容被复制到显示缓冲区。 |
PartialBuffering | 3 | 有一个或多个小于完整帧缓冲区的缓冲区。部分缓冲区需要显示具有内置内存。 |
OtherBuffering | 4 | 其他平台特定缓冲类型。 |
此枚举自Qt Quick Ultralite (Platform) 1.5以来引入或修改。
[自Qt Quick Ultralite (Platform) 1.9以来]
枚举类 MessageQueueStatus
由MessageQueueInterface函数返回的状态码。
常数 | 值 | 描述 |
---|---|---|
MessageQueueStatus::Success | 0 | 函数执行成功。 |
MessageQueueStatus::MessageDiscarded | 1 | 消息被丢弃。仅当MessageQueueInterface::enqueueOrDiscard()和MessageQueueInterface::enqueueOrDiscardFromInterrupt()函数丢弃给定消息时才返回。 |
MessageQueueStatus::MessageOverwritten | 2 | 队列中的一个消息被给定的消息覆盖。仅由MessageQueueInterface::enqueueOrOverwrite()和MessageQueueInterface::enqueueOrOverwriteFromInterrupt()函数返回。 |
MessageQueueStatus::EmptyQueue | 3 | 由于队列是空的,MessageQueueInterface::receive()或MessageQueueInterface::receiveFromInterrupt()无法从队列中获取消息。 |
MessageQueueStatus::Timeout | 4 | 无法在超时毫秒内从队列中获取消息。 |
MessageQueueStatus::DiscardNotSupported | 5 | 队列实现不支持丢弃。 |
MessageQueueStatus::OverwriteNotSupported | 6 | 队列实现不支持覆盖。 |
MessageQueueStatus::OtherError | 7 | 没有状态码适合函数的状态。事件队列将其视为错误。 |
此枚举自Qt Quick Ultralite (Platform) 1.9以来引入或修改。
功能文档
[自 Qt Quick Ultralite (平台) 1.9 起使用]
void deleteQueue(Qul::Platform::MessageQueueInterface *queue)
删除队列。
该函数由MessageQueue用于在不再需要队列时删除队列。
下面是这个函数的一个示例实现
void deleteQueue(MessageQueueInterface *queue) { MyMessageQueue *mq = static_cast<MyMessageQueue *>(queue); mq->~MyMessageQueue(); qul_free(mq); }
该函数是在 Qt Quick Ultralite (平台) 1.9 中引入的。
另请参阅requestQueue(),maximumQueueMessageSize(),Qul::Platform::MessageQueue和Qul::Platform::MessageQueueInterface。
Qul::Platform::DeviceLinkInterface *Platform::getDeviceLinkInterface()
为平台提供设备链接接口实现。
如果没有这样的实现,函数可以返回 nullptr
。但理想情况下,当设备链接未编译时,不应调用此函数。
另请参阅QUL_PLATFORM_DEVICELINK_ENABLED。
[自 Qt Quick Ultralite (平台) 2.0 起使用]
Qul::Platform::PlatformContext *getPlatformInstance()
返回硬件特定的平台上下文实例。
该函数是在 Qt Quick Ultralite (平台) 2.0 中引入的。
[自 Qt Quick Ultralite (平台) 1.9 起使用]
std::size_t maximumQueueMessageSize()
返回队列可以保留的消息的最大大小。如果队列的最大消息大小未知或任意,必须返回 SIZE_MAX
。
该函数是在 Qt Quick Ultralite (平台) 1.9 中引入的。
另请参阅requestQueue(),Qul::Platform::MessageQueue和Qul::Platform::MessageQueueInterface。
[自 Qt Quick Ultralite (平台) 1.5 起使用]
void printHeapStats()
将堆使用统计信息打印到 stderr。
该函数是在 Qt Quick Ultralite (平台) 1.5 中引入的。
[自 Qt Quick Ultralite (平台) 1.5 起使用]
void printStackStats()
将堆栈使用统计信息打印到 stderr。
该函数是在 Qt Quick Ultralite (平台) 1.5 中引入的。
[自 Qt Quick Ultralite (平台) 1.5 起使用]
void qul_free(void *ptr)
释放由qul_malloc分配的内存块。
ptr是要释放的内存块的指针。
该函数是在 Qt Quick Ultralite (平台) 1.5 中引入的。
另请参阅Qul::Platform::qul_malloc(std::size_t size)和Qul::Platform::qul_realloc(void *ptr, std::size_t new_size)。
[自 Qt Quick Ultralite (平台) 1.5 起使用]
void *qul_malloc(std::size_t size)
以最佳方式从平台中分配内存。
size是请求的内存块的大小,以字节为单位。
Qt Quick Ultralite 的所有内容都通过该函数执行动态内存分配。
使用此函数分配的内存必须使用 qul_free 释放。也可以使用 qul_realloc 来调整分配的内存块大小。
如果没有足够内存满足请求,则可能返回 NULL。
该函数是在 Qt Quick Ultralite (平台) 1.5 中引入的。
另请参阅 Qul::Platform::qul_free(void *ptr) 和 Qul::Platform::qul_realloc(void *ptr, std::size_t new_size)
[since Qt Quick Ultralite (Platform) 1.5]
void *qul_realloc(void *ptr, std::size_t new_size)
尝试调整使用 qul_malloc 分配的内存块大小。
ptr 是先前分配的内存块的指针,new_size 是内存块的新大小(以字节为单位)。
如果没有足够内存满足请求,则可能返回 NULL。
该函数是在 Qt Quick Ultralite (平台) 1.5 中引入的。
另请参阅 Qul::Platform::qul_malloc(std::size_t size) 和 Qul::Platform::qul_free(void *ptr)
[since Qt Quick Ultralite (Platform) 1.9]
Qul::Platform::MessageQueueInterface *requestQueue(std::size_t queueCapacity, std::size_t messageSize)
返回具有 queueCapacity 容量的 MessageQueueInterface 实例。队列必须接受满足 messageSize 要求的消息。如果实现无法满足 queueCapacity 或 messageSize,则函数必须返回空指针。
此函数由 MessageQueue 使用来获取其使用的适当队列。
下面是这个函数的一个示例实现
MessageQueueInterface *requestQueue(size_t queueCapacity, size_t messageSize) { void *queue = qul_malloc(sizeof(MyMessageQueue)); if (queue == NULL) { return NULL; } MessageQueueInterface *interface = new (queue) MyMessageQueue(queueCapacity, messageSize); return interface; }
该函数是在 Qt Quick Ultralite (平台) 1.9 中引入的。
另请参阅 deleteQueue()、maximumQueueMessageSize()、Qul::Platform::MessageQueue 和 Qul::Platform::MessageQueueInterface。
在某些 Qt 许可下可用。
了解更多。