respecting the graphicsApi

This commit is contained in:
Uwe Rathmann 2022-04-11 10:11:57 +02:00
parent a73ee6baba
commit dc14dda5ea
1 changed files with 18 additions and 10 deletions

View File

@ -25,6 +25,15 @@
#include <qsgtexture_platform.h> #include <qsgtexture_platform.h>
#endif #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, static uint qskCreateTextureOpenGL( QQuickWindow* window,
const QSize& size, QskTextureRenderer::PaintHelper* helper ) const QSize& size, QskTextureRenderer::PaintHelper* helper )
{ {
@ -181,19 +190,18 @@ uint QskTextureRenderer::createTexture(
renderMode = Raster; renderMode = Raster;
#endif #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;
if ( qskSetup->testItemUpdateFlag( QskQuickItem::PreferRasterForTextures ) ) else
renderMode = Raster; renderMode = OpenGL;
else
renderMode = OpenGL;
}
} }
if ( renderMode == Raster ) if ( renderMode == Raster )