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 {
|
Effect {
|
||||||
id: root
|
id: root
|
||||||
@@ -57,6 +58,7 @@ Effect {
|
|||||||
|
|
||||||
property real posX: -1
|
property real posX: -1
|
||||||
property real posY: -1
|
property real posY: -1
|
||||||
|
property real pixDens: Screen.pixelDensity
|
||||||
|
|
||||||
QtObject {
|
QtObject {
|
||||||
id: d
|
id: d
|
||||||
|
|||||||
@@ -39,7 +39,8 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.1
|
||||||
|
import QtQuick.Window 2.1
|
||||||
|
|
||||||
Effect {
|
Effect {
|
||||||
parameters: ListModel {
|
parameters: ListModel {
|
||||||
@@ -56,6 +57,7 @@ Effect {
|
|||||||
// Transform slider values, and bind result to shader uniforms
|
// Transform slider values, and bind result to shader uniforms
|
||||||
property real amplitude: parameters.get(0).value * 0.03
|
property real amplitude: parameters.get(0).value * 0.03
|
||||||
property real n: parameters.get(1).value * 7
|
property real n: parameters.get(1).value * 7
|
||||||
|
property real pixDens: Screen.pixelDensity
|
||||||
|
|
||||||
property real time: 0
|
property real time: 0
|
||||||
NumberAnimation on time { loops: Animation.Infinite; from: 0; to: Math.PI * 2; duration: 600 }
|
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: "Emboss"; source: "EffectEmboss.qml" }
|
||||||
ListElement { name: "Glow"; source: "EffectGlow.qml" }
|
ListElement { name: "Glow"; source: "EffectGlow.qml" }
|
||||||
ListElement { name: "Isolate"; source: "EffectIsolate.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: "Page curl"; source: "EffectPageCurl.qml" }
|
||||||
ListElement { name: "Pixelate"; source: "EffectPixelate.qml" }
|
ListElement { name: "Pixelate"; source: "EffectPixelate.qml" }
|
||||||
ListElement { name: "Posterize"; source: "EffectPosterize.qml" }
|
ListElement { name: "Posterize"; source: "EffectPosterize.qml" }
|
||||||
|
|||||||
@@ -50,12 +50,15 @@ uniform float targetWidth;
|
|||||||
uniform float targetHeight;
|
uniform float targetHeight;
|
||||||
uniform float posX;
|
uniform float posX;
|
||||||
uniform float posY;
|
uniform float posY;
|
||||||
|
uniform float pixDens;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec2 tc = qt_TexCoord0;
|
vec2 tc = qt_TexCoord0;
|
||||||
vec2 center = vec2(posX, posY);
|
vec2 center = vec2(posX, posY);
|
||||||
vec2 xy = gl_FragCoord.xy - center.xy;
|
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);
|
float r = sqrt(xy.x * xy.x + xy.y * xy.y);
|
||||||
if (r < radius) {
|
if (r < radius) {
|
||||||
float h = diffractionIndex * 0.5 * radius;
|
float h = diffractionIndex * 0.5 * radius;
|
||||||
|
|||||||
@@ -55,12 +55,13 @@ const int ITER = 7;
|
|||||||
const float RATE = 0.1;
|
const float RATE = 0.1;
|
||||||
uniform float amplitude;
|
uniform float amplitude;
|
||||||
uniform float n;
|
uniform float n;
|
||||||
|
uniform float pixDens;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec2 uv = qt_TexCoord0.xy;
|
vec2 uv = qt_TexCoord0.xy;
|
||||||
vec2 tc = uv;
|
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 diffx = 0.0;
|
||||||
float diffy = 0.0;
|
float diffy = 0.0;
|
||||||
vec4 col;
|
vec4 col;
|
||||||
|
|||||||
Reference in New Issue
Block a user