diff options
author | Thomas Hartmann <thomas.hartmann@qt.io> | 2024-04-18 17:21:07 +0200 |
---|---|---|
committer | Thomas Hartmann <thomas.hartmann@qt.io> | 2024-04-18 17:28:30 +0200 |
commit | aaeac1cb64713da1a4813177fc231efc18a4331b (patch) | |
tree | 211d31c5988fd12687e729cf49aebcbf9ff0d731 | |
parent | 97b9b619a12c88b9b72cc823363e01278237be91 (diff) |
Clamp values for effects
Change-Id: I4295d860608f04e68e431969593832a37e22c73b
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
-rw-r--r-- | src/imports/designeffects/DesignEffectPrivate.qml | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/imports/designeffects/DesignEffectPrivate.qml b/src/imports/designeffects/DesignEffectPrivate.qml index 14b3072..f20b42b 100644 --- a/src/imports/designeffects/DesignEffectPrivate.qml +++ b/src/imports/designeffects/DesignEffectPrivate.qml @@ -51,6 +51,14 @@ Item { Component.onCompleted: root.calculateBoundingBox() + function clamp(input : real, min : real, max : real) { + + if (isNaN(input)) + return 0 + + return Math.max(min, Math.min(input, max)) + } + property rect effectBoundingBox: Qt.rect(0, 0, 0, 0) function calculateBoundingBox() { @@ -81,7 +89,7 @@ Item { DesignLayerBlurPrivate { id: layerBlur visible: root.layerBlurVisible - radius: root.layerBlurRadius + radius: root.clamp(root.layerBlurRadius, 0, 250) source: layerBlurSource @@ -114,7 +122,7 @@ Item { source: root.source background: root.background - radius: root.backgroundBlurRadius + radius: root.clamp(root.backgroundBlurRadius, 0, 250) } ShaderEffectSource { @@ -142,11 +150,11 @@ Item { source: root.source - horizontalOffset: modelData.offsetX - verticalOffset: modelData.offsetY - spread: modelData.spread + horizontalOffset: root.clamp(modelData.offsetX, -0xffff, 0xffff) + verticalOffset: root.clamp(modelData.offsetY, -0xffff, 0xffff) + spread: root.clamp(modelData.spread, -2048, 2048) color: modelData.color - radius: modelData.blur + radius: root.clamp(modelData.blur, 0, 250) visible: modelData.visible onGeometryChanged: root.calculateBoundingBox() @@ -160,11 +168,11 @@ Item { source: root.source - horizontalOffset: modelData.offsetX - verticalOffset: modelData.offsetY - spread: modelData.spread + horizontalOffset: root.clamp(modelData.offsetX, -0xffff, 0xffff) + verticalOffset: root.clamp(modelData.offsetY, -0xffff, 0xffff) + spread: repeater.clamp(modelData.spread, -2048, 2048) color: modelData.color - radius: modelData.blur + radius: root.clamp(modelData.blur, 0, 250) visible: modelData.visible z: 10 |