aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick')
-rw-r--r--src/quick/items/qquickwindow.cpp2
-rw-r--r--src/quick/scenegraph/qsgrhisupport.cpp26
-rw-r--r--src/quick/scenegraph/qsgrhisupport_p.h14
3 files changed, 19 insertions, 23 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp
index a3d8b5eacb..697e5b3410 100644
--- a/src/quick/items/qquickwindow.cpp
+++ b/src/quick/items/qquickwindow.cpp
@@ -3665,7 +3665,7 @@ void QQuickWindow::setGraphicsApi(QSGRendererInterface::GraphicsApi api)
// Standard case: tell the QRhi-based default adaptation what graphics api
// (QRhi backend) to use.
if (QSGRendererInterface::isApiRhiBased(api) || api == QSGRendererInterface::Unknown)
- QSGRhiSupport::configure(api);
+ QSGRhiSupport::instance_internal()->configure(api);
}
/*!
diff --git a/src/quick/scenegraph/qsgrhisupport.cpp b/src/quick/scenegraph/qsgrhisupport.cpp
index 88bbf77e40..1ccca23596 100644
--- a/src/quick/scenegraph/qsgrhisupport.cpp
+++ b/src/quick/scenegraph/qsgrhisupport.cpp
@@ -252,12 +252,6 @@ void QSGRhiSupport::adjustToPlatformQuirks()
#endif
}
-QSGRhiSupport *QSGRhiSupport::staticInst()
-{
- static QSGRhiSupport inst;
- return &inst;
-}
-
void QSGRhiSupport::checkEnvQSgInfo()
{
// For compatibility with 5.3 and earlier's QSG_INFO environment variables
@@ -269,21 +263,25 @@ void QSGRhiSupport::configure(QSGRendererInterface::GraphicsApi api)
{
if (api == QSGRendererInterface::Unknown) {
// behave as if nothing was explicitly requested
- QSGRhiSupport *inst = staticInst();
- inst->m_requested.valid = false;
- inst->applySettings();
+ m_requested.valid = false;
+ applySettings();
} else {
Q_ASSERT(QSGRendererInterface::isApiRhiBased(api));
- QSGRhiSupport *inst = staticInst();
- inst->m_requested.valid = true;
- inst->m_requested.api = api;
- inst->applySettings();
+ m_requested.valid = true;
+ m_requested.api = api;
+ applySettings();
}
}
+QSGRhiSupport *QSGRhiSupport::instance_internal()
+{
+ static QSGRhiSupport inst;
+ return &inst;
+}
+
QSGRhiSupport *QSGRhiSupport::instance()
{
- QSGRhiSupport *inst = staticInst();
+ QSGRhiSupport *inst = instance_internal();
if (!inst->m_settingsApplied)
inst->applySettings();
return inst;
diff --git a/src/quick/scenegraph/qsgrhisupport_p.h b/src/quick/scenegraph/qsgrhisupport_p.h
index 73fa2caad1..db710814bc 100644
--- a/src/quick/scenegraph/qsgrhisupport_p.h
+++ b/src/quick/scenegraph/qsgrhisupport_p.h
@@ -102,10 +102,15 @@ class QOffscreenSurface;
class Q_QUICK_PRIVATE_EXPORT QSGRhiSupport
{
public:
- static void configure(QSGRendererInterface::GraphicsApi api);
+ static QSGRhiSupport *instance_internal();
static QSGRhiSupport *instance();
static QVulkanInstance *defaultVulkanInstance();
static void cleanupDefaultVulkanInstance();
+ static int chooseSampleCountForWindowWithRhi(QWindow *window, QRhi *rhi);
+ static QImage grabAndBlockInCurrentFrame(QRhi *rhi, QRhiCommandBuffer *cb, QRhiTexture *src = nullptr);
+ static void checkEnvQSgInfo();
+
+ void configure(QSGRendererInterface::GraphicsApi api);
bool isRhiEnabled() const { return m_enableRhi; }
QRhi::Implementation rhiBackend() const { return m_rhiBackend; }
@@ -123,24 +128,17 @@ public:
const QSGDefaultRenderContext *rc,
const QQuickWindow *w);
- int chooseSampleCountForWindowWithRhi(QWindow *window, QRhi *rhi);
-
QOffscreenSurface *maybeCreateOffscreenSurface(QWindow *window);
QRhi *createRhi(QQuickWindow *window, QOffscreenSurface *offscreenSurface);
void destroyRhi(QRhi *rhi);
void prepareWindowForRhi(QQuickWindow *window);
- QImage grabAndBlockInCurrentFrame(QRhi *rhi, QRhiCommandBuffer *cb, QRhiTexture *src = nullptr);
-
QImage grabOffscreen(QQuickWindow *window);
- static void checkEnvQSgInfo();
-
private:
QSGRhiSupport();
void applySettings();
void adjustToPlatformQuirks();
- static QSGRhiSupport *staticInst();
struct {
bool valid = false;
QSGRendererInterface::GraphicsApi api;