From dc14dda5ea4992ab166ca336c2f3ec3798809040 Mon Sep 17 00:00:00 2001 From: Uwe Rathmann Date: Mon, 11 Apr 2022 10:11:57 +0200 Subject: [PATCH] respecting the graphicsApi --- src/nodes/QskTextureRenderer.cpp | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/nodes/QskTextureRenderer.cpp b/src/nodes/QskTextureRenderer.cpp index f180c119..137226ab 100644 --- a/src/nodes/QskTextureRenderer.cpp +++ b/src/nodes/QskTextureRenderer.cpp @@ -25,6 +25,15 @@ #include #endif +static inline bool qskHasOpenGLRenderer( const QQuickWindow* window ) +{ + if ( window == nullptr ) + return false; + + const auto renderer = window->rendererInterface(); + return renderer->graphicsApi() == QSGRendererInterface::OpenGL; +} + static uint qskCreateTextureOpenGL( QQuickWindow* window, const QSize& size, QskTextureRenderer::PaintHelper* helper ) { @@ -181,19 +190,18 @@ uint QskTextureRenderer::createTexture( renderMode = Raster; #endif - if ( window && window->rendererInterface()->graphicsApi() != OpenGL ) + if ( renderMode != Raster ) { - renderMode = Raster; + if ( !qskHasOpenGLRenderer( window ) ) + renderMode = Raster; } - else + + if ( renderMode == AutoDetect ) { - if ( renderMode == AutoDetect ) - { - if ( qskSetup->testItemUpdateFlag( QskQuickItem::PreferRasterForTextures ) ) - renderMode = Raster; - else - renderMode = OpenGL; - } + if ( qskSetup->testItemUpdateFlag( QskQuickItem::PreferRasterForTextures ) ) + renderMode = Raster; + else + renderMode = OpenGL; } if ( renderMode == Raster )