C

平台命名空间

Qul::Platform

该命名空间提供了将 Qt Quick Ultralite 端口到新平台所需的接口。 更多...

头文件 #include <Platform>

类型

枚举FrameBufferingType { 单缓冲,翻转双缓冲,复制双缓冲,部分缓冲,其他缓冲}
枚举类MessageQueueStatus { 成功,消息丢弃,消息覆盖,空队列,超时,……,其他错误}

函数

voiddeleteQueue(Qul::Platform::MessageQueueInterface *queue)
Qul::Platform::DeviceLinkInterface *getDeviceLinkInterface()
Qul::Platform::PlatformContext *getPlatformInstance()
std::size_tmaximumQueueMessageSize()
voidprintHeapStats()
voidprintStackStats()
voidqul_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

定义了支持的不同的缓冲机制。

常数描述
SingleBuffering0只使用单个缓冲区进行渲染。所有渲染必须发生在由显示刷新率允许的时间预算内完成。
FlippedDoubleBuffering1使用两个缓冲区,两个都可以显示。一个用于显示,另一个用于渲染然后翻转。
CopyingDoubleBuffering2有一个用于渲染和一个用于显示的缓冲区。当渲染完成后,渲染缓冲区的内容被复制到显示缓冲区。
PartialBuffering3有一个或多个小于完整帧缓冲区的缓冲区。部分缓冲区需要显示具有内置内存。
OtherBuffering4其他平台特定缓冲类型。

此枚举自Qt Quick Ultralite (Platform) 1.5以来引入或修改。

另请参阅帧缓冲区要求部分帧缓冲区

[自Qt Quick Ultralite (Platform) 1.9以来] 枚举类 MessageQueueStatus

MessageQueueInterface函数返回的状态码。

常数描述
MessageQueueStatus::Success0函数执行成功。
MessageQueueStatus::MessageDiscarded1消息被丢弃。仅当MessageQueueInterface::enqueueOrDiscard()和MessageQueueInterface::enqueueOrDiscardFromInterrupt()函数丢弃给定消息时才返回。
MessageQueueStatus::MessageOverwritten2队列中的一个消息被给定的消息覆盖。仅由MessageQueueInterface::enqueueOrOverwrite()和MessageQueueInterface::enqueueOrOverwriteFromInterrupt()函数返回。
MessageQueueStatus::EmptyQueue3由于队列是空的,MessageQueueInterface::receive()或MessageQueueInterface::receiveFromInterrupt()无法从队列中获取消息。
MessageQueueStatus::Timeout4无法在超时毫秒内从队列中获取消息。
MessageQueueStatus::DiscardNotSupported5队列实现不支持丢弃。
MessageQueueStatus::OverwriteNotSupported6队列实现不支持覆盖。
MessageQueueStatus::OtherError7没有状态码适合函数的状态。事件队列将其视为错误。

此枚举自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::MessageQueueQul::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::MessageQueueQul::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 要求的消息。如果实现无法满足 queueCapacitymessageSize,则函数必须返回空指针。

此函数由 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::MessageQueueQul::Platform::MessageQueueInterface

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