diff options
Diffstat (limited to 'tests/manual/nodetypes/Effects.qml')
-rw-r--r-- | tests/manual/nodetypes/Effects.qml | 231 |
1 files changed, 0 insertions, 231 deletions
diff --git a/tests/manual/nodetypes/Effects.qml b/tests/manual/nodetypes/Effects.qml deleted file mode 100644 index 90a30c40d3..0000000000 --- a/tests/manual/nodetypes/Effects.qml +++ /dev/null @@ -1,231 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the demonstration applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -// Use QtQuick 2.8 to get GraphicsInfo and the other new properties -import QtQuick 2.8 - -Item { - Rectangle { - color: "gray" - anchors.margins: 10 - anchors.fill: parent - Image { - id: image1 - source: "qrc:/qt.png" - } - ShaderEffectSource { - id: effectSource1 - sourceItem: image1 - hideSource: true - } - ShaderEffect { // wobble - id: eff - width: image1.width - height: image1.height - anchors.centerIn: parent - - property variant source: effectSource1 - property real amplitude: 0.04 * 0.2 - property real frequency: 20 - property real time: 0 - - NumberAnimation on time { loops: Animation.Infinite; from: 0; to: Math.PI * 2; duration: 600 } - - property bool customVertexShader: false // the effect is fine with the default vs, but toggle this to test - property bool useHLSLSourceString: false // toggle to provide HLSL shaders as strings instead of bytecode in files - - property string glslVertexShader: - "uniform highp mat4 qt_Matrix;" + - "attribute highp vec4 qt_Vertex;" + - "attribute highp vec2 qt_MultiTexCoord0;" + - "varying highp vec2 qt_TexCoord0;" + - "void main() {" + - " qt_TexCoord0 = qt_MultiTexCoord0;" + - " gl_Position = qt_Matrix * qt_Vertex;" + - "}" - - property string glslFragmentShader: - "uniform sampler2D source;" + - "uniform highp float amplitude;" + - "uniform highp float frequency;" + - "uniform highp float time;" + - "uniform lowp float qt_Opacity;" + - "varying highp vec2 qt_TexCoord0;" + - "void main() {" + - " highp vec2 p = sin(time + frequency * qt_TexCoord0);" + - " gl_FragColor = texture2D(source, qt_TexCoord0 + amplitude * vec2(p.y, -p.x)) * qt_Opacity;" + - "}" - - property string hlslVertexShader: "cbuffer ConstantBuffer : register(b0) {" + - " float4x4 qt_Matrix;" + - " float qt_Opacity; }" + - "struct PSInput {" + - " float4 position : SV_POSITION;" + - " float2 coord : TEXCOORD0; };" + - "PSInput main(float4 position : POSITION, float2 coord : TEXCOORD0) {" + - " PSInput result;" + - " result.position = mul(qt_Matrix, position);" + - " result.coord = coord;" + - " return result;" + - "}"; - - property string hlslPixelShader:"cbuffer ConstantBuffer : register(b0) {" + - " float4x4 qt_Matrix;" + - " float qt_Opacity;" + - " float amplitude;" + - " float frequency;" + - " float time; }" + - "Texture2D source : register(t0);" + - "SamplerState sourceSampler : register(s0);" + - "float4 main(float4 position : SV_POSITION, float2 coord : TEXCOORD0) : SV_TARGET" + - "{" + - " float2 p = sin(time + frequency * coord);" + - " return source.Sample(sourceSampler, coord + amplitude * float2(p.y, -p.x)) * qt_Opacity;" + - "}"; - - property string hlslVertexShaderByteCode: "qrc:/vs_wobble.cso" - property string hlslPixelShaderByteCode: "qrc:/ps_wobble.cso" - - vertexShader: customVertexShader ? (GraphicsInfo.shaderType === GraphicsInfo.HLSL - ? (useHLSLSourceString ? hlslVertexShader : hlslVertexShaderByteCode) - : (GraphicsInfo.shaderType === GraphicsInfo.GLSL ? glslVertexShader : "")) : "" - - fragmentShader: GraphicsInfo.shaderType === GraphicsInfo.HLSL - ? (useHLSLSourceString ? hlslPixelShader : hlslPixelShaderByteCode) - : (GraphicsInfo.shaderType === GraphicsInfo.GLSL ? glslFragmentShader : "") - } - - Image { - id: image2 - source: "qrc:/face-smile.png" - } - ShaderEffectSource { - id: effectSource2 - sourceItem: image2 - hideSource: true - } - ShaderEffect { // dropshadow - id: eff2 - width: image2.width - height: image2.height - scale: 2 - x: 40 - y: 40 - - property variant source: effectSource2 - - property string glslShaderPass1: " - uniform lowp float qt_Opacity; - uniform sampler2D source; - uniform highp vec2 delta; - varying highp vec2 qt_TexCoord0; - void main() { - gl_FragColor = (0.0538 * texture2D(source, qt_TexCoord0 - 3.182 * delta) - + 0.3229 * texture2D(source, qt_TexCoord0 - 1.364 * delta) - + 0.2466 * texture2D(source, qt_TexCoord0) - + 0.3229 * texture2D(source, qt_TexCoord0 + 1.364 * delta) - + 0.0538 * texture2D(source, qt_TexCoord0 + 3.182 * delta)) * qt_Opacity; - }" - property string glslShaderPass2: " - uniform lowp float qt_Opacity; - uniform highp vec2 offset; - uniform sampler2D source; - uniform sampler2D shadow; - uniform highp float darkness; - uniform highp vec2 delta; - varying highp vec2 qt_TexCoord0; - void main() { - lowp vec4 fg = texture2D(source, qt_TexCoord0); - lowp vec4 bg = texture2D(shadow, qt_TexCoord0 + delta); - gl_FragColor = (fg + vec4(0., 0., 0., darkness * bg.a) * (1. - fg.a)) * qt_Opacity; - }" - - property variant shadow: ShaderEffectSource { - sourceItem: ShaderEffect { - width: eff2.width - height: eff2.height - property variant delta: Qt.size(0.0, 1.0 / height) - property variant source: ShaderEffectSource { - sourceItem: ShaderEffect { - id: innerEff - width: eff2.width - height: eff2.height - property variant delta: Qt.size(1.0 / width, 0.0) - property variant source: effectSource2 - fragmentShader: GraphicsInfo.shaderType === GraphicsInfo.HLSL ? "qrc:/ps_shadow1.cso" : (GraphicsInfo.shaderType === GraphicsInfo.GLSL ? eff2.glslShaderPass1 : "") - } - } - fragmentShader: GraphicsInfo.shaderType === GraphicsInfo.HLSL ? "qrc:/ps_shadow1.cso" : (GraphicsInfo.shaderType === GraphicsInfo.GLSL ? eff2.glslShaderPass1: "") - } - } - property real angle: 0 - property variant offset: Qt.point(5.0 * Math.cos(angle), 5.0 * Math.sin(angle)) - NumberAnimation on angle { loops: Animation.Infinite; from: 0; to: Math.PI * 2; duration: 6000 } - property variant delta: Qt.size(offset.x / width, offset.y / height) - property real darkness: 0.5 - fragmentShader: GraphicsInfo.shaderType === GraphicsInfo.HLSL ? "qrc:/ps_shadow2.cso" : (GraphicsInfo.shaderType === GraphicsInfo.GLSL ? glslShaderPass2 : "") - } - - Column { - anchors.bottom: parent.bottom - Text { - color: "yellow" - font.pointSize: 24 - text: "Shader effect is " + (GraphicsInfo.shaderType === GraphicsInfo.HLSL ? "HLSL" : (GraphicsInfo.shaderType === GraphicsInfo.GLSL ? "GLSL" : "UNKNOWN")) + " based"; - } - Text { - text: GraphicsInfo.shaderType + " " + GraphicsInfo.shaderCompilationType + " " + GraphicsInfo.shaderSourceType - } - Text { - text: eff.status + " " + eff.log - } - } - } -} |