Mercurial > hg > orthanc-stone
diff OrthancStone/Sources/Viewport/SdlViewport.cpp @ 1576:92fca2b3ba3d
sanitizing the handling of canvas size
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 24 Sep 2020 16:40:30 +0200 |
parents | 85e117739eca |
children |
line wrap: on
line diff
--- a/OrthancStone/Sources/Viewport/SdlViewport.cpp Wed Sep 23 17:25:25 2020 +0200 +++ b/OrthancStone/Sources/Viewport/SdlViewport.cpp Thu Sep 24 16:40:30 2020 +0200 @@ -52,6 +52,7 @@ compositor_.reset(compositor); } + SdlViewport::SdlViewport() { refreshEvent_ = SDL_RegisterEvents(1); @@ -76,6 +77,14 @@ } + void SdlViewport::UpdateSize(unsigned int width, unsigned int height) + { + SdlLock lock(*this); + lock.GetCompositor().SetCanvasSize(width, height); + lock.Invalidate(); + } + + SdlOpenGLViewport::SdlOpenGLViewport(const std::string& title, unsigned int width, unsigned int height, @@ -85,6 +94,13 @@ AcquireCompositor(new OpenGLCompositor(context_)); // (*) } + + void SdlOpenGLViewport::RefreshCanvasSize() + { + UpdateSize(context_.GetCanvasWidth(), context_.GetCanvasHeight()); + } + + boost::shared_ptr<SdlOpenGLViewport> SdlOpenGLViewport::Create( const std::string& title, unsigned int width, @@ -120,14 +136,6 @@ } - void SdlOpenGLViewport::UpdateSize(unsigned int width, unsigned int height) - { - // nothing to do in OpenGL, the OpenGLCompositor::UpdateSize will be called automatically - SdlLock lock(*this); - lock.Invalidate(); - } - - void SdlOpenGLViewport::ToggleMaximize() { // No need to call "Invalidate()" here, as "UpdateSize()" will @@ -138,6 +146,11 @@ + void SdlCairoViewport::RefreshCanvasSize() + { + UpdateSize(window_.GetWidth(), window_.GetHeight()); + } + SdlCairoViewport::SdlCairoViewport(const char* title, unsigned int width, unsigned int height, @@ -177,15 +190,6 @@ } - void SdlCairoViewport::UpdateSize(unsigned int width, - unsigned int height) - { - SdlLock lock(*this); - dynamic_cast<CairoCompositor&>(lock.GetCompositor()).UpdateSize(width, height); - lock.Invalidate(); - } - - void SdlCairoViewport::ToggleMaximize() { // No need to call "Invalidate()" here, as "UpdateSize()" will