C

<平台接口/platforminterface.h> - Qt Quick Ultralite 核心库接口

提供了从 Qt Quick Ultralite 核心库到平台实现的接口。更多信息...

头文件 #include <platforminterface/platforminterface.h>

类型

枚举KeyEventType { KeyPressEvent, KeyReleaseEvent }
枚举KeyboardModifier { NoKeyboardModifier, ShiftKeyboardModifier, ControlKeyboardModifier, AltKeyboardModifier, MetaKeyboardModifier, …, GroupSwitchKeyboardModifier }

函数

voidhandleKeyEvent(uint64_t timestamp, Qul::PlatformInterface::KeyEventType type, int key, uint32_t nativeScanCode = 0, unsigned int modifiers = NoKeyboardModifier, const char *textUtf8 = NULL, bool autoRepeat = false, uint32_t ucs4 = 0)
voidhandleTouchCancelEvent(Qul::PlatformInterface::Screen *screen, uint64_t timestamp)
voidhandleTouchEvent(Qul::PlatformInterface::Screen *screen, uint64_t timestamp, const Qul::PlatformInterface::TouchPoint *touchPoints, unsigned int numTouchPoints)
voidinit16bppRendering()
voidinit24bppRendering()
voidinit32bppRendering()
voidinit8bppRendering()
voidupdateEngine(uint64_t timestamp)

详细描述

Qul::PlatformInterface::TouchPoint

表示单个触摸点

类型文档

[自 Qt Quick Ultralite (Platform) 1.5] 枚举 KeyEventType

表示可能按键事件类型的枚举。

常量描述
KeyPressEvent0表示按键事件
KeyReleaseEvent1表示键释放事件

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

[自 Qt Quick Ultralite (Platform) 1.5] 枚举 KeyboardModifier

常量描述
NoKeyboardModifier0x00000000未按下任何修饰键
ShiftKeyboardModifier0x02000000键盘上的Shift键被按下
ControlKeyboardModifier0x04000000键盘上的Ctrl键被按下
AltKeyboardModifier0x08000000键盘上的Alt键被按下
MetaKeyboardModifier0x10000000键盘上的Meta键被按下
KeypadKeyboardModifier0x20000000数字键盘上的按钮被按下
GroupSwitchKeyboardModifier0x40000000键盘上的Mode_switch键被按下。

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

函数文档

[自Qt Quick Ultralite (平台) 1.5起]void handleKeyEvent(uint64_t timestamp, Qul::PlatformInterface::KeyEventType type, int key, uint32_t nativeScanCode = 0, unsigned int modifiers = NoKeyboardModifier, const char *textUtf8 = NULL, bool autoRepeat = false, uint32_t ucs4 = 0)

处理键事件

平台层收到的键事件必须通过此函数传递给核心引擎。 timestamp是事件发生的时间。这通常是平台本地域时间函数读取的时间。 type指定这是一个按键事件还是一个按键释放事件。 key是实际的键标识符,根据Qul::PlatformInterface::Key枚举值。 nativeScanCode是一个本地扫描码标识符,当与键值Qul::Key_unknown结合使用时,对于自定义特定平台键很有用。 modifiers指定在按键事件发生时所按下的键修饰符,通过Qul::PlatformInterface::KeyModifier值的或运算组合来指定。

textUtf8未使用,将在下一个重大版本中删除。

autoRepeat指定这是一个自动重复键,如果事件来自初始按键,它应该是false。

ucs4是键生成的文本的ucs4表示,对于各种国际键盘支持和字母大小写很有用。请注意,核心引擎不保留键盘的状态。平台集成负责跟踪当前活动修饰符状态,并基于此选择相关的ucs4值。对于控制键或如果不需要全文本输入支持(则将向QML传递具有空文本属性的键事件,但仍可以根据keynativeScanCode值选择操作),应将其保留为NULL。

此函数是在Qt Quick Ultralite (平台) 1.5中引入的。

另请参阅Qul::Platform::PlatformContext::currentTimestamp

[自Qt Quick Ultralite (平台) 1.5起]void handleTouchCancelEvent(Qul::PlatformInterface::Screen *screen, uint64_t timestamp)

取消触摸事件

取消对screen的触摸事件。 timestamp是事件发生的时间。这通常是平台本地域时间函数读取的时间。如果screenNULL,则使用平台主屏幕。

此函数是在Qt Quick Ultralite (平台) 1.5中引入的。

另请参阅Qul::Platform::PlatformContext::currentTimestampQul::Platform::PlatformContext::availableScreens

[自 Qt Quick Ultralite (平台) 1.5] void handleTouchEvent(Qul::PlatformInterface::Screen *screen, uint64_t timestamp, const Qul::PlatformInterface::TouchPoint *touchPoints, unsigned int numTouchPoints)

处理触摸事件

从平台层接收到的触摸事件必须通过这个函数传递到核心引擎。变量screen表示事件发生的屏幕。变量timestamp表示事件发生的时间。这通常是平台原生的系统时间函数读取的时间。touchPointsnumTouchPoints包含当前活动的触摸点列表。触摸点的所有权保留在调用函数中。如果screenNULL,则使用平台主屏幕。

此函数是在Qt Quick Ultralite (平台) 1.5中引入的。

另请参阅Qul::Platform::PlatformContext::currentTimestampQul::Platform::PlatformContext::availableScreens

[自 Qt Quick Ultralite (平台) 1.5] void init16bppRendering()

初始化 Qt Quick Ultralite 以支持 16 BPP 渲染。

默认情况下,Qt Quick Ultralite 不引用备用渲染器,允许在它不被使用时丢弃。

此函数设置 16 BPP 绘图设备的备用渲染器。

目前此函数假设 16 BPP 是 RGB565 格式。

此函数是在Qt Quick Ultralite (平台) 1.5中引入的。

另请参阅 Qul::PlatformInterface::init8bppRenderingQul::PlatformInterface::init24bppRenderingQul::PlatformInterface::init32bppRendering

[自 Qt Quick Ultralite (平台) 1.5] void init24bppRendering()

初始化 Qt Quick Ultralite 以支持 24 BPP 渲染。

默认情况下,Qt Quick Ultralite 不引用备用渲染器,允许在它不被使用时丢弃。

此函数设置 24 BPP 绘图设备的备用渲染器。

目前此函数假设 24 BPP 设备处于 RGB888 格式。

此函数是在Qt Quick Ultralite (平台) 1.5中引入的。

另请参阅 Qul::PlatformInterface::init8bppRenderingQul::PlatformInterface::init16bppRenderingQul::PlatformInterface::init32bppRendering

[自 Qt Quick Ultralite (平台) 1.5] void init32bppRendering()

初始化 Qt Quick Ultralite 以支持 32 BPP 渲染。

默认情况下,Qt Quick Ultralite 不引用备用渲染器,允许在它不被使用时丢弃。

此函数设置 32 BPP 绘图设备的备用渲染器。

目前此函数假设 32 BPP 设备为 ARGB32 格式。

此函数是在Qt Quick Ultralite (平台) 1.5中引入的。

另请参阅 Qul::PlatformInterface::init8bppRenderingQul::PlatformInterface::init24bppRenderingQul::PlatformInterface::init16bppRendering

[自 Qt Quick Ultralite (平台) 1.8] void init8bppRendering()

初始化 Qt Quick Ultralite 以支持 8 BPP 渲染。

默认情况下,Qt Quick Ultralite 不引用备用渲染器,允许在它不被使用时丢弃。

此函数设置 8 BPP 绘图设备的备用渲染器。

目前此函数假设 8 BPP 是 RGB332 格式。

此函数是在 Qt Quick Ultralite (平台) 1.8 中引入的。

另请参阅 Qul::PlatformInterface::init16bppRenderingQul::PlatformInterface::init24bppRenderingQul::PlatformInterface::init32bppRendering

[自 Qt Quick Ultralite (平台) 1.5] void updateEngine(uint64_t timestamp)

更新 Qt Quick Ultralite 引擎

Qt Quick Ultralite引擎需要定期更新,以更新其计时器和显示动画。

时间戳参数是当前平台时间戳(毫秒),由Qul::Platform::PlatformContext::currentTimestamp()报告。

此示例展示了从主循环中执行引擎更新的典型部分。

static uint64_t nextUpdate = 0;

void scheduleEngineUpdate(uint64_t timeout) {
   nextUpdate = timeout;
}

while_loop {
    const uint64_t timestamp = Qul::Platform::PlatformContext::currentTimestamp();
    if (timestamp >= nextUpdate) {
        Qul::PlatformInterface::updateEngine(timestamp);
    } else {
        // Device could sleep until time in 'nextUpdate'.
        enterSleepMode(nextUpdate);
    }
}

回调Qul::Platform::PlatformContext::scheduleEngineUpdate通知平台实现下一次Qt Quick Ultralite引擎需要更新的时间,通过Qul::PlatformInterface::updateEngine。

此函数是在Qt Quick Ultralite (平台) 1.5中引入的。

另请参阅Qul::Platform::PlatformContext::scheduleEngineUpdateQul::Platform::PlatformContext::currentTimestamp

在特定的Qt许可下提供。
了解更多信息。