Mercurial > hg > orthanc-stone
diff Samples/WebAssembly/BasicScene.cpp @ 891:0aff28f15ea2
new abstraction: IViewport
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 10 Jul 2019 18:18:42 +0200 |
parents | 2de01660debe |
children | 50cd372e2460 |
line wrap: on
line diff
--- a/Samples/WebAssembly/BasicScene.cpp Wed Jul 10 15:23:13 2019 +0200 +++ b/Samples/WebAssembly/BasicScene.cpp Wed Jul 10 18:18:42 2019 +0200 @@ -129,7 +129,11 @@ std::auto_ptr<OrthancStone::WebAssemblyViewport> viewport1_; std::auto_ptr<OrthancStone::WebAssemblyViewport> viewport2_; std::auto_ptr<OrthancStone::WebAssemblyViewport> viewport3_; -OrthancStone::MessageBroker broker_; +boost::shared_ptr<OrthancStone::ViewportController> controller1_; +boost::shared_ptr<OrthancStone::ViewportController> controller2_; +boost::shared_ptr<OrthancStone::ViewportController> controller3_; +OrthancStone::MessageBroker broker_; + EM_BOOL OnWindowResize( int eventType, const EmscriptenUiEvent *uiEvent, void *userData) @@ -165,21 +169,33 @@ EMSCRIPTEN_KEEPALIVE void Initialize() { - viewport1_.reset( - new OrthancStone::WebAssemblyViewport(broker_, "mycanvas1")); + viewport1_.reset(new OrthancStone::WebAssemblyViewport("mycanvas1")); PrepareScene(viewport1_->GetScene()); viewport1_->UpdateSize(); - viewport2_.reset( - new OrthancStone::WebAssemblyViewport(broker_, "mycanvas2")); + viewport2_.reset(new OrthancStone::WebAssemblyViewport("mycanvas2")); PrepareScene(viewport2_->GetScene()); viewport2_->UpdateSize(); - viewport3_.reset( - new OrthancStone::WebAssemblyViewport(broker_, "mycanvas3")); + viewport3_.reset(new OrthancStone::WebAssemblyViewport("mycanvas3")); PrepareScene(viewport3_->GetScene()); viewport3_->UpdateSize(); + viewport1_->GetCompositor().SetFont(0, Orthanc::EmbeddedResources::UBUNTU_FONT, + FONT_SIZE, Orthanc::Encoding_Latin1); + viewport2_->GetCompositor().SetFont(0, Orthanc::EmbeddedResources::UBUNTU_FONT, + FONT_SIZE, Orthanc::Encoding_Latin1); + viewport3_->GetCompositor().SetFont(0, Orthanc::EmbeddedResources::UBUNTU_FONT, + FONT_SIZE, Orthanc::Encoding_Latin1); + + controller1_.reset(new OrthancStone::ViewportController(boost::make_shared<OrthancStone::UndoStack>(), broker_, *viewport1_)); + controller2_.reset(new OrthancStone::ViewportController(boost::make_shared<OrthancStone::UndoStack>(), broker_, *viewport2_)); + controller3_.reset(new OrthancStone::ViewportController(boost::make_shared<OrthancStone::UndoStack>(), broker_, *viewport3_)); + + SetupEvents("mycanvas1", controller1_); + SetupEvents("mycanvas2", controller2_); + SetupEvents("mycanvas3", controller3_); + emscripten_set_resize_callback("#window", NULL, false, OnWindowResize); } }