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();
   }
 }