diff Samples/Sdl/SdlHelpers.h @ 1406:5d7ee14dc1eb

Mouse wheel handler is now OK in SDL and Wasm
author Benjamin Golinvaux <bgo@osimis.io>
date Thu, 30 Apr 2020 00:25:55 +0200
parents 3e644f6fadd4
children b424028392cf
line wrap: on
line diff
--- a/Samples/Sdl/SdlHelpers.h	Wed Apr 29 22:06:58 2020 +0200
+++ b/Samples/Sdl/SdlHelpers.h	Thu Apr 30 00:25:55 2020 +0200
@@ -114,126 +114,6 @@
     }
     return NULL;
   }
-
-  inline void SdlRunLoop(const std::vector<boost::shared_ptr<OrthancStone::SdlViewport> >& viewports,
-                         OrthancStone::IViewportInteractor& interactor)
-  {
-    using namespace OrthancStone;
-    {
-      int scancodeCount = 0;
-      const uint8_t* keyboardState = SDL_GetKeyboardState(&scancodeCount);
-
-      bool stop = false;
-      while (!stop)
-      {
-        bool paint = false;
-        SDL_Event event;
-        while (SDL_PollEvent(&event))
-        {
-          if (event.type == SDL_QUIT)
-          {
-            stop = true;
-            break;
-          }
-          else if (event.type == SDL_WINDOWEVENT &&
-                   (event.window.event == SDL_WINDOWEVENT_RESIZED ||
-                    event.window.event == SDL_WINDOWEVENT_SIZE_CHANGED))
-          {
-            boost::shared_ptr<SdlViewport> viewport = GetSdlViewportFromWindowId(
-              viewports, event.window.windowID);
-            viewport->UpdateSize(event.window.data1, event.window.data2);
-          }
-          else if (event.type == SDL_WINDOWEVENT &&
-                   (event.window.event == SDL_WINDOWEVENT_SHOWN ||
-                    event.window.event == SDL_WINDOWEVENT_EXPOSED))
-          {
-            boost::shared_ptr<SdlViewport> viewport = GetSdlViewportFromWindowId(
-              viewports, event.window.windowID);
-            viewport->Paint();
-          }
-          else if (event.type == SDL_KEYDOWN &&
-                   event.key.repeat == 0 /* Ignore key bounce */)
-          {
-            boost::shared_ptr<SdlViewport> viewport = GetSdlViewportFromWindowId(
-              viewports, event.window.windowID);
-
-            switch (event.key.keysym.sym)
-            {
-            case SDLK_f:
-              viewport->ToggleMaximize();
-              break;
-
-            case SDLK_s:
-            {
-              std::unique_ptr<OrthancStone::IViewport::ILock> lock(viewport->Lock());
-              lock->GetCompositor().FitContent(lock->GetController().GetScene());
-              lock->Invalidate();
-            }
-            break;
-
-            case SDLK_q:
-              stop = true;
-              break;
-
-            default:
-              break;
-            }
-          }
-          else if (event.type == SDL_MOUSEBUTTONDOWN ||
-                   event.type == SDL_MOUSEMOTION ||
-                   event.type == SDL_MOUSEBUTTONUP)
-          {
-            boost::shared_ptr<SdlViewport> viewport = GetSdlViewportFromWindowId(
-              viewports, event.window.windowID);
-
-            std::auto_ptr<OrthancStone::IViewport::ILock> lock(viewport->Lock());
-            if (lock->HasCompositor())
-            {
-              OrthancStone::PointerEvent p;
-              OrthancStoneHelpers::GetPointerEvent(p, lock->GetCompositor(),
-                                                   event, keyboardState, scancodeCount);
-
-              switch (event.type)
-              {
-              case SDL_MOUSEBUTTONDOWN:
-                lock->GetController().HandleMousePress(interactor, p,
-                                                       lock->GetCompositor().GetCanvasWidth(),
-                                                       lock->GetCompositor().GetCanvasHeight());
-                lock->Invalidate();
-                break;
-
-              case SDL_MOUSEMOTION:
-                if (lock->GetController().HandleMouseMove(p))
-                {
-                  lock->Invalidate();
-                }
-                break;
-
-              case SDL_MOUSEBUTTONUP:
-                lock->GetController().HandleMouseRelease(p);
-                lock->Invalidate();
-                break;
-
-              default:
-                throw Orthanc::OrthancException(Orthanc::ErrorCode_InternalError);
-              }
-            }
-          }
-          else
-          {
-            for (size_t i = 0; i < viewports.size(); ++i)
-            {
-              boost::shared_ptr<SdlViewport> viewport = viewports[i];
-              if (viewport->IsRefreshEvent(event))
-                viewport->Paint();
-            }
-          }
-        }
-      }
-      // Small delay to avoid using 100% of CPU
-      SDL_Delay(1);
-    }
-  }
 }