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