diff options
author | Laszlo Agocs <laszlo.agocs@digia.com> | 2014-08-22 09:38:35 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@digia.com> | 2014-08-24 23:01:58 +0200 |
commit | f16de5c1fd8cf0e9d6a37aaa771144ccc4220fba (patch) | |
tree | ba78fbf15bfb93ce3122409451aca858e3d41a23 | |
parent | a0cc43fbc843a51849757ec452b5595256ae22c9 (diff) |
Fix composition for translucent AlwaysStackOnTop widgets
Writing out the alpha is re-enabled too early. When blitting the
AlwaysStackOnTop widgets as the last step of the composition, they
need the exact same settings as the backingstore content, meaning
blending but without writing out alpha.
Move the glColorMask call to fix this. This will avoid issues with
semi-transparent AlwaysStackOnTop widgets when the top-level has
alpha enabled too.
Task-number: QTBUG-40910
Change-Id: Id6d0d684cfa78bf79b65a097efd92de575e73b2c
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
-rw-r--r-- | src/gui/painting/qplatformbackingstore.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gui/painting/qplatformbackingstore.cpp b/src/gui/painting/qplatformbackingstore.cpp index 66a56ac32f..25f25f9fa8 100644 --- a/src/gui/painting/qplatformbackingstore.cpp +++ b/src/gui/painting/qplatformbackingstore.cpp @@ -276,7 +276,6 @@ void QPlatformBackingStore::composeAndFlush(QWindow *window, const QRegion ®i if (d_ptr->needsSwizzle) d_ptr->blitter->setSwizzleRB(false); } - funcs->glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); // Textures for renderToTexture widgets that have WA_AlwaysStackOnTop set. for (int i = 0; i < textures->count(); ++i) { @@ -287,6 +286,7 @@ void QPlatformBackingStore::composeAndFlush(QWindow *window, const QRegion ®i } } + funcs->glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); funcs->glDisable(GL_BLEND); d_ptr->blitter->release(); |