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 }