summaryrefslogtreecommitdiffstats
path: root/src/qtmultimediaquicktools/shaders
diff options
context:
space:
mode:
authorVaL Doroshchuk <valentyn.doroshchuk@qt.io>2017-12-19 10:42:39 +0100
committerVaL Doroshchuk <valentyn.doroshchuk@qt.io>2017-12-22 09:59:45 +0000
commit4a6f459d193b621a77e002944eb28e4e96f2e2c7 (patch)
treed63109c7eafeb3b21e7ef78f1864d82743d6debb /src/qtmultimediaquicktools/shaders
parentbfebd23f150fa660177fff6aa372ae46e42038c3 (diff)
QML: Use alpha channel for ARGB32 video frames
Added a fix to use alpha channel for ARGB32 video frames. Previously alpha component was always ignored and used 1.0 instead. To see transparent videos it is still needed to enable blending by adjusting an opacity property of qml element. Task-number: QTBUG-43098 Change-Id: If3aaf8ab695021b3a49a1790d900366e9c336b33 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
Diffstat (limited to 'src/qtmultimediaquicktools/shaders')
-rw-r--r--src/qtmultimediaquicktools/shaders/rgbvideo_swizzle.frag4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/qtmultimediaquicktools/shaders/rgbvideo_swizzle.frag b/src/qtmultimediaquicktools/shaders/rgbvideo_swizzle.frag
index f01dc86a0..df66bde63 100644
--- a/src/qtmultimediaquicktools/shaders/rgbvideo_swizzle.frag
+++ b/src/qtmultimediaquicktools/shaders/rgbvideo_swizzle.frag
@@ -1,8 +1,10 @@
uniform sampler2D rgbTexture;
uniform lowp float opacity;
varying highp vec2 qt_TexCoord;
+uniform bool hasAlpha;
void main()
{
- gl_FragColor = vec4(texture2D(rgbTexture, qt_TexCoord).bgr, 1.0) * opacity;
+ vec4 v = texture2D(rgbTexture, qt_TexCoord);
+ gl_FragColor = vec4(v.bgr, hasAlpha ? v.a : 1.0) * opacity;
}