diff options
Diffstat (limited to 'examples/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml')
-rw-r--r-- | examples/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml | 23 |
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" |