C
Qt Quick Ultralite Motorcycle Cluster Demo
// Copyright (C) 2024 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial import QtQuick 2.15 import QtQuickUltralite.Extras 2.0 Row { id: root visible: QulPerf.enabled property int minFPS: 1000 property int maxFPS: 0 property int avgFPSum: 0 property int avgCounter: 0 property int fps: QulPerf.fps readonly property int minFPSlimit: 1 property real repaint: QulPerf.repaint property real repaintAvgSum: 0 spacing: 10 Timer { id: averageFPStimer interval: 250 running: true repeat: true onTriggered: { root.averageCalc() } } function averageCalc() { root.avgFPSum = root.avgFPSum + root.fps root.avgCounter = root.avgCounter + 1 root.repaintAvgSum = root.repaintAvgSum + root.repaint } PerformanceMetricItem { label: "FPS:" value: QulPerf.fps.toFixed(0) } PerformanceMetricItem { label: "FPSmin:" value: (QulPerf.fps < root.minFPS && QulPerf.fps > root.minFPSlimit ? root.minFPS = QulPerf.fps : root.minFPS).toFixed(0) } // PerformanceMetricItem { // label: "FPSmax:" // value: (QulPerf.fps > root.maxFPS ? root.maxFPS = QulPerf.fps : root.maxFPS).toString() // } PerformanceMetricItem { label: "FPSavg:" value: (root.avgFPSum / root.avgCounter).toFixed(0) } PerformanceMetricItem { label: "repaint:" value: root.repaint.toFixed(1) } PerformanceMetricItem { label: "repAvg:" value: (root.repaintAvgSum / root.avgCounter).toFixed(1) } Component.onCompleted: { QulPerf.recording = true } }