Qt Quick の例 - 項目 可変リフレッシュレート

Qt Quick の例では、UI の特定の部分に可変リフレッシュレートを設定する方法を示します。

この例では、Item Layers の live プロパティを使用して、Quick アイテムに対して可変かつ独立したリフレッシュレートを取得する方法を示します。これは、UIの特定の部分がフレームごとに再レンダリングされる必要はないが、まだ内部更新が必要な場合に、パフォーマンスを大幅に向上させることができます。ほとんどの時間静止している部分や、常にスムーズに動作する必要のないアニメーションを描画することは、リソースの無駄遣いです。このプロパティは、アイテムが描画されるタイミングをユーザーがコントロールできるようにします。

注意: Item Layers を使用すると、レイヤー化されたアイテムのサブツリーのサイズによっては、別々のレンダー ターゲット(テクスチャ)を使用するため、パフォーマンスが低下する場合があります。アプリケーション設計者は、レイヤーを使用するメリットが潜在的なデメリットを上回ることを確認するために、常に影響を評価する必要があります。

この例では、FrameAnimation を使用して、アイテムのレンダリング頻度を制御しています。例えば、2フレームごとにレンダリングしたい場合に便利です。タイマーのようなものを使ってフラグを切り替えることもできます。

FrameAnimation {
  id: frameAnimation
  property real fps: smoothFrameTime > 0 ? (1.0 / smoothFrameTime) : 0
  running: true
}

上記のスニペットでは、fps プロパティは視覚的なデモンストレーションのためだけに存在しています。

このアイテムには、layer.enabled が true であることが必要で、下のスニペットに示すように、layer.live の状態に応じてアイテムがレンダリングされます。

Item {
    id: qt_logo
    width: 230
    height: 230
    anchors.fill: parent
    anchors.topMargin: 125
    layer.enabled: true
    layer.live: slider.value > 0 && frameAnimation.currentFrame % slider.value == 0

modulo 演算子と値を設定するスライダーを使用することで、Qt ロゴがレンダリングされる頻度を動的に変更することができます。

プロジェクト例 @ code.qt.io

©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。