C

使用硬件层提高性能

Qt Quick Ultralite 默认使用单个硬件层来处理最终显示在屏幕上的所有像素。这在支持层的硬件平台上可能不是最佳解决方案。您可以使用多个帧缓冲区来提高此类平台上的性能,让硬件将它们混合在一起以产生最终图像。

可以使用多个层来表示动态 UI 内容,这些内容由 CPU 或 GPU 内存中的帧缓冲区渲染,或者由永不更改的静态图像数据渲染。

Qt Quick Ultralite 应用程序可以使用硬件层来减少内存占用和 CPU 或 GPU 利用率,或者防止由昂贵的渲染操作引起的帧跳过。

减少内存占用

与其使用两个全屏帧缓冲区来显示带有覆盖整个屏幕的单个背景图像的动态更新的 UI,不如使用图像层

Screen {
    width: 800
    height: 480

    ImageLayer {
        anchors.fill: parent
        source: "background.png"
    }

    ItemLayer {
        anchors.fill: parent
        depth: ItemLayer.Bpp32Alpha

        // UI items here
    }
}

如果背景图像位于闪存中,则不需要额外的帧缓冲区内存,从而降低了 CPU 或 GPU 内存使用。

使用多个项目层也可以通过降低位深或使用比单个项目层更小的项目层来减少内存使用。后者用于 UI 中存在大量不受内容覆盖的空白区域。

减少渲染时间

有些图形可能很难渲染,例如具有透视变换或应用效果的图像。如果可能,可以将它们放在单独的项目层中,将 refreshInterval 属性设置为 2。这导致层的内容仅在每秒重绘一次,从而节省 CPU 和 GPU 利用率并降低主 UI 不平滑动画的风险。

Screen {
    width: 800
    height: 480

    ItemLayer {
        anchors.fill: parent

        // Main UI items here
    }

    ItemLayer {
        anchors.centerIn: parent
        width: 400
        height: 240

        refreshInterval: 2

        // Expensive to render graphics here
    }
}

使用精灵层

许多平台仅支持相对较少的根层,可能的数量最多为四个。如果可用精灵硬件层支持,可以使用精灵层作为多个较小项或图像层的容器。

然而,使用精灵层有一些限制,这些限制在 SpriteLayer 文档中已列出。

参阅帧缓冲区要求.

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