QOpenGLWidget: Fix grabbing multisample framebuffers
Task-number: QTBUG-48450 Change-Id: I0a680e0d682c7c08c3aea40d922bbf2ad66c1de0 Reviewed-by: Joni Poikelin <joni.poikelin@theqtcompany.com> Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
This commit is contained in:
parent
e82e075e51
commit
bc6d32686c
@ -877,11 +877,22 @@ QImage QOpenGLWidgetPrivate::grabFramebuffer()
|
||||
if (!inPaintGL)
|
||||
render();
|
||||
|
||||
resolveSamples();
|
||||
q->makeCurrent();
|
||||
if (resolvedFbo) {
|
||||
resolveSamples();
|
||||
resolvedFbo->bind();
|
||||
} else {
|
||||
q->makeCurrent();
|
||||
}
|
||||
|
||||
QImage res = qt_gl_read_framebuffer(q->size() * q->devicePixelRatioF(), false, false);
|
||||
res.setDevicePixelRatio(q->devicePixelRatioF());
|
||||
|
||||
// While we give no guarantees of what is going to be left bound, prefer the
|
||||
// multisample fbo instead of the resolved one. Clients may continue to
|
||||
// render straight after calling this function.
|
||||
if (resolvedFbo)
|
||||
q->makeCurrent();
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user