summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorNiels Weber <niels.weber@digia.com>2014-05-05 16:16:05 +0200
committerNiels Weber <niels.weber@digia.com>2014-08-18 14:05:22 +0200
commitda77331952f38992fbd4a650a02ad975a4efaa36 (patch)
tree552b7fd7b828862e8a108428eb5f45425059ebfd /examples
parentf31e186354b11995d4bd4f0ad3c070c638f47648 (diff)
Improve Magnify and Ripple effects on video shader example
Re-enable Magnify shader. Use correct coordinates for Magnify and Ripple shader. Task-number: QTBUG-38121 Change-Id: Ie8d962ba841d074c9ebcf3b86f948848ad6a1812 Reviewed-by: Topi Reiniƶ <topi.reinio@digia.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml4
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectRipple.qml4
-rw-r--r--examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSelectionList.qml2
-rw-r--r--examples/multimedia/video/qmlvideofx/shaders/magnify.fsh3
-rw-r--r--examples/multimedia/video/qmlvideofx/shaders/ripple.fsh3
5 files changed, 12 insertions, 4 deletions
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml
index 3fd35eaae..84ac4ce7f 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectMagnify.qml
@@ -39,7 +39,8 @@
**
****************************************************************************/
-import QtQuick 2.0
+import QtQuick 2.1
+import QtQuick.Window 2.1
Effect {
id: root
@@ -57,6 +58,7 @@ Effect {
property real posX: -1
property real posY: -1
+ property real pixDens: Screen.pixelDensity
QtObject {
id: d
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectRipple.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectRipple.qml
index e0a2b0227..d481fdfd9 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectRipple.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectRipple.qml
@@ -39,7 +39,8 @@
**
****************************************************************************/
-import QtQuick 2.0
+import QtQuick 2.1
+import QtQuick.Window 2.1
Effect {
parameters: ListModel {
@@ -56,6 +57,7 @@ Effect {
// Transform slider values, and bind result to shader uniforms
property real amplitude: parameters.get(0).value * 0.03
property real n: parameters.get(1).value * 7
+ property real pixDens: Screen.pixelDensity
property real time: 0
NumberAnimation on time { loops: Animation.Infinite; from: 0; to: Math.PI * 2; duration: 600 }
diff --git a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSelectionList.qml b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSelectionList.qml
index fa92bb7ca..da9a96143 100644
--- a/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSelectionList.qml
+++ b/examples/multimedia/video/qmlvideofx/qml/qmlvideofx/EffectSelectionList.qml
@@ -51,7 +51,7 @@ ListModel {
ListElement { name: "Emboss"; source: "EffectEmboss.qml" }
ListElement { name: "Glow"; source: "EffectGlow.qml" }
ListElement { name: "Isolate"; source: "EffectIsolate.qml" }
- //ListElement { name: "Magnify"; source: "EffectMagnify.qml" }
+ ListElement { name: "Magnify"; source: "EffectMagnify.qml" }
ListElement { name: "Page curl"; source: "EffectPageCurl.qml" }
ListElement { name: "Pixelate"; source: "EffectPixelate.qml" }
ListElement { name: "Posterize"; source: "EffectPosterize.qml" }
diff --git a/examples/multimedia/video/qmlvideofx/shaders/magnify.fsh b/examples/multimedia/video/qmlvideofx/shaders/magnify.fsh
index 0387d25d6..fb7e2a047 100644
--- a/examples/multimedia/video/qmlvideofx/shaders/magnify.fsh
+++ b/examples/multimedia/video/qmlvideofx/shaders/magnify.fsh
@@ -50,12 +50,15 @@ uniform float targetWidth;
uniform float targetHeight;
uniform float posX;
uniform float posY;
+uniform float pixDens;
void main()
{
vec2 tc = qt_TexCoord0;
vec2 center = vec2(posX, posY);
vec2 xy = gl_FragCoord.xy - center.xy;
+ xy.x -= (pixDens * 14.0);
+ xy.y -= (pixDens * 29.0);
float r = sqrt(xy.x * xy.x + xy.y * xy.y);
if (r < radius) {
float h = diffractionIndex * 0.5 * radius;
diff --git a/examples/multimedia/video/qmlvideofx/shaders/ripple.fsh b/examples/multimedia/video/qmlvideofx/shaders/ripple.fsh
index b70f36d92..428c041c7 100644
--- a/examples/multimedia/video/qmlvideofx/shaders/ripple.fsh
+++ b/examples/multimedia/video/qmlvideofx/shaders/ripple.fsh
@@ -55,12 +55,13 @@ const int ITER = 7;
const float RATE = 0.1;
uniform float amplitude;
uniform float n;
+uniform float pixDens;
void main()
{
vec2 uv = qt_TexCoord0.xy;
vec2 tc = uv;
- vec2 p = vec2(-1.0 + 2.0 * gl_FragCoord.x / targetWidth, -(-1.0 + 2.0 * gl_FragCoord.y / targetHeight));
+ vec2 p = vec2(-1.0 + 2.0 * (gl_FragCoord.x - (pixDens * 14.0)) / targetWidth, -(-1.0 + 2.0 * (gl_FragCoord.y - (pixDens * 29.0)) / targetHeight));
float diffx = 0.0;
float diffy = 0.0;
vec4 col;