diff options
Diffstat (limited to 'quickmultieffect/shaders')
47 files changed, 323 insertions, 61 deletions
diff --git a/quickmultieffect/shaders/bluritems.frag b/quickmultieffect/shaders/bluritems.frag new file mode 100644 index 0000000..4198e2f --- /dev/null +++ b/quickmultieffect/shaders/bluritems.frag @@ -0,0 +1,21 @@ +#version 440 + +layout(location = 0) in vec2 texCoord0; +layout(location = 1) in vec2 texCoord1; +layout(location = 2) in vec2 texCoord2; +layout(location = 3) in vec2 texCoord3; +layout(location = 0) out vec4 fragColor; + +layout(std140, binding = 0) uniform buf { + mat4 qt_Matrix; + float qt_Opacity; + vec2 offset; +}; + +layout(binding = 1) uniform sampler2D source; + +void main() { + vec4 sourceColor = (texture(source, texCoord0) + texture(source, texCoord1) + + texture(source, texCoord2) + texture(source, texCoord3)) / 4.0; + fragColor = sourceColor * qt_Opacity; +} diff --git a/quickmultieffect/shaders/bluritems.frag.qsb b/quickmultieffect/shaders/bluritems.frag.qsb Binary files differnew file mode 100644 index 0000000..e2427ca --- /dev/null +++ b/quickmultieffect/shaders/bluritems.frag.qsb diff --git a/quickmultieffect/shaders/bluritems.vert b/quickmultieffect/shaders/bluritems.vert new file mode 100644 index 0000000..83ca332 --- /dev/null +++ b/quickmultieffect/shaders/bluritems.vert @@ -0,0 +1,23 @@ +#version 440 + +layout(location = 0) in vec4 qt_Vertex; +layout(location = 1) in vec2 qt_MultiTexCoord0; +layout(location = 0) out vec2 texCoord0; +layout(location = 1) out vec2 texCoord1; +layout(location = 2) out vec2 texCoord2; +layout(location = 3) out vec2 texCoord3; + +layout(std140, binding = 0) uniform buf { + mat4 qt_Matrix; + float qt_Opacity; + vec2 offset; +}; + +void main() { + float dither = 0.33; + texCoord0 = vec2(qt_MultiTexCoord0.x + offset.x, qt_MultiTexCoord0.y + offset.y * dither); + texCoord1 = vec2(qt_MultiTexCoord0.x + offset.x * dither, qt_MultiTexCoord0.y - offset.y); + texCoord2 = vec2(qt_MultiTexCoord0.x - offset.x * dither, qt_MultiTexCoord0.y + offset.y); + texCoord3 = vec2(qt_MultiTexCoord0.x - offset.x, qt_MultiTexCoord0.y - offset.y * dither); + gl_Position = qt_Matrix * qt_Vertex; +} diff --git a/quickmultieffect/shaders/bluritems.vert.qsb b/quickmultieffect/shaders/bluritems.vert.qsb Binary files differnew file mode 100644 index 0000000..a1c1c98 --- /dev/null +++ b/quickmultieffect/shaders/bluritems.vert.qsb diff --git a/quickmultieffect/shaders/compatibility/bluritems.frag b/quickmultieffect/shaders/compatibility/bluritems.frag deleted file mode 100644 index 54ce994..0000000 --- a/quickmultieffect/shaders/compatibility/bluritems.frag +++ /dev/null @@ -1,12 +0,0 @@ -uniform lowp sampler2D source; -uniform lowp float qt_Opacity; -varying highp vec2 texCoord0; -varying highp vec2 texCoord1; -varying highp vec2 texCoord2; -varying highp vec2 texCoord3; - -void main() { - highp vec4 sourceColor = (texture2D(source, texCoord0) + texture2D(source, texCoord1) + - texture2D(source, texCoord2) + texture2D(source, texCoord3)) / 4.0; - gl_FragColor = sourceColor * qt_Opacity; -} diff --git a/quickmultieffect/shaders/compatibility/bluritems.vert b/quickmultieffect/shaders/compatibility/bluritems.vert deleted file mode 100644 index ab31be1..0000000 --- a/quickmultieffect/shaders/compatibility/bluritems.vert +++ /dev/null @@ -1,17 +0,0 @@ -attribute highp vec4 qt_Vertex; -attribute highp vec2 qt_MultiTexCoord0; -uniform highp mat4 qt_Matrix; -uniform highp vec2 step; -varying highp vec2 texCoord0; -varying highp vec2 texCoord1; -varying highp vec2 texCoord2; -varying highp vec2 texCoord3; - -void main() { - lowp float dither = 0.33; - texCoord0 = vec2(qt_MultiTexCoord0.x + step.x, qt_MultiTexCoord0.y + step.y * dither); - texCoord1 = vec2(qt_MultiTexCoord0.x + step.x * dither, qt_MultiTexCoord0.y - step.y); - texCoord2 = vec2(qt_MultiTexCoord0.x - step.x * dither, qt_MultiTexCoord0.y + step.y); - texCoord3 = vec2(qt_MultiTexCoord0.x - step.x, qt_MultiTexCoord0.y - step.y * dither); - gl_Position = qt_Matrix * qt_Vertex; -} diff --git a/quickmultieffect/shaders/compile.bat b/quickmultieffect/shaders/compile.bat new file mode 100644 index 0000000..132db2f --- /dev/null +++ b/quickmultieffect/shaders/compile.bat @@ -0,0 +1,96 @@ +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +:: +:: Copyright (C) 2021 The Qt Company Ltd. +:: Contact: https://www.qt.io/licensing/ +:: +:: This file is part of the Qt Quick MultiEffect module of the Qt Toolkit. +:: +:: $QT_BEGIN_LICENSE:LGPL$ +:: 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. +:: +:: GNU Lesser General Public License Usage +:: Alternatively, this file may be used under the terms of the GNU Lesser +:: General Public License version 3 as published by the Free Software +:: Foundation and appearing in the file LICENSE.LGPL3 included in the +:: packaging of this file. Please review the following information to +:: ensure the GNU Lesser General Public License version 3 requirements +:: will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +:: +:: GNU General Public License Usage +:: Alternatively, this file may be used under the terms of the GNU +:: General Public License version 2.0 or (at your option) the GNU General +:: Public license version 3 or any later version approved by the KDE Free +:: Qt Foundation. The licenses are as published by the Free Software +:: Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +:: included in the packaging of this file. Please review the following +:: information to ensure the GNU General Public License requirements will +:: be met: https://www.gnu.org/licenses/gpl-2.0.html and +:: https://www.gnu.org/licenses/gpl-3.0.html. +:: +:: $QT_END_LICENSE$ +:: +::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: + +:: Multieffect fragment shaders :: +:: c = Common color effects +:: m = Mask +:: b = Blur +:: s = Shadow +:: [n] = Amount of blur items used + +qsb --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_c0.frag.qsb multieffect.frag +qsb -DMASK --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cm0.frag.qsb multieffect.frag + +:: Special shaders for non-blurred shadows +qsb -DBL0 -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cs0.frag.qsb multieffect.frag +qsb -DBL0 -DMASK -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cms0.frag.qsb multieffect.frag + +:: Shaders for different blur levels +qsb -DBL1 -DBLUR --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cb1.frag.qsb multieffect.frag +qsb -DBL1 -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cs1.frag.qsb multieffect.frag +qsb -DBL1 -DMASK -DBLUR --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cmb1.frag.qsb multieffect.frag +qsb -DBL1 -DMASK -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cms1.frag.qsb multieffect.frag +qsb -DBL1 -DBLUR -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cbs1.frag.qsb multieffect.frag +qsb -DBL1 -DMASK -DBLUR -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cmbs1.frag.qsb multieffect.frag + +qsb -DBL1 -DBL2 -DBLUR --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cb2.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cs2.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DMASK -DBLUR --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cmb2.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DMASK -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cms2.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DBLUR -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cbs2.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DMASK -DBLUR -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cmbs2.frag.qsb multieffect.frag + +qsb -DBL1 -DBL2 -DBL3 -DBLUR --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cb3.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DBL3 -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cs3.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DBL3 -DMASK -DBLUR --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cmb3.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DBL3 -DMASK -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cms3.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DBL3 -DBLUR -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cbs3.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DBL3 -DMASK -DBLUR -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cmbs3.frag.qsb multieffect.frag + +qsb -DBL1 -DBL2 -DBL3 -DBL4 -DBLUR --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cb4.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DBL3 -DBL4 -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cs4.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DBL3 -DBL4 -DMASK -DBLUR --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cmb4.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DBL3 -DBL4 -DMASK -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cms4.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DBL3 -DBL4 -DBLUR -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cbs4.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DBL3 -DBL4 -DMASK -DBLUR -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cmbs4.frag.qsb multieffect.frag + +qsb -DBL1 -DBL2 -DBL3 -DBL4 -DBL5 -DBLUR --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cb5.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DBL3 -DBL4 -DBL5 -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cs5.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DBL3 -DBL4 -DBL5 -DMASK -DBLUR --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cmb5.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DBL3 -DBL4 -DBL5 -DMASK -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cms5.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DBL3 -DBL4 -DBL5 -DBLUR -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cbs5.frag.qsb multieffect.frag +qsb -DBL1 -DBL2 -DBL3 -DBL4 -DBL5 -DMASK -DBLUR -DSHADOW --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cmbs5.frag.qsb multieffect.frag + +:: Multieffect vertex shaders :: +qsb -b --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_c.vert.qsb multieffect.vert +qsb -DSHADOW -b --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o multieffect_cs.vert.qsb multieffect.vert + +:: Bluritems shaders :: +qsb --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o bluritems.frag.qsb bluritems.frag +qsb -b --glsl "150,120,100 es" --hlsl 50 --msl 12 -O -c -o bluritems.vert.qsb bluritems.vert diff --git a/quickmultieffect/shaders/core/bluritems.frag b/quickmultieffect/shaders/core/bluritems.frag deleted file mode 100644 index b2efa7b..0000000 --- a/quickmultieffect/shaders/core/bluritems.frag +++ /dev/null @@ -1,14 +0,0 @@ -#version 330 core -uniform lowp sampler2D source; -uniform lowp float qt_Opacity; -in highp vec2 texCoord0; -in highp vec2 texCoord1; -in highp vec2 texCoord2; -in highp vec2 texCoord3; -out highp vec4 fragColor; - -void main() { - highp vec4 sourceColor = (texture(source, texCoord0) + texture(source, texCoord1) + - texture(source, texCoord2) + texture(source, texCoord3)) / 4.0; - fragColor = sourceColor * qt_Opacity; -} diff --git a/quickmultieffect/shaders/core/bluritems.vert b/quickmultieffect/shaders/core/bluritems.vert deleted file mode 100644 index 6c95a76..0000000 --- a/quickmultieffect/shaders/core/bluritems.vert +++ /dev/null @@ -1,18 +0,0 @@ -#version 330 core -in highp vec4 qt_Vertex; -in highp vec2 qt_MultiTexCoord0; -uniform highp mat4 qt_Matrix; -uniform highp vec2 step; -out highp vec2 texCoord0; -out highp vec2 texCoord1; -out highp vec2 texCoord2; -out highp vec2 texCoord3; - -void main() { - lowp float dither = 0.33; - texCoord0 = vec2(qt_MultiTexCoord0.x + step.x, qt_MultiTexCoord0.y + step.y * dither); - texCoord1 = vec2(qt_MultiTexCoord0.x + step.x * dither, qt_MultiTexCoord0.y - step.y); - texCoord2 = vec2(qt_MultiTexCoord0.x - step.x * dither, qt_MultiTexCoord0.y + step.y); - texCoord3 = vec2(qt_MultiTexCoord0.x - step.x, qt_MultiTexCoord0.y - step.y * dither); - gl_Position = qt_Matrix * qt_Vertex; -} diff --git a/quickmultieffect/shaders/multieffect.frag b/quickmultieffect/shaders/multieffect.frag new file mode 100644 index 0000000..92ebe65 --- /dev/null +++ b/quickmultieffect/shaders/multieffect.frag @@ -0,0 +1,145 @@ +#version 440 + +layout(location = 0) in vec2 texCoord; +layout(location = 1) in vec2 shadowTexCoord; +layout(location = 0) out vec4 fragColor; + +layout(std140, binding = 0) uniform buf { + mat4 qt_Matrix; + float qt_Opacity; + + float shadowScale; + vec2 shadowOffset; + vec2 centerOffset; + + float contrast; + float brightness; + float saturation; + vec4 colorizeColor; + vec4 blurWeight1; + vec2 blurWeight2; + vec4 mask; + float maskInverted; + vec4 shadowColor; + vec4 shadowBlurWeight1; + vec2 shadowBlurWeight2; +}; + +#if defined(BLUR) || defined(SHADOW) +#if defined(BL1) +layout(binding = 1) uniform sampler2D blurSrc1; +layout(binding = 2) uniform sampler2D blurSrc2; +#endif +#if defined(BL2) +layout(binding = 3) uniform sampler2D blurSrc3; +#endif +#if defined(BL3) +layout(binding = 4) uniform sampler2D blurSrc4; +#endif +#if defined(BL4) +layout(binding = 5) uniform sampler2D blurSrc5; +#endif +#if defined(BL5) +layout(binding = 6) uniform sampler2D blurSrc6; +#endif +#endif // BLUR || SHADOW + +// This is a bit complicated to make sure +// these have correct binding values +#if defined(BL5) +layout(binding = 7) uniform sampler2D src; +#if defined(MASK) +layout(binding = 8) uniform sampler2D maskSrc; +#endif +#elif defined(BL4) +layout(binding = 6) uniform sampler2D src; +#if defined(MASK) +layout(binding = 7) uniform sampler2D maskSrc; +#endif +#elif defined(BL3) +layout(binding = 5) uniform sampler2D src; +#if defined(MASK) +layout(binding = 6) uniform sampler2D maskSrc; +#endif +#elif defined(BL2) +layout(binding = 4) uniform sampler2D src; +#if defined(MASK) +layout(binding = 5) uniform sampler2D maskSrc; +#endif +#elif defined(BL1) +layout(binding = 3) uniform sampler2D src; +#if defined(MASK) +layout(binding = 4) uniform sampler2D maskSrc; +#endif +#else // BL0 or no blur or shadow +layout(binding = 1) uniform sampler2D src; +#if defined(MASK) +layout(binding = 2) uniform sampler2D maskSrc; +#endif + +#endif + +void main() { + +#if !defined(BLUR) + vec4 color = texture(src, texCoord); +#else // BLUR + vec4 color = texture(blurSrc1, texCoord) * blurWeight1[0]; + color += texture(blurSrc2, texCoord) * blurWeight1[1]; +#if defined(BL2) + color += texture(blurSrc3, texCoord) * blurWeight1[2]; +#endif +#if defined(BL3) + color += texture(blurSrc4, texCoord) * blurWeight1[3]; +#endif +#if defined(BL4) + color += texture(blurSrc5, texCoord) * blurWeight2[0]; +#endif +#if defined(BL5) + color += texture(blurSrc6, texCoord) * blurWeight2[1]; +#endif +#endif // BLUR + + color.rgb = (color.rgb - 0.5 * color.a) * (1.0 + contrast) + 0.5 * color.a; + color.rgb += brightness * color.a; + float gray = dot(color.rgb, vec3(0.299, 0.587, 0.114)); + color.rgb = gray * colorizeColor.rgb * colorizeColor.a + color.rgb * (1.0 - colorizeColor.a); + color.rgb = mix(vec3(gray), color.rgb, 1.0 + saturation); + +#if defined(SHADOW) + float shadow = 0.0; +#if defined(BL0) + shadow = texture(src, shadowTexCoord).a; +#endif +#if defined(BL1) + shadow = texture(blurSrc1, shadowTexCoord).a * shadowBlurWeight1[0]; + shadow += texture(blurSrc2, shadowTexCoord).a * shadowBlurWeight1[1]; +#endif +#if defined(BL2) + shadow += texture(blurSrc3, shadowTexCoord).a * shadowBlurWeight1[2]; +#endif +#if defined(BL3) + shadow += texture(blurSrc4, shadowTexCoord).a * shadowBlurWeight1[3]; +#endif +#if defined(BL4) + shadow += texture(blurSrc5, shadowTexCoord).a * shadowBlurWeight2[0]; +#endif +#if defined(BL5) + shadow += texture(blurSrc6, shadowTexCoord).a * shadowBlurWeight2[1]; +#endif + shadow *= shadowColor.a; + float aa = (1.0 - color.a) * (1.0 - shadow); + color.rgb = mix(shadowColor.rgb * shadow, color.rgb, color.a + aa); + color.a = 1.0 - aa; +#endif // SHADOW + +#if defined(MASK) + float alphaMask = texture(maskSrc, texCoord).a; + float m1 = smoothstep(mask[0] * mask[1] - (mask[1] - 0.999), mask[0] * mask[1], alphaMask); + float m2 = smoothstep((1.0 - mask[2]) * mask[3] - (mask[3] - 0.999), (1.0 - mask[2]) * mask[3], (1.0 - alphaMask)); + float mm = m1 * m2; + color *= (1.0 - maskInverted) * mm + maskInverted * (1.0 - mm); +#endif // MASK + + fragColor = color * qt_Opacity; +} diff --git a/quickmultieffect/shaders/multieffect.vert b/quickmultieffect/shaders/multieffect.vert new file mode 100644 index 0000000..ceca103 --- /dev/null +++ b/quickmultieffect/shaders/multieffect.vert @@ -0,0 +1,38 @@ +#version 440 + +layout(location = 0) in vec4 qt_Vertex; +layout(location = 1) in vec2 qt_MultiTexCoord0; +layout(location = 0) out vec2 texCoord; +#if defined(SHADOW) +layout(location = 1) out vec2 shadowTexCoord; +#endif + +layout(std140, binding = 0) uniform buf { + mat4 qt_Matrix; + float qt_Opacity; + + float shadowScale; + vec2 shadowOffset; + vec2 centerOffset; + + float contrast; + float brightness; + float saturation; + vec4 colorizeColor; + vec4 blurWeight1; + vec2 blurWeight2; + vec4 mask; + float maskInverted; + vec4 shadowColor; + vec4 shadowBlurWeight1; + vec2 shadowBlurWeight2; +}; + +void main() { + texCoord = qt_MultiTexCoord0; +#if defined(SHADOW) + shadowTexCoord = qt_MultiTexCoord0 - shadowOffset; + shadowTexCoord = (shadowTexCoord * shadowScale) + centerOffset; +#endif + gl_Position = qt_Matrix * qt_Vertex; +} diff --git a/quickmultieffect/shaders/multieffect_c.vert.qsb b/quickmultieffect/shaders/multieffect_c.vert.qsb Binary files differnew file mode 100644 index 0000000..d6fa928 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_c.vert.qsb diff --git a/quickmultieffect/shaders/multieffect_c0.frag.qsb b/quickmultieffect/shaders/multieffect_c0.frag.qsb Binary files differnew file mode 100644 index 0000000..d006dc5 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_c0.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cb1.frag.qsb b/quickmultieffect/shaders/multieffect_cb1.frag.qsb Binary files differnew file mode 100644 index 0000000..eeb9004 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cb1.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cb2.frag.qsb b/quickmultieffect/shaders/multieffect_cb2.frag.qsb Binary files differnew file mode 100644 index 0000000..07a6c2a --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cb2.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cb3.frag.qsb b/quickmultieffect/shaders/multieffect_cb3.frag.qsb Binary files differnew file mode 100644 index 0000000..2fcec5d --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cb3.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cb4.frag.qsb b/quickmultieffect/shaders/multieffect_cb4.frag.qsb Binary files differnew file mode 100644 index 0000000..450115f --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cb4.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cb5.frag.qsb b/quickmultieffect/shaders/multieffect_cb5.frag.qsb Binary files differnew file mode 100644 index 0000000..594e44b --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cb5.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cbs1.frag.qsb b/quickmultieffect/shaders/multieffect_cbs1.frag.qsb Binary files differnew file mode 100644 index 0000000..4991afa --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cbs1.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cbs2.frag.qsb b/quickmultieffect/shaders/multieffect_cbs2.frag.qsb Binary files differnew file mode 100644 index 0000000..c2fdc59 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cbs2.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cbs3.frag.qsb b/quickmultieffect/shaders/multieffect_cbs3.frag.qsb Binary files differnew file mode 100644 index 0000000..23dbc01 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cbs3.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cbs4.frag.qsb b/quickmultieffect/shaders/multieffect_cbs4.frag.qsb Binary files differnew file mode 100644 index 0000000..a1ae4e5 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cbs4.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cbs5.frag.qsb b/quickmultieffect/shaders/multieffect_cbs5.frag.qsb Binary files differnew file mode 100644 index 0000000..92225ea --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cbs5.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cm0.frag.qsb b/quickmultieffect/shaders/multieffect_cm0.frag.qsb Binary files differnew file mode 100644 index 0000000..425be98 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cm0.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cmb1.frag.qsb b/quickmultieffect/shaders/multieffect_cmb1.frag.qsb Binary files differnew file mode 100644 index 0000000..2737027 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cmb1.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cmb2.frag.qsb b/quickmultieffect/shaders/multieffect_cmb2.frag.qsb Binary files differnew file mode 100644 index 0000000..fa68a22 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cmb2.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cmb3.frag.qsb b/quickmultieffect/shaders/multieffect_cmb3.frag.qsb Binary files differnew file mode 100644 index 0000000..fd5c580 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cmb3.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cmb4.frag.qsb b/quickmultieffect/shaders/multieffect_cmb4.frag.qsb Binary files differnew file mode 100644 index 0000000..fb89301 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cmb4.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cmb5.frag.qsb b/quickmultieffect/shaders/multieffect_cmb5.frag.qsb Binary files differnew file mode 100644 index 0000000..805467f --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cmb5.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cmbs1.frag.qsb b/quickmultieffect/shaders/multieffect_cmbs1.frag.qsb Binary files differnew file mode 100644 index 0000000..9ce187e --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cmbs1.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cmbs2.frag.qsb b/quickmultieffect/shaders/multieffect_cmbs2.frag.qsb Binary files differnew file mode 100644 index 0000000..1dc25ec --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cmbs2.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cmbs3.frag.qsb b/quickmultieffect/shaders/multieffect_cmbs3.frag.qsb Binary files differnew file mode 100644 index 0000000..275aebe --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cmbs3.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cmbs4.frag.qsb b/quickmultieffect/shaders/multieffect_cmbs4.frag.qsb Binary files differnew file mode 100644 index 0000000..250c99d --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cmbs4.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cmbs5.frag.qsb b/quickmultieffect/shaders/multieffect_cmbs5.frag.qsb Binary files differnew file mode 100644 index 0000000..ad1af69 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cmbs5.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cms0.frag.qsb b/quickmultieffect/shaders/multieffect_cms0.frag.qsb Binary files differnew file mode 100644 index 0000000..6c7c78a --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cms0.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cms1.frag.qsb b/quickmultieffect/shaders/multieffect_cms1.frag.qsb Binary files differnew file mode 100644 index 0000000..f8a0722 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cms1.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cms2.frag.qsb b/quickmultieffect/shaders/multieffect_cms2.frag.qsb Binary files differnew file mode 100644 index 0000000..15b3911 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cms2.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cms3.frag.qsb b/quickmultieffect/shaders/multieffect_cms3.frag.qsb Binary files differnew file mode 100644 index 0000000..a099579 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cms3.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cms4.frag.qsb b/quickmultieffect/shaders/multieffect_cms4.frag.qsb Binary files differnew file mode 100644 index 0000000..f8554a0 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cms4.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cms5.frag.qsb b/quickmultieffect/shaders/multieffect_cms5.frag.qsb Binary files differnew file mode 100644 index 0000000..ab31483 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cms5.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cs.vert.qsb b/quickmultieffect/shaders/multieffect_cs.vert.qsb Binary files differnew file mode 100644 index 0000000..66f8f09 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cs.vert.qsb diff --git a/quickmultieffect/shaders/multieffect_cs0.frag.qsb b/quickmultieffect/shaders/multieffect_cs0.frag.qsb Binary files differnew file mode 100644 index 0000000..fd7660a --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cs0.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cs1.frag.qsb b/quickmultieffect/shaders/multieffect_cs1.frag.qsb Binary files differnew file mode 100644 index 0000000..6aed610 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cs1.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cs2.frag.qsb b/quickmultieffect/shaders/multieffect_cs2.frag.qsb Binary files differnew file mode 100644 index 0000000..3d095e4 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cs2.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cs3.frag.qsb b/quickmultieffect/shaders/multieffect_cs3.frag.qsb Binary files differnew file mode 100644 index 0000000..b1c27d5 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cs3.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cs4.frag.qsb b/quickmultieffect/shaders/multieffect_cs4.frag.qsb Binary files differnew file mode 100644 index 0000000..6801d62 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cs4.frag.qsb diff --git a/quickmultieffect/shaders/multieffect_cs5.frag.qsb b/quickmultieffect/shaders/multieffect_cs5.frag.qsb Binary files differnew file mode 100644 index 0000000..55dc6c6 --- /dev/null +++ b/quickmultieffect/shaders/multieffect_cs5.frag.qsb |