comparison Applications/Sdl/SdlEngine.h @ 56:9e3c2e75b870 wasm

extremely simplified SDL engine
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 28 Apr 2017 21:46:41 +0200
parents c2dc924f1a63
children 81f73efd81a1
comparison
equal deleted inserted replaced
55:f0f354a97581 56:9e3c2e75b870
21 21
22 #pragma once 22 #pragma once
23 23
24 #if ORTHANC_ENABLE_SDL == 1 24 #if ORTHANC_ENABLE_SDL == 1
25 25
26 #include "SdlBuffering.h" 26 #include "SdlSurface.h"
27 #include "../BinarySemaphore.h"
28 #include "../BasicApplicationContext.h" 27 #include "../BasicApplicationContext.h"
29
30 #include <boost/thread.hpp>
31 28
32 namespace OrthancStone 29 namespace OrthancStone
33 { 30 {
34 class SdlEngine : public IViewport::IChangeObserver 31 class SdlEngine : public IViewport::IChangeObserver
35 { 32 {
36 private: 33 private:
37 SdlWindow& window_; 34 SdlWindow& window_;
38 BasicApplicationContext& context_; 35 BasicApplicationContext& context_;
39 SdlBuffering buffering_; 36 SdlSurface surface_;
40 boost::thread renderThread_;
41 bool continue_;
42 BinarySemaphore renderFrame_;
43 uint32_t refreshEvent_;
44 bool viewportChanged_; 37 bool viewportChanged_;
45
46 void RenderFrame();
47
48 static void RenderThread(SdlEngine* that);
49
50 static KeyboardModifiers GetKeyboardModifiers(const uint8_t* keyboardState,
51 const int scancodeCount);
52 38
53 void SetSize(BasicApplicationContext::ViewportLocker& locker, 39 void SetSize(BasicApplicationContext::ViewportLocker& locker,
54 unsigned int width, 40 unsigned int width,
55 unsigned int height); 41 unsigned int height);
42
43 void RenderFrame();
56 44
57 void Stop(); 45 static KeyboardModifiers GetKeyboardModifiers(const uint8_t* keyboardState,
58 46 const int scancodeCount);
59 void Refresh();
60 47
61 public: 48 public:
62 SdlEngine(SdlWindow& window, 49 SdlEngine(SdlWindow& window,
63 BasicApplicationContext& context); 50 BasicApplicationContext& context);
64 51