C++ QML渲染引擎:帧刷新事件

C++ QML渲染引擎:帧刷新事件,c++,qt,qml,C++,Qt,Qml,文章说, 作为应用程序开发人员,您必须努力允许渲染 引擎可实现每秒60帧的一致刷新率。60 FPS表示两个时间间隔约为16毫秒 可以进行处理的帧,包括处理 需要将绘图原语上载到图形硬件 是否存在事件、信号或任何形式的回调,以使代码在刷新时被调用 目标是消除在UI线程槽中处理来自渲染线程的信号的需要。如果新数据到达,那么它将被绘制或标记为下一次要绘制的刷新(使用update()调用)。QQuickWindow有一组用于同步的信号-在渲染前(),在渲染后(),在同步前(),在同步后(),frameS

文章说,

作为应用程序开发人员,您必须努力允许渲染 引擎可实现每秒60帧的一致刷新率。60 FPS表示两个时间间隔约为16毫秒 可以进行处理的帧,包括处理 需要将绘图原语上载到图形硬件

是否存在事件、信号或任何形式的回调,以使代码在刷新时被调用


目标是消除在UI线程槽中处理来自渲染线程的信号的需要。如果新数据到达,那么它将被绘制或标记为下一次要绘制的刷新(使用
update()
调用)。

QQuickWindow
有一组用于同步的信号-
在渲染前()
在渲染后()
在同步前()
在同步后()
frameSwapped()
。您可以选择。

我正在为运行在定制引擎驱动的某个QML上下文中的嵌入式设备编写代码。这意味着在引擎QML容器窗口中进行调整。是否有通过嵌套QML类型的条目,例如QQuickItem或类似的条目?无需调整任何内容,这些信号存在并在stock实现中发出。你只需要连接到它们。我可以说,从代码组织的角度来看,这有点麻烦。我需要伸手去拿东西。好的是,这些信号来自同一个线程。考虑到QML的设计理念,我认为简单连接和使用这些信号的选项非常慷慨。在这方面没有什么需要改进的。我看不出你期望它会容易多少。