QQuickRenderControl: Grab framebuffer with alpha if the window uses it

Change-Id: Ie11e86be997d749e6f82f0fb81a82bb0b50ab1f1
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
This commit is contained in:
Andy Shaw 2018-06-21 13:23:55 +02:00
parent d3837d4df7
commit 13cbbef38c
1 changed files with 2 additions and 1 deletions

View File

@ -386,7 +386,8 @@ QImage QQuickRenderControl::grab()
cd->syncSceneGraph();
d->rc->endSync();
render();
grabContent = qt_gl_read_framebuffer(d->window->size() * d->window->effectiveDevicePixelRatio(), false, false);
const bool alpha = d->window->format().alphaBufferSize() > 0 && d->window->color().alpha() < 255;
grabContent = qt_gl_read_framebuffer(d->window->size() * d->window->effectiveDevicePixelRatio(), alpha, alpha);
if (QQuickRenderControl::renderWindowFor(d->window)) {
grabContent.setDevicePixelRatio(d->window->effectiveDevicePixelRatio());
}