Mercurial > hg > orthanc-stone
comparison 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 |
comparison
equal
deleted
inserted
replaced
890:77c96ba899f9 | 891:0aff28f15ea2 |
---|---|
127 | 127 |
128 | 128 |
129 std::auto_ptr<OrthancStone::WebAssemblyViewport> viewport1_; | 129 std::auto_ptr<OrthancStone::WebAssemblyViewport> viewport1_; |
130 std::auto_ptr<OrthancStone::WebAssemblyViewport> viewport2_; | 130 std::auto_ptr<OrthancStone::WebAssemblyViewport> viewport2_; |
131 std::auto_ptr<OrthancStone::WebAssemblyViewport> viewport3_; | 131 std::auto_ptr<OrthancStone::WebAssemblyViewport> viewport3_; |
132 OrthancStone::MessageBroker broker_; | 132 boost::shared_ptr<OrthancStone::ViewportController> controller1_; |
133 boost::shared_ptr<OrthancStone::ViewportController> controller2_; | |
134 boost::shared_ptr<OrthancStone::ViewportController> controller3_; | |
135 OrthancStone::MessageBroker broker_; | |
136 | |
133 | 137 |
134 EM_BOOL OnWindowResize( | 138 EM_BOOL OnWindowResize( |
135 int eventType, const EmscriptenUiEvent *uiEvent, void *userData) | 139 int eventType, const EmscriptenUiEvent *uiEvent, void *userData) |
136 { | 140 { |
137 if (viewport1_.get() != NULL) | 141 if (viewport1_.get() != NULL) |
163 } | 167 } |
164 | 168 |
165 EMSCRIPTEN_KEEPALIVE | 169 EMSCRIPTEN_KEEPALIVE |
166 void Initialize() | 170 void Initialize() |
167 { | 171 { |
168 viewport1_.reset( | 172 viewport1_.reset(new OrthancStone::WebAssemblyViewport("mycanvas1")); |
169 new OrthancStone::WebAssemblyViewport(broker_, "mycanvas1")); | |
170 PrepareScene(viewport1_->GetScene()); | 173 PrepareScene(viewport1_->GetScene()); |
171 viewport1_->UpdateSize(); | 174 viewport1_->UpdateSize(); |
172 | 175 |
173 viewport2_.reset( | 176 viewport2_.reset(new OrthancStone::WebAssemblyViewport("mycanvas2")); |
174 new OrthancStone::WebAssemblyViewport(broker_, "mycanvas2")); | |
175 PrepareScene(viewport2_->GetScene()); | 177 PrepareScene(viewport2_->GetScene()); |
176 viewport2_->UpdateSize(); | 178 viewport2_->UpdateSize(); |
177 | 179 |
178 viewport3_.reset( | 180 viewport3_.reset(new OrthancStone::WebAssemblyViewport("mycanvas3")); |
179 new OrthancStone::WebAssemblyViewport(broker_, "mycanvas3")); | |
180 PrepareScene(viewport3_->GetScene()); | 181 PrepareScene(viewport3_->GetScene()); |
181 viewport3_->UpdateSize(); | 182 viewport3_->UpdateSize(); |
182 | 183 |
184 viewport1_->GetCompositor().SetFont(0, Orthanc::EmbeddedResources::UBUNTU_FONT, | |
185 FONT_SIZE, Orthanc::Encoding_Latin1); | |
186 viewport2_->GetCompositor().SetFont(0, Orthanc::EmbeddedResources::UBUNTU_FONT, | |
187 FONT_SIZE, Orthanc::Encoding_Latin1); | |
188 viewport3_->GetCompositor().SetFont(0, Orthanc::EmbeddedResources::UBUNTU_FONT, | |
189 FONT_SIZE, Orthanc::Encoding_Latin1); | |
190 | |
191 controller1_.reset(new OrthancStone::ViewportController(boost::make_shared<OrthancStone::UndoStack>(), broker_, *viewport1_)); | |
192 controller2_.reset(new OrthancStone::ViewportController(boost::make_shared<OrthancStone::UndoStack>(), broker_, *viewport2_)); | |
193 controller3_.reset(new OrthancStone::ViewportController(boost::make_shared<OrthancStone::UndoStack>(), broker_, *viewport3_)); | |
194 | |
195 SetupEvents("mycanvas1", controller1_); | |
196 SetupEvents("mycanvas2", controller2_); | |
197 SetupEvents("mycanvas3", controller3_); | |
198 | |
183 emscripten_set_resize_callback("#window", NULL, false, OnWindowResize); | 199 emscripten_set_resize_callback("#window", NULL, false, OnWindowResize); |
184 } | 200 } |
185 } | 201 } |