diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2021-08-23 13:47:23 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2021-08-24 13:51:52 +0200 |
commit | c7093e553c46bbd65a053a335bd27bec8ee5aca2 (patch) | |
tree | ad7e6d2f7f402c7fda6238b4ac1b5e5fa23d59a4 /examples/quick/embeddedinwidgets | |
parent | cc3e0a5684a336f83d7f94ba455870b0bfba5c3d (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.
Pick-to: 6.2
Change-Id: I9bb64a3ffd01cda84fca5a0f7def270975bf71aa
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'examples/quick/embeddedinwidgets')
-rw-r--r-- | examples/quick/embeddedinwidgets/CMakeLists.txt | 10 | ||||
-rw-r--r-- | examples/quick/embeddedinwidgets/embeddedinwidgets.qrc | 1 | ||||
-rw-r--r-- | examples/quick/embeddedinwidgets/main.qml | 16 | ||||
-rw-r--r-- | examples/quick/embeddedinwidgets/reflect.frag | 22 | ||||
-rw-r--r-- | examples/quick/embeddedinwidgets/reflect.frag.qsb | bin | 0 -> 1976 bytes |
5 files changed, 34 insertions, 15 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 Binary files differnew file mode 100644 index 0000000000..a4d25dcbf5 --- /dev/null +++ b/examples/quick/embeddedinwidgets/reflect.frag.qsb |