Mercurial > hg > orthanc-stone
diff Framework/Viewport/WebGLViewport.cpp @ 1331:ab81ee8fce1f broker
- Viewport is not passed and stored as a shared_ptr instead
of raw reference.
- ViewportController can now be injected with an undo
stack (not a ctor param anymore, as a preparation for the
move of the undo stack to an interactor)
- Added (temp) flag to disable emscripten events registration
in the WebAssemblyViewport (because legacy client code
deals with them directly)
- Added emscripten_clear_timeout in ~WebGLViewportsRegistry
- Removed GenericToolbox::HoldingRef whose responsibility is
better served with proper callback un-registration.
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Mon, 30 Mar 2020 14:23:46 +0200 |
parents | cbfdba08e039 |
children | df8bf351c23f |
line wrap: on
line diff
--- a/Framework/Viewport/WebGLViewport.cpp Mon Mar 30 08:47:30 2020 +0200 +++ b/Framework/Viewport/WebGLViewport.cpp Mon Mar 30 14:23:46 2020 +0200 @@ -79,32 +79,26 @@ } } - WebGLViewport::WebGLViewport(const std::string& canvasId, - boost::weak_ptr<UndoStack> undoStackW) : - WebAssemblyViewport(canvasId, NULL, undoStackW), - context_(GetFullCanvasId()) - { - AcquireCompositor(new OpenGLCompositor(context_)); - } - WebGLViewport::WebGLViewport(const std::string& canvasId) : - WebAssemblyViewport(canvasId, NULL, boost::weak_ptr<UndoStack>()), + WebAssemblyViewport(canvasId), context_(GetFullCanvasId()) { AcquireCompositor(new OpenGLCompositor(context_)); } - WebGLViewport::WebGLViewport(const std::string& canvasId, - const Scene2D& scene) : - WebAssemblyViewport(canvasId, &scene, boost::weak_ptr<UndoStack>()), - context_(GetFullCanvasId()) + boost::shared_ptr<WebGLViewport> WebGLViewport::Create( + const std::string& canvasId) { - AcquireCompositor(new OpenGLCompositor(context_)); + boost::shared_ptr<WebGLViewport> that = + boost::shared_ptr<WebGLViewport>(new WebGLViewport(canvasId)); + that->WebAssemblyViewport::PostConstructor(); + return that; } WebGLViewport::~WebGLViewport() { - // Make sure to delete the compositor before its parent "context_" gets deleted + // Make sure to delete the compositor before its parent "context_" gets + // deleted ClearCompositor(); } }