summaryrefslogtreecommitdiffstats
path: root/examples/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml
diff options
context:
space:
mode:
Diffstat (limited to 'examples/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml')
-rw-r--r--examples/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml23
1 files changed, 21 insertions, 2 deletions
diff --git a/examples/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml b/examples/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml
index 11f9b0091..e0b573eb8 100644
--- a/examples/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml
+++ b/examples/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml
@@ -58,12 +58,31 @@ Effect {
property real posX: -1
property real posY: -1
+ QtObject {
+ id: d
+ property real oldTargetWidth: root.targetWidth
+ property real oldTargetHeight: root.targetHeight
+ }
+
// Transform slider values, and bind result to shader uniforms
property real radius: parameters.get(0).value * 100
property real diffractionIndex: parameters.get(1).value
- onTargetWidthChanged: if (posX == -1) posX = targetWidth / 2
- onTargetHeightChanged: if (posY == -1) posY = targetHeight / 2
+ onTargetWidthChanged: {
+ if (posX == -1)
+ posX = targetWidth / 2
+ else if (d.oldTargetWidth != 0)
+ posX *= (targetWidth / d.oldTargetWidth)
+ d.oldTargetWidth = targetWidth
+ }
+
+ onTargetHeightChanged: {
+ if (posY == -1)
+ posY = targetHeight / 2
+ else if (d.oldTargetHeight != 0)
+ posY *= (targetHeight / d.oldTargetHeight)
+ d.oldTargetHeight = targetHeight
+ }
fragmentShaderFilename: "shaders/magnify.fsh"