diff options
author | VaL Doroshchuk <valentyn.doroshchuk@qt.io> | 2017-12-19 10:42:39 +0100 |
---|---|---|
committer | VaL Doroshchuk <valentyn.doroshchuk@qt.io> | 2017-12-22 09:59:45 +0000 |
commit | 4a6f459d193b621a77e002944eb28e4e96f2e2c7 (patch) | |
tree | d63109c7eafeb3b21e7ef78f1864d82743d6debb /src/qtmultimediaquicktools/shaders | |
parent | bfebd23f150fa660177fff6aa372ae46e42038c3 (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.frag | 4 |
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; } |