Avoid recreating the underlying context in QGLContext wrappers
QGLContexts created from a QOpenGLContext get their valid flag reset, resulting in creating a totally new underlying context. This is wrong and becomes visible when sharing is expected between contexts (since the QGLContext's underlying QOpenGLContext will not have sharing). Task-number: QTBUG-37893 Change-Id: I8cb37c11dfb400a77e510bf4c8219bedc742309e Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
This commit is contained in:
parent
e39f30a0d2
commit
581d10bdf2
@ -2934,8 +2934,9 @@ void QGLContext::setFormat(const QGLFormat &format)
|
||||
void QGLContext::setDevice(QPaintDevice *pDev)
|
||||
{
|
||||
Q_D(QGLContext);
|
||||
if (isValid())
|
||||
reset();
|
||||
// Do not touch the valid flag here. The context is either a new one and
|
||||
// valid is not yet set or it is adapted from a valid QOpenGLContext in which
|
||||
// case it must remain valid.
|
||||
d->paintDevice = pDev;
|
||||
if (d->paintDevice && (d->paintDevice->devType() != QInternal::Widget
|
||||
&& d->paintDevice->devType() != QInternal::Pixmap
|
||||
|
Loading…
x
Reference in New Issue
Block a user