windows: gl: Print GetLastError() when makeCurrent fails

This matches the behavior of other implementations, such as
QEGLPlatformContext: doing a qWarning with the relevant error
from eglGetError() or equivalent is helpful when something
goes wrong and should be common among QOpenGLPlatformContext
implementations.

Task-number: QTBUG-85714
Change-Id: Ifa5d22b83808c92ae92efcbcddc8d8c3d3ba34b1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
(cherry picked from commit 03650696a1fb727a337865d43f068ddc7723a893)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Laszlo Agocs 2021-06-08 16:56:34 +02:00 committed by Qt Cherry-pick Bot
parent 03cb3405ae
commit e99a9ff495

View File

@ -1301,7 +1301,10 @@ bool QWindowsGLContext::makeCurrent(QPlatformSurface *surface)
&& QOpenGLStaticContext::opengl32.wglGetCurrentDC() == contextData->hdc) {
return true;
}
return QOpenGLStaticContext::opengl32.wglMakeCurrent(contextData->hdc, contextData->renderingContext);
const bool success = QOpenGLStaticContext::opengl32.wglMakeCurrent(contextData->hdc, contextData->renderingContext);
if (!success)
qErrnoWarning("%s: wglMakeCurrent() failed for existing context data", __FUNCTION__);
return success;
}
// Create a new entry.
const QOpenGLContextData newContext(m_renderingContext, hwnd, GetDC(hwnd));
@ -1329,6 +1332,8 @@ bool QWindowsGLContext::makeCurrent(QPlatformSurface *surface)
qCDebug(lcQpaGl) << "makeCurrent(): context loss detected" << this;
// Drop the surface. Will recreate on the next makeCurrent.
window->invalidateSurface();
} else {
qErrnoWarning("%s: wglMakeCurrent() failed", __FUNCTION__);
}
}