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,12 +190,12 @@ uint QskTextureRenderer::createTexture(
renderMode = Raster; renderMode = Raster;
#endif #endif
if ( window && window->rendererInterface()->graphicsApi() != OpenGL ) if ( renderMode != Raster )
{ {
if ( !qskHasOpenGLRenderer( window ) )
renderMode = Raster; renderMode = Raster;
} }
else
{
if ( renderMode == AutoDetect ) if ( renderMode == AutoDetect )
{ {
if ( qskSetup->testItemUpdateFlag( QskQuickItem::PreferRasterForTextures ) ) if ( qskSetup->testItemUpdateFlag( QskQuickItem::PreferRasterForTextures ) )
@ -194,7 +203,6 @@ uint QskTextureRenderer::createTexture(
else else
renderMode = OpenGL; renderMode = OpenGL;
} }
}
if ( renderMode == Raster ) if ( renderMode == Raster )
return qskCreateTextureRaster( window, size, helper ); return qskCreateTextureRaster( window, size, helper );