Windows QPA/GL: Avoid crash in GL driver.
QWindowsStaticOpenGLContext::doCreate(): Invoke
QWindowsOpenGLTester::supportedRenderers() only when needed; specifically,
do not unnecessarily call it when GLES/SW renderer is specified.
Amends change b4c8e15174.
Task-number: QTBUG-49541
Task-number: QTBUG-52693
Change-Id: I58d1c584d194f8e7fee35ee16b77575f86d3c22e
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
bb10
parent
ccfe33dc67
commit
9442b3a1c3
|
|
@ -345,13 +345,11 @@ QWindowsWindow *QWindowsIntegration::createPlatformWindowHelper(QWindow *window,
|
|||
QWindowsStaticOpenGLContext *QWindowsStaticOpenGLContext::doCreate()
|
||||
{
|
||||
#if defined(QT_OPENGL_DYNAMIC)
|
||||
const QWindowsOpenGLTester::Renderers supportedRenderers = QWindowsOpenGLTester::supportedRenderers();
|
||||
|
||||
QWindowsOpenGLTester::Renderer requestedRenderer = QWindowsOpenGLTester::requestedRenderer();
|
||||
switch (requestedRenderer) {
|
||||
case QWindowsOpenGLTester::DesktopGl:
|
||||
if (QWindowsStaticOpenGLContext *glCtx = QOpenGLStaticContext::create()) {
|
||||
if ((supportedRenderers & QWindowsOpenGLTester::DisableRotationFlag)
|
||||
if ((QWindowsOpenGLTester::supportedRenderers() & QWindowsOpenGLTester::DisableRotationFlag)
|
||||
&& !QWindowsScreen::setOrientationPreference(Qt::LandscapeOrientation)) {
|
||||
qCWarning(lcQpaGl, "Unable to disable rotation.");
|
||||
}
|
||||
|
|
@ -377,6 +375,7 @@ QWindowsStaticOpenGLContext *QWindowsStaticOpenGLContext::doCreate()
|
|||
break;
|
||||
}
|
||||
|
||||
const QWindowsOpenGLTester::Renderers supportedRenderers = QWindowsOpenGLTester::supportedRenderers();
|
||||
if (supportedRenderers & QWindowsOpenGLTester::DesktopGl) {
|
||||
if (QWindowsStaticOpenGLContext *glCtx = QOpenGLStaticContext::create()) {
|
||||
if ((supportedRenderers & QWindowsOpenGLTester::DisableRotationFlag)
|
||||
|
|
|
|||
Loading…
Reference in New Issue