aboutsummaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2021-08-23 13:47:23 +0200
committerLaszlo Agocs <laszlo.agocs@qt.io>2021-08-25 09:56:32 +0200
commit34cad4c1a952c163365870f93690a025ea33535f (patch)
tree1f308287dc1587a54853909ba9ee390821d91b5b /examples
parent5cdec4e0c7b0d292c4d099189dd27c19eb314f2d (diff)
Port leftover effects in some of the examples
For qmake we have no choice but to ship the .qsb files, whereas with CMake we now rely on qt6_add_shaders. Change-Id: I9bb64a3ffd01cda84fca5a0f7def270975bf71aa Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> (cherry picked from commit c7093e553c46bbd65a053a335bd27bec8ee5aca2)
Diffstat (limited to 'examples')
-rw-r--r--examples/quick/embeddedinwidgets/CMakeLists.txt10
-rw-r--r--examples/quick/embeddedinwidgets/embeddedinwidgets.qrc1
-rw-r--r--examples/quick/embeddedinwidgets/main.qml16
-rw-r--r--examples/quick/embeddedinwidgets/reflect.frag22
-rw-r--r--examples/quick/embeddedinwidgets/reflect.frag.qsbbin0 -> 1976 bytes
-rw-r--r--examples/quick/quickwidgets/qquickviewcomparison/CMakeLists.txt11
-rw-r--r--examples/quick/quickwidgets/qquickviewcomparison/qquickviewcomparison.qrc1
-rw-r--r--examples/quick/quickwidgets/qquickviewcomparison/test.qml12
-rw-r--r--examples/quick/quickwidgets/qquickviewcomparison/wobble.frag20
-rw-r--r--examples/quick/quickwidgets/qquickviewcomparison/wobble.frag.qsbbin0 -> 1717 bytes
10 files changed, 67 insertions, 26 deletions
diff --git a/examples/quick/embeddedinwidgets/CMakeLists.txt b/examples/quick/embeddedinwidgets/CMakeLists.txt
index 067f427d20..a7afac6184 100644
--- a/examples/quick/embeddedinwidgets/CMakeLists.txt
+++ b/examples/quick/embeddedinwidgets/CMakeLists.txt
@@ -19,6 +19,7 @@ find_package(Qt6 COMPONENTS Core)
find_package(Qt6 COMPONENTS Gui)
find_package(Qt6 COMPONENTS Widgets)
find_package(Qt6 COMPONENTS Quick)
+find_package(Qt6 COMPONENTS ShaderTools)
qt_add_executable(embeddedinwidgets
main.cpp
@@ -48,6 +49,15 @@ qt6_add_resources(embeddedinwidgets "embeddedinwidgets"
${embeddedinwidgets_resource_files}
)
+qt6_add_shaders(embeddedinwidgets "shaders"
+ PRECOMPILE
+ OPTIMIZED
+ PREFIX
+ "/embeddedinwidgets"
+ FILES
+ "reflect.frag"
+)
+
install(TARGETS embeddedinwidgets
RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
diff --git a/examples/quick/embeddedinwidgets/embeddedinwidgets.qrc b/examples/quick/embeddedinwidgets/embeddedinwidgets.qrc
index 62e0ed2161..0154393a8d 100644
--- a/examples/quick/embeddedinwidgets/embeddedinwidgets.qrc
+++ b/examples/quick/embeddedinwidgets/embeddedinwidgets.qrc
@@ -2,5 +2,6 @@
<qresource prefix="/embeddedinwidgets">
<file>main.qml</file>
<file>TextBox.qml</file>
+ <file>reflect.frag.qsb</file>
</qresource>
</RCC>
diff --git a/examples/quick/embeddedinwidgets/main.qml b/examples/quick/embeddedinwidgets/main.qml
index e644a76587..7ce3bb8355 100644
--- a/examples/quick/embeddedinwidgets/main.qml
+++ b/examples/quick/embeddedinwidgets/main.qml
@@ -103,20 +103,6 @@ Rectangle {
property variant source: column;
property size sourceSize: Qt.size(0.5 / column.width, 0.5 / column.height);
- fragmentShader: `
- varying highp vec2 qt_TexCoord0;
- uniform lowp sampler2D source;
- uniform lowp vec2 sourceSize;
- uniform lowp float qt_Opacity;
- void main() {
-
- lowp vec2 tc = qt_TexCoord0 * vec2(1, -1) + vec2(0, 1);
- lowp vec4 col = 0.25 * (texture2D(source, tc + sourceSize)
- + texture2D(source, tc- sourceSize)
- + texture2D(source, tc + sourceSize * vec2(1, -1))
- + texture2D(source, tc + sourceSize * vec2(-1, 1))
- );
- gl_FragColor = col * qt_Opacity * (1.0 - qt_TexCoord0.y) * 0.2;
- }`
+ fragmentShader: "reflect.frag.qsb"
}
}
diff --git a/examples/quick/embeddedinwidgets/reflect.frag b/examples/quick/embeddedinwidgets/reflect.frag
new file mode 100644
index 0000000000..04a81f86e5
--- /dev/null
+++ b/examples/quick/embeddedinwidgets/reflect.frag
@@ -0,0 +1,22 @@
+#version 440
+
+layout(location = 0) in vec2 qt_TexCoord0;
+layout(location = 0) out vec4 fragColor;
+
+layout(binding = 1) uniform sampler2D source;
+
+layout(std140, binding = 0) uniform buf {
+ mat4 qt_Matrix;
+ float qt_Opacity;
+ vec2 sourceSize;
+};
+
+void main()
+{
+ vec2 tc = qt_TexCoord0 * vec2(1, -1) + vec2(0, 1);
+ vec4 col = 0.25 * (texture(source, tc + sourceSize)
+ + texture(source, tc- sourceSize)
+ + texture(source, tc + sourceSize * vec2(1, -1))
+ + texture(source, tc + sourceSize * vec2(-1, 1)));
+ fragColor = col * qt_Opacity * (1.0 - qt_TexCoord0.y) * 0.2;
+}
diff --git a/examples/quick/embeddedinwidgets/reflect.frag.qsb b/examples/quick/embeddedinwidgets/reflect.frag.qsb
new file mode 100644
index 0000000000..a4d25dcbf5
--- /dev/null
+++ b/examples/quick/embeddedinwidgets/reflect.frag.qsb
Binary files differ
diff --git a/examples/quick/quickwidgets/qquickviewcomparison/CMakeLists.txt b/examples/quick/quickwidgets/qquickviewcomparison/CMakeLists.txt
index e0354cf56c..428f7b53a3 100644
--- a/examples/quick/quickwidgets/qquickviewcomparison/CMakeLists.txt
+++ b/examples/quick/quickwidgets/qquickviewcomparison/CMakeLists.txt
@@ -20,6 +20,7 @@ find_package(Qt6 COMPONENTS Gui)
find_package(Qt6 COMPONENTS Quick)
find_package(Qt6 COMPONENTS Widgets)
find_package(Qt6 COMPONENTS QuickWidgets)
+find_package(Qt6 COMPONENTS ShaderTools)
qt_add_executable(qquickviewcomparison
fbitem.cpp fbitem.h
@@ -46,6 +47,16 @@ qt_add_qml_module(qquickviewcomparison
RESOURCE_PREFIX /qquickviewcomparison
NO_RESOURCE_TARGET_PATH
)
+
+qt6_add_shaders(qquickviewcomparison "shaders"
+ PRECOMPILE
+ OPTIMIZED
+ PREFIX
+ "/qquickviewcomparison"
+ FILES
+ "wobble.frag"
+)
+
install(TARGETS qquickviewcomparison
RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
diff --git a/examples/quick/quickwidgets/qquickviewcomparison/qquickviewcomparison.qrc b/examples/quick/quickwidgets/qquickviewcomparison/qquickviewcomparison.qrc
index 2b259fdeec..e545c993c0 100644
--- a/examples/quick/quickwidgets/qquickviewcomparison/qquickviewcomparison.qrc
+++ b/examples/quick/quickwidgets/qquickviewcomparison/qquickviewcomparison.qrc
@@ -1,5 +1,6 @@
<RCC>
<qresource prefix="/qquickviewcomparison">
<file>test.qml</file>
+ <file>wobble.frag.qsb</file>
</qresource>
</RCC>
diff --git a/examples/quick/quickwidgets/qquickviewcomparison/test.qml b/examples/quick/quickwidgets/qquickviewcomparison/test.qml
index e142add084..8224320509 100644
--- a/examples/quick/quickwidgets/qquickviewcomparison/test.qml
+++ b/examples/quick/quickwidgets/qquickviewcomparison/test.qml
@@ -213,16 +213,6 @@ Rectangle {
property real frequency: 10
property real time: 0
NumberAnimation on time { loops: Animation.Infinite; from: 0; to: Math.PI * 2; duration: 1000 }
- fragmentShader:
- "uniform lowp float qt_Opacity;" +
- "uniform highp float amplitude;" +
- "uniform highp float frequency;" +
- "uniform highp float time;" +
- "uniform sampler2D source;" +
- "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;" +
- "}"
+ fragmentShader: "wobble.frag.qsb"
}
}
diff --git a/examples/quick/quickwidgets/qquickviewcomparison/wobble.frag b/examples/quick/quickwidgets/qquickviewcomparison/wobble.frag
new file mode 100644
index 0000000000..9fddf1a162
--- /dev/null
+++ b/examples/quick/quickwidgets/qquickviewcomparison/wobble.frag
@@ -0,0 +1,20 @@
+#version 440
+
+layout(location = 0) in vec2 qt_TexCoord0;
+layout(location = 0) out vec4 fragColor;
+
+layout(binding = 1) uniform sampler2D source;
+
+layout(std140, binding = 0) uniform buf {
+ mat4 qt_Matrix;
+ float qt_Opacity;
+ float amplitude;
+ float frequency;
+ float time;
+};
+
+void main()
+{
+ vec2 p = sin(time + frequency * qt_TexCoord0);
+ fragColor = texture(source, qt_TexCoord0 + amplitude * vec2(p.y, -p.x)) * qt_Opacity;
+}
diff --git a/examples/quick/quickwidgets/qquickviewcomparison/wobble.frag.qsb b/examples/quick/quickwidgets/qquickviewcomparison/wobble.frag.qsb
new file mode 100644
index 0000000000..ab764e8326
--- /dev/null
+++ b/examples/quick/quickwidgets/qquickviewcomparison/wobble.frag.qsb
Binary files differ