Mercurial > hg > orthanc-stone
diff Framework/StoneInitialization.cpp @ 1236:358461330978 broker
global function GetWebGLViewportsRegistry()
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 09 Dec 2019 20:45:47 +0100 |
parents | 092ec2a225ad |
children | 0ca50d275b9a |
line wrap: on
line diff
--- a/Framework/StoneInitialization.cpp Mon Dec 09 20:25:22 2019 +0100 +++ b/Framework/StoneInitialization.cpp Mon Dec 09 20:45:47 2019 +0100 @@ -60,6 +60,11 @@ # include <Core/DicomParsing/FromDcmtkBridge.h> #endif +#if ORTHANC_ENABLE_WASM == 1 +static double viewportsTimeout_ = 1000; +static std::auto_ptr<OrthancStone::WebGLViewportsRegistry> viewportsRegistry_; +#endif + #include "Toolbox/LinearAlgebra.h" #include <Core/OrthancException.h> @@ -170,6 +175,10 @@ void StoneFinalize() { +#if ORTHANC_ENABLE_WASM == 1 + viewportsRegistry_.reset(); +#endif + #if ORTHANC_ENABLE_SDL == 1 OrthancStone::SdlWindow::GlobalFinalize(); #endif @@ -188,4 +197,32 @@ Orthanc::Logging::Finalize(); } + + +#if ORTHANC_ENABLE_WASM == 1 + void SetWebGLViewportsRegistryTimeout(double timeout) + { + if (viewportsRegistry_.get()) + { + throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); + } + else + { + viewportsTimeout_ = timeout; + } + } +#endif + + +#if ORTHANC_ENABLE_WASM == 1 + WebGLViewportsRegistry& GetWebGLViewportsRegistry() + { + if (viewportsRegistry_.get() == NULL) + { + viewportsRegistry_.reset(new WebGLViewportsRegistry(viewportsTimeout_)); + } + + return *viewportsRegistry_; + } +#endif }