diff Applications/Sdl/SdlEngine.cpp @ 271:46c5296d867e am-2

OracleWebService and BasicSdlApplicationContext using the same global mutex
author am@osimis.io
date Thu, 23 Aug 2018 17:12:54 +0200
parents 84844649a8fd
children dc1beee33134
line wrap: on
line diff
--- a/Applications/Sdl/SdlEngine.cpp	Thu Aug 23 14:45:04 2018 +0200
+++ b/Applications/Sdl/SdlEngine.cpp	Thu Aug 23 17:12:54 2018 +0200
@@ -29,11 +29,10 @@
 
 namespace OrthancStone
 {
-  void SdlEngine::SetSize(BasicSdlApplicationContext::ViewportLocker& locker,
-                          unsigned int width,
+  void SdlEngine::SetSize(unsigned int width,
                           unsigned int height)
   {
-    locker.GetViewport().SetSize(width, height);
+    context_.GetCentralViewport().SetSize(width, height);
     surface_.SetSize(width, height);
   }
     
@@ -42,8 +41,8 @@
   {
     if (viewportChanged_)
     {
-      BasicSdlApplicationContext::ViewportLocker locker(context_);
-      surface_.Render(locker.GetViewport());
+      BasicSdlApplicationContext::GlobalMutexLocker locker(context_);
+      surface_.Render(context_.GetCentralViewport());
 
       viewportChanged_ = false;
     }
@@ -119,9 +118,9 @@
     const uint8_t* keyboardState = SDL_GetKeyboardState(&scancodeCount);
 
     {
-      BasicSdlApplicationContext::ViewportLocker locker(context_);
-      SetSize(locker, window_.GetWidth(), window_.GetHeight());
-      locker.GetViewport().SetDefaultView();
+      BasicSdlApplicationContext::GlobalMutexLocker locker(context_);
+      SetSize(window_.GetWidth(), window_.GetHeight());
+      context_.GetCentralViewport().SetDefaultView();
     }
     
     bool stop = false;
@@ -134,7 +133,7 @@
       while (!stop &&
              SDL_PollEvent(&event))
       {
-        BasicSdlApplicationContext::ViewportLocker locker(context_);
+        BasicSdlApplicationContext::GlobalMutexLocker locker(context_);
 
         if (event.type == SDL_QUIT) 
         {
@@ -148,15 +147,15 @@
           switch (event.button.button)
           {
             case SDL_BUTTON_LEFT:
-              locker.GetViewport().MouseDown(MouseButton_Left, event.button.x, event.button.y, modifiers);
+              context_.GetCentralViewport().MouseDown(MouseButton_Left, event.button.x, event.button.y, modifiers);
               break;
             
             case SDL_BUTTON_RIGHT:
-              locker.GetViewport().MouseDown(MouseButton_Right, event.button.x, event.button.y, modifiers);
+              context_.GetCentralViewport().MouseDown(MouseButton_Right, event.button.x, event.button.y, modifiers);
               break;
             
             case SDL_BUTTON_MIDDLE:
-              locker.GetViewport().MouseDown(MouseButton_Middle, event.button.x, event.button.y, modifiers);
+              context_.GetCentralViewport().MouseDown(MouseButton_Middle, event.button.x, event.button.y, modifiers);
               break;
 
             default:
@@ -165,26 +164,26 @@
         }
         else if (event.type == SDL_MOUSEMOTION)
         {
-          locker.GetViewport().MouseMove(event.button.x, event.button.y);
+          context_.GetCentralViewport().MouseMove(event.button.x, event.button.y);
         }
         else if (event.type == SDL_MOUSEBUTTONUP)
         {
-          locker.GetViewport().MouseUp();
+          context_.GetCentralViewport().MouseUp();
         }
         else if (event.type == SDL_WINDOWEVENT)
         {
           switch (event.window.event)
           {
             case SDL_WINDOWEVENT_LEAVE:
-              locker.GetViewport().MouseLeave();
+              context_.GetCentralViewport().MouseLeave();
               break;
 
             case SDL_WINDOWEVENT_ENTER:
-              locker.GetViewport().MouseEnter();
+              context_.GetCentralViewport().MouseEnter();
               break;
 
             case SDL_WINDOWEVENT_SIZE_CHANGED:
-              SetSize(locker, event.window.data1, event.window.data2);
+              SetSize(event.window.data1, event.window.data2);
               break;
 
             default:
@@ -200,11 +199,11 @@
 
           if (event.wheel.y > 0)
           {
-            locker.GetViewport().MouseWheel(MouseWheelDirection_Up, x, y, modifiers);
+            context_.GetCentralViewport().MouseWheel(MouseWheelDirection_Up, x, y, modifiers);
           }
           else if (event.wheel.y < 0)
           {
-            locker.GetViewport().MouseWheel(MouseWheelDirection_Down, x, y, modifiers);
+            context_.GetCentralViewport().MouseWheel(MouseWheelDirection_Down, x, y, modifiers);
           }
         }
         else if (event.type == SDL_KEYDOWN &&
@@ -214,50 +213,50 @@
 
           switch (event.key.keysym.sym)
           {
-            case SDLK_a:    locker.GetViewport().KeyPressed('a', modifiers);  break;
-            case SDLK_b:    locker.GetViewport().KeyPressed('b', modifiers);  break;
-            case SDLK_c:    locker.GetViewport().KeyPressed('c', modifiers);  break;
-            case SDLK_d:    locker.GetViewport().KeyPressed('d', modifiers);  break;
-            case SDLK_e:    locker.GetViewport().KeyPressed('e', modifiers);  break;
+            case SDLK_a:    context_.GetCentralViewport().KeyPressed('a', modifiers);  break;
+            case SDLK_b:    context_.GetCentralViewport().KeyPressed('b', modifiers);  break;
+            case SDLK_c:    context_.GetCentralViewport().KeyPressed('c', modifiers);  break;
+            case SDLK_d:    context_.GetCentralViewport().KeyPressed('d', modifiers);  break;
+            case SDLK_e:    context_.GetCentralViewport().KeyPressed('e', modifiers);  break;
             case SDLK_f:    window_.ToggleMaximize();                         break;
-            case SDLK_g:    locker.GetViewport().KeyPressed('g', modifiers);  break;
-            case SDLK_h:    locker.GetViewport().KeyPressed('h', modifiers);  break;
-            case SDLK_i:    locker.GetViewport().KeyPressed('i', modifiers);  break;
-            case SDLK_j:    locker.GetViewport().KeyPressed('j', modifiers);  break;
-            case SDLK_k:    locker.GetViewport().KeyPressed('k', modifiers);  break;
-            case SDLK_l:    locker.GetViewport().KeyPressed('l', modifiers);  break;
-            case SDLK_m:    locker.GetViewport().KeyPressed('m', modifiers);  break;
-            case SDLK_n:    locker.GetViewport().KeyPressed('n', modifiers);  break;
-            case SDLK_o:    locker.GetViewport().KeyPressed('o', modifiers);  break;
-            case SDLK_p:    locker.GetViewport().KeyPressed('p', modifiers);  break;
+            case SDLK_g:    context_.GetCentralViewport().KeyPressed('g', modifiers);  break;
+            case SDLK_h:    context_.GetCentralViewport().KeyPressed('h', modifiers);  break;
+            case SDLK_i:    context_.GetCentralViewport().KeyPressed('i', modifiers);  break;
+            case SDLK_j:    context_.GetCentralViewport().KeyPressed('j', modifiers);  break;
+            case SDLK_k:    context_.GetCentralViewport().KeyPressed('k', modifiers);  break;
+            case SDLK_l:    context_.GetCentralViewport().KeyPressed('l', modifiers);  break;
+            case SDLK_m:    context_.GetCentralViewport().KeyPressed('m', modifiers);  break;
+            case SDLK_n:    context_.GetCentralViewport().KeyPressed('n', modifiers);  break;
+            case SDLK_o:    context_.GetCentralViewport().KeyPressed('o', modifiers);  break;
+            case SDLK_p:    context_.GetCentralViewport().KeyPressed('p', modifiers);  break;
             case SDLK_q:    stop = true;                                      break;
-            case SDLK_r:    locker.GetViewport().KeyPressed('r', modifiers);  break;
-            case SDLK_s:    locker.GetViewport().KeyPressed('s', modifiers);  break;
-            case SDLK_t:    locker.GetViewport().KeyPressed('t', modifiers);  break;
-            case SDLK_u:    locker.GetViewport().KeyPressed('u', modifiers);  break;
-            case SDLK_v:    locker.GetViewport().KeyPressed('v', modifiers);  break;
-            case SDLK_w:    locker.GetViewport().KeyPressed('w', modifiers);  break;
-            case SDLK_x:    locker.GetViewport().KeyPressed('x', modifiers);  break;
-            case SDLK_y:    locker.GetViewport().KeyPressed('y', modifiers);  break;
-            case SDLK_z:    locker.GetViewport().KeyPressed('z', modifiers);  break;
-            case SDLK_KP_0: locker.GetViewport().KeyPressed('0', modifiers);  break;
-            case SDLK_KP_1: locker.GetViewport().KeyPressed('1', modifiers);  break;
-            case SDLK_KP_2: locker.GetViewport().KeyPressed('2', modifiers);  break;
-            case SDLK_KP_3: locker.GetViewport().KeyPressed('3', modifiers);  break;
-            case SDLK_KP_4: locker.GetViewport().KeyPressed('4', modifiers);  break;
-            case SDLK_KP_5: locker.GetViewport().KeyPressed('5', modifiers);  break;
-            case SDLK_KP_6: locker.GetViewport().KeyPressed('6', modifiers);  break;
-            case SDLK_KP_7: locker.GetViewport().KeyPressed('7', modifiers);  break;
-            case SDLK_KP_8: locker.GetViewport().KeyPressed('8', modifiers);  break;
-            case SDLK_KP_9: locker.GetViewport().KeyPressed('9', modifiers);  break;
+            case SDLK_r:    context_.GetCentralViewport().KeyPressed('r', modifiers);  break;
+            case SDLK_s:    context_.GetCentralViewport().KeyPressed('s', modifiers);  break;
+            case SDLK_t:    context_.GetCentralViewport().KeyPressed('t', modifiers);  break;
+            case SDLK_u:    context_.GetCentralViewport().KeyPressed('u', modifiers);  break;
+            case SDLK_v:    context_.GetCentralViewport().KeyPressed('v', modifiers);  break;
+            case SDLK_w:    context_.GetCentralViewport().KeyPressed('w', modifiers);  break;
+            case SDLK_x:    context_.GetCentralViewport().KeyPressed('x', modifiers);  break;
+            case SDLK_y:    context_.GetCentralViewport().KeyPressed('y', modifiers);  break;
+            case SDLK_z:    context_.GetCentralViewport().KeyPressed('z', modifiers);  break;
+            case SDLK_KP_0: context_.GetCentralViewport().KeyPressed('0', modifiers);  break;
+            case SDLK_KP_1: context_.GetCentralViewport().KeyPressed('1', modifiers);  break;
+            case SDLK_KP_2: context_.GetCentralViewport().KeyPressed('2', modifiers);  break;
+            case SDLK_KP_3: context_.GetCentralViewport().KeyPressed('3', modifiers);  break;
+            case SDLK_KP_4: context_.GetCentralViewport().KeyPressed('4', modifiers);  break;
+            case SDLK_KP_5: context_.GetCentralViewport().KeyPressed('5', modifiers);  break;
+            case SDLK_KP_6: context_.GetCentralViewport().KeyPressed('6', modifiers);  break;
+            case SDLK_KP_7: context_.GetCentralViewport().KeyPressed('7', modifiers);  break;
+            case SDLK_KP_8: context_.GetCentralViewport().KeyPressed('8', modifiers);  break;
+            case SDLK_KP_9: context_.GetCentralViewport().KeyPressed('9', modifiers);  break;
 
             case SDLK_PLUS:
             case SDLK_KP_PLUS:
-              locker.GetViewport().KeyPressed('+', modifiers);  break;
+              context_.GetCentralViewport().KeyPressed('+', modifiers);  break;
 
             case SDLK_MINUS:
             case SDLK_KP_MINUS:
-              locker.GetViewport().KeyPressed('-', modifiers);  break;
+              context_.GetCentralViewport().KeyPressed('-', modifiers);  break;
 
             default:
               break;