Mercurial > hg > orthanc-stone
comparison Framework/Viewport/SdlViewport.cpp @ 1391:32272ecfc6c2
Drilled a hole through the abstractions to be able to match
an SdlViewport with its SDL window ID to support dispatching
event loop SDL events as viewport/controller/compositor
method calls.
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Tue, 28 Apr 2020 13:26:41 +0200 |
parents | be614695747d |
children | 30deba7bc8e2 |
comparison
equal
deleted
inserted
replaced
1390:57e06087d357 | 1391:32272ecfc6c2 |
---|---|
93 boost::shared_ptr<SdlOpenGLViewport>(new SdlOpenGLViewport(title, width, height, allowDpiScaling)); | 93 boost::shared_ptr<SdlOpenGLViewport>(new SdlOpenGLViewport(title, width, height, allowDpiScaling)); |
94 that->SdlViewport::PostConstructor(); | 94 that->SdlViewport::PostConstructor(); |
95 return that; | 95 return that; |
96 } | 96 } |
97 | 97 |
98 uint32_t SdlOpenGLViewport::GetSdlWindowId() | |
99 { | |
100 SdlWindow& sdlWindowWrapper = context_.GetWindow(); | |
101 SDL_Window* sdlWindow = sdlWindowWrapper.GetObject(); | |
102 Uint32 sdlWindowId = SDL_GetWindowID(sdlWindow); | |
103 return sdlWindowId; | |
104 } | |
105 | |
98 SdlOpenGLViewport::~SdlOpenGLViewport() | 106 SdlOpenGLViewport::~SdlOpenGLViewport() |
99 { | 107 { |
100 // Make sure that the "OpenGLCompositor" is destroyed BEFORE the | 108 // Make sure that the "OpenGLCompositor" is destroyed BEFORE the |
101 // "OpenGLContext" it references (*) | 109 // "OpenGLContext" it references (*) |
102 ClearCompositor(); | 110 ClearCompositor(); |
144 { | 152 { |
145 SDL_FreeSurface(sdlSurface_); | 153 SDL_FreeSurface(sdlSurface_); |
146 } | 154 } |
147 } | 155 } |
148 | 156 |
157 uint32_t SdlCairoViewport::GetSdlWindowId() | |
158 { | |
159 SDL_Window* sdlWindow = window_.GetObject(); | |
160 Uint32 sdlWindowId = SDL_GetWindowID(sdlWindow); | |
161 return sdlWindowId; | |
162 } | |
163 | |
149 void SdlCairoViewport::Paint() | 164 void SdlCairoViewport::Paint() |
150 { | 165 { |
151 SdlLock lock(*this); | 166 SdlLock lock(*this); |
152 | 167 |
153 lock.GetCompositor().Refresh(lock.GetController().GetScene()); | 168 lock.GetCompositor().Refresh(lock.GetController().GetScene()); |