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>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 }
|
||||
|
||||
@@ -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" }
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user