Controls: condition shaders at build time

The machinery inherited from Qt 5, with file selectors and whatnot, is
simply not needed anymore.

Pick-to: 6.5
Change-Id: If0728a4fa057335fe8471899da50b836f8d56d35
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
This commit is contained in:
Laszlo Agocs 2023-03-07 13:05:56 +01:00
parent 4f5b4f81b0
commit 314f1cf8a4
15 changed files with 57 additions and 146 deletions

View File

@ -31,16 +31,13 @@ qt_internal_add_qml_module(qtquickcontrols2imaginestyleimplplugin
Qt::QuickTemplates2Private
)
# Resources:
set(qmake_qtquickcontrols2imaginestyleimplplugin_resource_files
"shaders/+glslcore/OpacityMask.frag"
"shaders/+qsb/OpacityMask.frag"
"shaders/OpacityMask.frag"
)
qt_internal_add_resource(qtquickcontrols2imaginestyleimplplugin "qmake_qtquickcontrols2imaginestyleimplplugin"
qt_internal_add_shaders(qtquickcontrols2imaginestyleimplplugin "qtquickcontrols2imaginestyleimplplugin_shaders"
SILENT
BATCHABLE
PRECOMPILE
OPTIMIZED
PREFIX
"qt-project.org/imports/QtQuick/Controls/Imagine/impl"
"/qt-project.org/imports/QtQuick/Controls/Imagine/impl"
FILES
${qmake_qtquickcontrols2imaginestyleimplplugin_resource_files}
"shaders/OpacityMask.frag"
)

View File

@ -30,6 +30,6 @@ Item {
anchors.fill: parent
fragmentShader: "qrc:/qt-project.org/imports/QtQuick/Controls/Imagine/impl/shaders/OpacityMask.frag"
fragmentShader: "qrc:/qt-project.org/imports/QtQuick/Controls/Imagine/impl/shaders/OpacityMask.frag.qsb"
}
}

View File

@ -1,13 +0,0 @@
#version 150
uniform float qt_Opacity;
uniform sampler2D source;
uniform sampler2D maskSource;
in vec2 qt_TexCoord0;
out vec4 fragColor;
void main()
{
fragColor = texture(source, qt_TexCoord0.st) * (texture(maskSource, qt_TexCoord0.st).a) * qt_Opacity;
}

View File

@ -1,7 +1,17 @@
varying highp vec2 qt_TexCoord0;
uniform highp float qt_Opacity;
uniform lowp sampler2D source;
uniform lowp sampler2D maskSource;
void main(void) {
gl_FragColor = texture2D(source, qt_TexCoord0.st) * (texture2D(maskSource, qt_TexCoord0.st).a) * qt_Opacity;
#version 440
layout(location = 0) in vec2 qt_TexCoord0;
layout(location = 0) out vec4 fragColor;
layout(std140, binding = 0) uniform buf {
mat4 qt_Matrix;
float qt_Opacity;
} ubuf;
layout(binding = 1) uniform sampler2D source;
layout(binding = 2) uniform sampler2D maskSource;
void main()
{
fragColor = texture(source, qt_TexCoord0.st) * (texture(maskSource, qt_TexCoord0.st).a) * ubuf.qt_Opacity;
}

View File

@ -1,17 +0,0 @@
#version 440
layout(location = 0) in vec2 qt_TexCoord0;
layout(location = 0) out vec4 fragColor;
layout(std140, binding = 0) uniform buf {
mat4 qt_Matrix;
float qt_Opacity;
} ubuf;
layout(binding = 1) uniform sampler2D source;
layout(binding = 2) uniform sampler2D maskSource;
void main()
{
fragColor = texture(source, qt_TexCoord0.st) * (texture(maskSource, qt_TexCoord0.st).a) * ubuf.qt_Opacity;
}

View File

@ -1,4 +0,0 @@
:: Copyright (C) 2020 The Qt Company Ltd.
:: SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
qsb --glsl "150,120,100 es" --hlsl 50 --msl 12 -o +qsb/OpacityMask.frag OpacityMask_rhi.frag

View File

@ -141,9 +141,16 @@ qt_internal_add_resource(qtquickcontrols2materialstyleplugin "qtquickcontrols2ma
"images/drop-indicator@2x.png"
"images/drop-indicator@3x.png"
"images/drop-indicator@4x.png"
"shaders/+glslcore/RectangularGlow.frag"
"shaders/+hlsl/RectangularGlow.frag"
"shaders/+qsb/RectangularGlow.frag"
)
qt_internal_add_shaders(qtquickcontrols2materialstyleplugin "qtquickcontrols2materialstyleplugin_shaders"
SILENT
BATCHABLE
PRECOMPILE
OPTIMIZED
PREFIX
"/qt-project.org/imports/QtQuick/Controls/Material"
FILES
"shaders/RectangularGlow.frag"
)

View File

@ -202,6 +202,6 @@ Item {
property real spread: rootItem.spread / 2.0
property real cornerRadius: clampedCornerRadius()
fragmentShader: "qrc:/qt-project.org/imports/QtQuick/Controls/Material/shaders/RectangularGlow.frag"
fragmentShader: "qrc:/qt-project.org/imports/QtQuick/Controls/Material/shaders/RectangularGlow.frag.qsb"
}
}

View File

@ -1,25 +0,0 @@
#version 150
uniform float qt_Opacity;
uniform float relativeSizeX;
uniform float relativeSizeY;
uniform float spread;
uniform vec4 color;
in vec2 qt_TexCoord0;
out vec4 fragColor;
float linearstep(float e0, float e1, float x)
{
return clamp((x - e0) / (e1 - e0), 0.0, 1.0);
}
void main()
{
float alpha =
smoothstep(0.0, relativeSizeX, 0.5 - abs(0.5 - qt_TexCoord0.x)) *
smoothstep(0.0, relativeSizeY, 0.5 - abs(0.5 - qt_TexCoord0.y));
float spreadMultiplier = linearstep(spread, 1.0 - spread, alpha);
fragColor = color * qt_Opacity * spreadMultiplier * spreadMultiplier;
}

View File

@ -1,21 +0,0 @@
cbuffer ConstantBuffer : register(b0)
{
float4x4 qt_Matrix;
float qt_Opacity;
float relativeSizeX;
float relativeSizeY;
float spread;
float4 color;
}
float linearstep(float e0, float e1, float x) { return clamp((x - e0) / (e1 - e0), 0.0, 1.0); }
float4 main(float4 position : SV_POSITION, float2 coord : TEXCOORD0) : SV_TARGET
{
float alpha =
smoothstep(0.0, relativeSizeX, 0.5 - abs(0.5 - coord.x)) *
smoothstep(0.0, relativeSizeY, 0.5 - abs(0.5 - coord.y));
float spreadMultiplier = linearstep(spread, 1.0 - spread, alpha);
return color * qt_Opacity * spreadMultiplier * spreadMultiplier;
}

View File

@ -1,19 +1,28 @@
uniform highp float qt_Opacity;
uniform mediump float relativeSizeX;
uniform mediump float relativeSizeY;
uniform mediump float spread;
uniform lowp vec4 color;
varying highp vec2 qt_TexCoord0;
#version 440
highp float linearstep(highp float e0, highp float e1, highp float x) {
layout(location = 0) in vec2 qt_TexCoord0;
layout(location = 0) out vec4 fragColor;
layout(std140, binding = 0) uniform buf {
mat4 qt_Matrix;
float qt_Opacity;
float relativeSizeX;
float relativeSizeY;
float spread;
vec4 color;
} ubuf;
float linearstep(float e0, float e1, float x)
{
return clamp((x - e0) / (e1 - e0), 0.0, 1.0);
}
void main() {
lowp float alpha =
smoothstep(0.0, relativeSizeX, 0.5 - abs(0.5 - qt_TexCoord0.x)) *
smoothstep(0.0, relativeSizeY, 0.5 - abs(0.5 - qt_TexCoord0.y));
void main()
{
float alpha =
smoothstep(0.0, ubuf.relativeSizeX, 0.5 - abs(0.5 - qt_TexCoord0.x)) *
smoothstep(0.0, ubuf.relativeSizeY, 0.5 - abs(0.5 - qt_TexCoord0.y));
highp float spreadMultiplier = linearstep(spread, 1.0 - spread, alpha);
gl_FragColor = color * qt_Opacity * spreadMultiplier * spreadMultiplier;
float spreadMultiplier = linearstep(ubuf.spread, 1.0 - ubuf.spread, alpha);
fragColor = ubuf.color * ubuf.qt_Opacity * spreadMultiplier * spreadMultiplier;
}

View File

@ -1,28 +0,0 @@
#version 440
layout(location = 0) in vec2 qt_TexCoord0;
layout(location = 0) out vec4 fragColor;
layout(std140, binding = 0) uniform buf {
mat4 qt_Matrix;
float qt_Opacity;
float relativeSizeX;
float relativeSizeY;
float spread;
vec4 color;
} ubuf;
float linearstep(float e0, float e1, float x)
{
return clamp((x - e0) / (e1 - e0), 0.0, 1.0);
}
void main()
{
float alpha =
smoothstep(0.0, ubuf.relativeSizeX, 0.5 - abs(0.5 - qt_TexCoord0.x)) *
smoothstep(0.0, ubuf.relativeSizeY, 0.5 - abs(0.5 - qt_TexCoord0.y));
float spreadMultiplier = linearstep(ubuf.spread, 1.0 - ubuf.spread, alpha);
fragColor = ubuf.color * ubuf.qt_Opacity * spreadMultiplier * spreadMultiplier;
}

View File

@ -1,4 +0,0 @@
:: Copyright (C) 2019 The Qt Company Ltd.
:: SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
qsb --glsl "150,120,100 es" --hlsl 50 --msl 12 -o +qsb/RectangularGlow.frag RectangularGlow_rhi.frag