summaryrefslogtreecommitdiff
path: root/src/effects/private/qgfxshaderbuilder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/effects/private/qgfxshaderbuilder.cpp')
-rw-r--r--src/effects/private/qgfxshaderbuilder.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/effects/private/qgfxshaderbuilder.cpp b/src/effects/private/qgfxshaderbuilder.cpp
index 81a3c12..fe1d7fe 100644
--- a/src/effects/private/qgfxshaderbuilder.cpp
+++ b/src/effects/private/qgfxshaderbuilder.cpp
@@ -312,10 +312,11 @@ QVariantMap QGfxShaderBuilder::gaussianBlur(const QJSValue &parameters)
int requestedSamples = requestedRadius * 2 + 1;
int samples = 1 + requestedSamples / 2;
int radius = requestedSamples / 4;
+ bool fallback = parameters.property(QStringLiteral("fallback")).toBool();
QVariantMap result;
- if (samples > m_maxBlurSamples || masked) {
+ if (samples > m_maxBlurSamples || masked || fallback) {
QByteArray fragShader;
if (masked)
fragShader += "uniform mediump sampler2D mask;\n";
@@ -354,9 +355,9 @@ QVariantMap QGfxShaderBuilder::gaussianBlur(const QJSValue &parameters)
fragShader += ".a";
fragShader += ";\n";
}
- fragShader += " const mediump float wSum = ";
+ fragShader += " const mediump float wSum = float(";
fragShader += QByteArray::number(wSum);
- fragShader += ";\n"
+ fragShader += ");\n"
" gl_FragColor = ";
if (alphaOnly)
fragShader += "mix(vec4(0), color, clamp((result / wSum) / thickness, 0.0, 1.0)) * qt_Opacity;\n";