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