Mercurial > hg > orthanc-stone
comparison Samples/Sdl/BasicScene.cpp @ 911:64e5f3ff6360 am-dev
Merge
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Thu, 18 Jul 2019 10:50:59 +0200 |
parents | 9c2f6d6b9f4a 7a7e4e1f558f |
children | 2d8ab34c8c91 |
comparison
equal
deleted
inserted
replaced
903:ef6e425dc79f | 911:64e5f3ff6360 |
---|---|
46 #include <stdio.h> | 46 #include <stdio.h> |
47 | 47 |
48 static const unsigned int FONT_SIZE = 32; | 48 static const unsigned int FONT_SIZE = 32; |
49 static const int LAYER_POSITION = 150; | 49 static const int LAYER_POSITION = 150; |
50 | 50 |
51 #define OPENGL_ENABLED 0 | |
51 | 52 |
52 void PrepareScene(OrthancStone::Scene2D& scene) | 53 void PrepareScene(OrthancStone::Scene2D& scene) |
53 { | 54 { |
54 using namespace OrthancStone; | 55 using namespace OrthancStone; |
55 | 56 |
257 break; | 258 break; |
258 } | 259 } |
259 } | 260 } |
260 } | 261 } |
261 | 262 |
262 | 263 #if OPENGL_ENABLED==1 |
263 static void GLAPIENTRY | 264 static void GLAPIENTRY |
264 OpenGLMessageCallback(GLenum source, | 265 OpenGLMessageCallback(GLenum source, |
265 GLenum type, | 266 GLenum type, |
266 GLuint id, | 267 GLuint id, |
267 GLenum severity, | 268 GLenum severity, |
274 fprintf(stderr, "GL CALLBACK: %s type = 0x%x, severity = 0x%x, message = %s\n", | 275 fprintf(stderr, "GL CALLBACK: %s type = 0x%x, severity = 0x%x, message = %s\n", |
275 ( type == GL_DEBUG_TYPE_ERROR ? "** GL ERROR **" : "" ), | 276 ( type == GL_DEBUG_TYPE_ERROR ? "** GL ERROR **" : "" ), |
276 type, severity, message ); | 277 type, severity, message ); |
277 } | 278 } |
278 } | 279 } |
279 | 280 #endif |
280 | 281 |
281 void Run(OrthancStone::MessageBroker& broker, | 282 void Run(OrthancStone::MessageBroker& broker, |
282 OrthancStone::SdlViewport& viewport) | 283 OrthancStone::SdlViewport& viewport) |
283 { | 284 { |
284 using namespace OrthancStone; | 285 using namespace OrthancStone; |
285 | 286 |
286 boost::shared_ptr<ViewportController> controller( | 287 boost::shared_ptr<ViewportController> controller( |
287 new ViewportController(boost::make_shared<UndoStack>(), broker, viewport)); | 288 new ViewportController(boost::make_shared<UndoStack>(), broker, viewport)); |
288 | 289 |
290 #if OPENGL_ENABLED==1 | |
289 glEnable(GL_DEBUG_OUTPUT); | 291 glEnable(GL_DEBUG_OUTPUT); |
290 glDebugMessageCallback(OpenGLMessageCallback, 0); | 292 glDebugMessageCallback(OpenGLMessageCallback, 0); |
293 #endif | |
291 | 294 |
292 boost::shared_ptr<IFlexiblePointerTracker> tracker; | 295 boost::shared_ptr<IFlexiblePointerTracker> tracker; |
293 | 296 |
294 bool firstShown = true; | 297 bool firstShown = true; |
295 bool stop = false; | 298 bool stop = false; |
332 { | 335 { |
333 switch (event.window.event) | 336 switch (event.window.event) |
334 { | 337 { |
335 case SDL_WINDOWEVENT_SIZE_CHANGED: | 338 case SDL_WINDOWEVENT_SIZE_CHANGED: |
336 tracker.reset(); | 339 tracker.reset(); |
340 viewport.UpdateSize(event.window.data1, event.window.data2); | |
337 break; | 341 break; |
338 | 342 |
339 case SDL_WINDOWEVENT_SHOWN: | 343 case SDL_WINDOWEVENT_SHOWN: |
340 if (firstShown) | 344 if (firstShown) |
341 { | 345 { |
354 event.key.repeat == 0 /* Ignore key bounce */) | 358 event.key.repeat == 0 /* Ignore key bounce */) |
355 { | 359 { |
356 switch (event.key.keysym.sym) | 360 switch (event.key.keysym.sym) |
357 { | 361 { |
358 case SDLK_f: | 362 case SDLK_f: |
359 viewport.GetContext().GetWindow().ToggleMaximize(); | 363 viewport.GetWindow().ToggleMaximize(); |
360 break; | 364 break; |
361 | 365 |
362 case SDLK_q: | 366 case SDLK_q: |
363 stop = true; | 367 stop = true; |
364 break; | 368 break; |
388 OrthancStone::StoneInitialize(); | 392 OrthancStone::StoneInitialize(); |
389 Orthanc::Logging::EnableInfoLevel(true); | 393 Orthanc::Logging::EnableInfoLevel(true); |
390 | 394 |
391 try | 395 try |
392 { | 396 { |
393 OrthancStone::SdlViewport viewport("Hello", 1024, 768); | 397 #if OPENGL_ENABLED==1 |
398 OrthancStone::SdlOpenGLViewport viewport("Hello", 1024, 768); | |
399 #else | |
400 OrthancStone::SdlCairoViewport viewport("Hello", 1024, 768); | |
401 #endif | |
394 PrepareScene(viewport.GetScene()); | 402 PrepareScene(viewport.GetScene()); |
395 | 403 |
396 viewport.GetCompositor().SetFont(0, Orthanc::EmbeddedResources::UBUNTU_FONT, | 404 viewport.GetCompositor().SetFont(0, Orthanc::EmbeddedResources::UBUNTU_FONT, |
397 FONT_SIZE, Orthanc::Encoding_Latin1); | 405 FONT_SIZE, Orthanc::Encoding_Latin1); |
398 | 406 |