diff options
author | Ville Voutilainen <ville.voutilainen@qt.io> | 2021-12-01 13:14:20 +0200 |
---|---|---|
committer | Ville Voutilainen <ville.voutilainen@qt.io> | 2022-01-04 11:12:11 +0000 |
commit | c9d84ead801960601870240e36478468c2a28b82 (patch) | |
tree | fbd2c6ae0466ecfce032e5eebca10d02dcae7bf3 /src/benchmarks/auto/changes/changing_over_isolated_with_clip_rotated.qml | |
parent | 6d298da7cda85b35aa22c68aac55fdb6513e68eb (diff) |
Use a resource file for benchmarks, and add some Android goodies and fixes
Task-number: QTBUG-94148
Change-Id: I7cc0b1ade676c4f7f963915315c00e317582e56f
Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
Diffstat (limited to 'src/benchmarks/auto/changes/changing_over_isolated_with_clip_rotated.qml')
-rw-r--r-- | src/benchmarks/auto/changes/changing_over_isolated_with_clip_rotated.qml | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/benchmarks/auto/changes/changing_over_isolated_with_clip_rotated.qml b/src/benchmarks/auto/changes/changing_over_isolated_with_clip_rotated.qml new file mode 100644 index 0000000..48dae1d --- /dev/null +++ b/src/benchmarks/auto/changes/changing_over_isolated_with_clip_rotated.qml @@ -0,0 +1,57 @@ +import QtQuick 2.0 +import QmlBench 1.0 + +// Tests that a single item changing in one subtree, and many items in another +// tree, do not have bad performance when both subtrees are isolated with +// "clip: true". +// +// Different from changing_over_isolated_with_clip, we also rotate, as this +// can't just be clipped with scissoring. +// +// TODO: consider whether it makes sense to test this as a specific render +// test, changing_over_isolated_with_clip covers the clipping part well enough +// that perhaps we don't need this approach. Useful for now, though. +Item { + id: root; + property int count: 1000; + property int staticCount: 2000 + + property real t; + NumberAnimation on t { from: 0; to: 1; duration: 2347; loops: Animation.Infinite } + + Item { + anchors.fill: parent + clip: true + Repeater { + id: repeater + model: root.count + + Rectangle { + color: Qt.hsla(QmlBench.getRandom(), 0.9, 0.4) + width: 20 + height: 20 + x: QmlBench.getRandom() * root.width + y: QmlBench.getRandom() * root.height + clip: true + rotation: 10 + + Text { + color: "white" + text: "X" + anchors.centerIn: parent + font.pixelSize: 10 + } + } + } + } + + Item { + anchors.fill: parent + clip: true + Text { + anchors.centerIn: parent + text: "test: " + root.t; + } + } + +} |