summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/Qt3DSRenderRuntimeBinding.cpp2
-rw-r--r--src/engine/Qt3DSRenderRuntimeBindingImpl.h2
-rw-r--r--src/engine/Qt3DSRenderRuntimeBindingImplRenderer.cpp10
-rw-r--r--src/engine/Qt3DSRuntimeView.cpp8
-rw-r--r--src/engine/Qt3DSRuntimeView.h5
5 files changed, 11 insertions, 16 deletions
diff --git a/src/engine/Qt3DSRenderRuntimeBinding.cpp b/src/engine/Qt3DSRenderRuntimeBinding.cpp
index ec89aa4..33f9f5c 100644
--- a/src/engine/Qt3DSRenderRuntimeBinding.cpp
+++ b/src/engine/Qt3DSRenderRuntimeBinding.cpp
@@ -814,8 +814,6 @@ struct Qt3DSRenderSceneManager : public Q3DStudio::ISceneManager,
qt3ds::foundation::CFileTools::AppendDirectoryInPathToFile(theBinaryPath, "binary");
eastl::string theBinaryDir(theBinaryPath);
qt3ds::foundation::CFileTools::GetDirectory(theBinaryDir);
- if (m_Context->m_WriteOutShaderCache)
- qt3ds::foundation::CFileTools::CreateDir(theBinaryDir.c_str());
}
inScene.m_RuntimePresentation = &inPresentation;
m_Scenes.push_back(make_pair(&inPresentation, &inScene));
diff --git a/src/engine/Qt3DSRenderRuntimeBindingImpl.h b/src/engine/Qt3DSRenderRuntimeBindingImpl.h
index 877c6ea..1f0e565 100644
--- a/src/engine/Qt3DSRenderRuntimeBindingImpl.h
+++ b/src/engine/Qt3DSRenderRuntimeBindingImpl.h
@@ -96,7 +96,6 @@ namespace render {
QSize m_WindowDimensions;
eastl::string m_PrimitivePath;
bool m_RenderRotationsEnabled;
- bool m_WriteOutShaderCache;
volatile QT3DSI32 mRefCount;
Q3DStudio::IWindowSystem &m_WindowSystem;
Q3DStudio::ITimeProvider &m_TimeProvider;
@@ -110,7 +109,6 @@ namespace render {
, m_CoreContext(IQt3DSRenderContextCore::Create(*m_Foundation, *m_StringTable))
, m_PrimitivePath(inPrimitivePath)
, m_RenderRotationsEnabled(false)
- , m_WriteOutShaderCache(false)
, mRefCount(0)
, m_WindowSystem(inWindowSystem)
, m_TimeProvider(inTimeProvider)
diff --git a/src/engine/Qt3DSRenderRuntimeBindingImplRenderer.cpp b/src/engine/Qt3DSRenderRuntimeBindingImplRenderer.cpp
index 3aaa006..47ed8aa 100644
--- a/src/engine/Qt3DSRenderRuntimeBindingImplRenderer.cpp
+++ b/src/engine/Qt3DSRenderRuntimeBindingImplRenderer.cpp
@@ -91,7 +91,10 @@ struct SRenderer : public Q3DStudio::ITegraApplicationRenderEngine
m_BindingCore->m_WindowDimensions = theWindowDims;
m_BindingCore->m_Context->SetWindowDimensions(m_BindingCore->m_WindowDimensions);
}
- Q3DStudio::BOOL LoadShaderCache(const char * /*inFilePath*/) override { return true; }
+ QByteArray exportShaderCache(bool binaryShaders) override
+ {
+ return m_BindingCore->m_Context->GetShaderCache().exportShaderCache(binaryShaders);
+ }
void AbandonLoadingImages(Q3DStudio::IScene & /*inScene*/) override {}
@@ -168,11 +171,6 @@ struct SRenderer : public Q3DStudio::ITegraApplicationRenderEngine
m_BindingCore->m_RenderRotationsEnabled = inEnable;
}
- void SetWriteOutShaderCache(bool inWriteOutShaderCache) override
- {
- m_BindingCore->m_WriteOutShaderCache = inWriteOutShaderCache;
- }
-
Q3DStudio::ITegraRenderStateManager &GetTegraRenderStateManager() override { return m_RSM; }
qt3ds::render::NVRenderContext &GetRenderContext() override
{
diff --git a/src/engine/Qt3DSRuntimeView.cpp b/src/engine/Qt3DSRuntimeView.cpp
index f9a4768..3ab577c 100644
--- a/src/engine/Qt3DSRuntimeView.cpp
+++ b/src/engine/Qt3DSRuntimeView.cpp
@@ -171,7 +171,7 @@ public:
bool BeginLoad(const QString &sourcePath, const QStringList &variantList) override;
bool HasOfflineLoadingCompleted() override;
bool InitializeGraphics(const QSurfaceFormat &format, bool delayedLoading,
- bool initInRenderThread) override;
+ bool initInRenderThread, const QByteArray &shaderCache) override;
void connectSignals() override;
void finishAsyncInit() override;
@@ -237,6 +237,7 @@ public:
void unloadSlide(const QString &slide) override;
void setDelayedLoading(bool enable) override;
void BootupPreGraphicsInitObjects();
+ QByteArray exportShaderCache(bool binaryShaders);
};
CRuntimeView::CRuntimeView(ITimeProvider &inTimeProvider, IWindowSystem &inWindowSystem,
@@ -298,7 +299,7 @@ bool CRuntimeView::HasOfflineLoadingCompleted()
}
bool CRuntimeView::InitializeGraphics(const QSurfaceFormat &format, bool delayedLoading,
- bool initInRenderThread)
+ bool initInRenderThread, const QByteArray &shaderCache)
{
m_ApplicationCore->EndLoad();
// Next call will initialize the render portion of the scenes. This *must* have a loaded
@@ -306,7 +307,8 @@ bool CRuntimeView::InitializeGraphics(const QSurfaceFormat &format, bool delayed
m_RuntimeFactory = m_RuntimeFactoryCore->CreateRenderFactory(format, delayedLoading);
m_Application
= m_ApplicationCore->CreateApplication(*m_InputEngine, m_AudioPlayer,
- *m_RuntimeFactory, initInRenderThread);
+ *m_RuntimeFactory, shaderCache,
+ initInRenderThread);
if (!m_Application->createSuccessful())
return false;
diff --git a/src/engine/Qt3DSRuntimeView.h b/src/engine/Qt3DSRuntimeView.h
index 2d79601..1ddc48b 100644
--- a/src/engine/Qt3DSRuntimeView.h
+++ b/src/engine/Qt3DSRuntimeView.h
@@ -133,7 +133,7 @@ public:
virtual void SetApplicationViewport(const qt3ds::render::NVRenderRect &inViewport) = 0;
virtual void ensureRenderTarget() = 0;
virtual void CheckResize(bool inForce, IPresentation &inActivePresentation) = 0;
- virtual BOOL LoadShaderCache(const CHAR *inFilePath) = 0;
+ virtual QByteArray exportShaderCache(bool binaryShaders) = 0;
virtual void AbandonLoadingImages(IScene &inScene) = 0;
virtual BOOL IsPickValid(FLOAT &outX, FLOAT &outY,
const IPresentation &inPresentation) const = 0;
@@ -159,7 +159,6 @@ public:
virtual void SetMatteColor(qt3ds::foundation::Option<qt3ds::QT3DSVec4> inColor) = 0;
virtual void setMatteEnabled(bool enable) = 0;
virtual void EnableRenderRotation(bool inEnable) = 0;
- virtual void SetWriteOutShaderCache(bool inWriteOutShaderCache) = 0;
virtual void Release() = 0;
virtual void RenderText2D(FLOAT x, FLOAT y, qt3ds::foundation::Option<qt3ds::QT3DSVec3> inColor,
const char *text) = 0;
@@ -176,7 +175,7 @@ public: // loading
virtual bool BeginLoad(const QString &sourcePath, const QStringList &variantList) = 0;
virtual bool HasOfflineLoadingCompleted() = 0;
virtual bool InitializeGraphics(const QSurfaceFormat &format, bool delayedLoading,
- bool initInRenderThread) = 0;
+ bool initInRenderThread, const QByteArray &shaderCache) = 0;
virtual void connectSignals() = 0;
virtual void finishAsyncInit() = 0;