6#include <QtQuick3DRuntimeRender/private/qssgrendernode_p.h>
7#include <QtQuick3DRuntimeRender/private/qssgrenderbuffermanager_p.h>
8#include <QtQuick3DRuntimeRender/private/qssgrendershadercache_p.h>
9#include <QtQuick3DRuntimeRender/private/qssgrendercamera_p.h>
10#include <QtQuick3DRuntimeRender/private/qssgrendershaderlibrarymanager_p.h>
11#include <QtQuick3DRuntimeRender/private/qssgrendershadercodegenerator_p.h>
12#include <QtQuick3DRuntimeRender/private/qssgrenderdefaultmaterialshadergenerator_p.h>
13#include <QtQuick3DRuntimeRender/private/qssgrhicustommaterialsystem_p.h>
14#include <QtQuick3DRuntimeRender/private/qssgperframeallocator_p.h>
15#include <QtQuick3DRuntimeRender/private/qssgrenderer_p.h>
16#include <QtQuick3DRuntimeRender/private/qssgrendererutil_p.h>
17#include <QtQuick3DRuntimeRender/private/qssgdebugdrawsystem_p.h>
19#include <QtQuick/private/qquickwindow_p.h>
46void QSSGRenderContextInterface::init()
52 m_bufferManager->setRenderContextInterface(
this);
54 if (m_customMaterialSystem)
55 m_customMaterialSystem->setRenderContextInterface(
this);
57 m_shaderLibraryManager->loadPregeneratedShaderInfo();
60void QSSGRenderContextInterface::releaseCachedResources()
63 m_renderer->releaseCachedResources();
65 m_shaderCache->releaseCachedResources();
66 if (m_customMaterialSystem)
67 m_customMaterialSystem->releaseCachedResources();
69 m_bufferManager->releaseCachedResources();
74const std::unique_ptr<QSSGPerFrameAllocator> &QSSGRenderContextInterface::perFrameAllocator()
const
76 return m_perFrameAllocator;
83 std::unique_ptr<QSSGRenderer>
renderer,
84 std::shared_ptr<QSSGShaderLibraryManager> shaderLibraryManager,
85 std::unique_ptr<QSSGShaderCache> shaderCache,
86 std::unique_ptr<QSSGCustomMaterialSystem> customMaterialSystem,
87 std::unique_ptr<QSSGProgramGenerator> shaderProgramGenerator,
88 std::unique_ptr<QSSGRhiContext>
ctx,
89 std::unique_ptr<QSSGDebugDrawSystem> debugDrawSystem)
90 : m_rhiContext(
std::move(
ctx))
91 , m_shaderCache(
std::move(shaderCache))
92 , m_bufferManager(
std::move(bufferManager))
94 , m_shaderLibraryManager(
std::move(shaderLibraryManager))
95 , m_customMaterialSystem(
std::move(customMaterialSystem))
96 , m_shaderProgramGenerator(
std::move(shaderProgramGenerator))
97 , m_debugDrawSystem(
std::move(debugDrawSystem))
107 static auto shaderLibraryManager = std::make_shared<QSSGShaderLibraryManager>();
108 return shaderLibraryManager;
133 m_renderer->releaseCachedResources();
149 return m_bufferManager;
165 return m_shaderCache;
173 return m_shaderLibraryManager;
181 return m_customMaterialSystem;
189 return m_shaderProgramGenerator;
197 return m_debugDrawSystem;
200QRhi *QSSGRenderContextInterface::rhi()
const
202 return m_rhiContext->rhi();
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
const std::unique_ptr< QSSGRhiContext > & rhiContext() const
QSSGRenderContextInterface(QRhi *rhi)
const std::unique_ptr< QSSGDebugDrawSystem > & debugDrawSystem() const
const std::unique_ptr< QSSGProgramGenerator > & shaderProgramGenerator() const
const std::unique_ptr< QSSGCustomMaterialSystem > & customMaterialSystem() const
const std::shared_ptr< QSSGShaderLibraryManager > & shaderLibraryManager() const
const std::unique_ptr< QSSGBufferManager > & bufferManager() const
const std::unique_ptr< QSSGRenderer > & renderer() const
const std::unique_ptr< QSSGShaderCache > & shaderCache() const
~QSSGRenderContextInterface()
static void setRenderContextInterface(QSSGRenderer &renderer, QSSGRenderContextInterface *ctx)
static QSSGRhiContextPrivate * get(QSSGRhiContext *q)
Combined button and popup list for selecting options.
static const std::shared_ptr< QSSGShaderLibraryManager > & q3ds_shaderLibraryManager()
static bool loadPregenratedShaders()
Q_CORE_EXPORT int qEnvironmentVariableIntValue(const char *varName, bool *ok=nullptr) noexcept
QSvgRenderer * renderer
[0]