From d21c05f6f35e812d9b37a521b8a2118299f01cbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 26 Aug 2018 20:22:53 +0200 Subject: [PATCH] Platform: disallow calling framebufferSize() / windowSize() w/o a window. --- src/Magnum/Platform/GlfwApplication.cpp | 2 ++ src/Magnum/Platform/Sdl2Application.cpp | 4 ++++ src/Magnum/Platform/Sdl2Application.h | 4 ++-- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Magnum/Platform/GlfwApplication.cpp b/src/Magnum/Platform/GlfwApplication.cpp index c92881453..608bf5ee9 100644 --- a/src/Magnum/Platform/GlfwApplication.cpp +++ b/src/Magnum/Platform/GlfwApplication.cpp @@ -426,6 +426,8 @@ GlfwApplication::~GlfwApplication() { } Vector2i GlfwApplication::windowSize() const { + CORRADE_ASSERT(_window, "Platform::GlfwApplication::windowSize(): no window opened", {}); + Vector2i size; glfwGetWindowSize(_window, &size.x(), &size.y()); return size; diff --git a/src/Magnum/Platform/Sdl2Application.cpp b/src/Magnum/Platform/Sdl2Application.cpp index c1220144e..e6054dc72 100644 --- a/src/Magnum/Platform/Sdl2Application.cpp +++ b/src/Magnum/Platform/Sdl2Application.cpp @@ -514,8 +514,10 @@ bool Sdl2Application::tryCreate(const Configuration& configuration, const GLConf Vector2i Sdl2Application::windowSize() const { Vector2i size; #ifndef CORRADE_TARGET_EMSCRIPTEN + CORRADE_ASSERT(_window, "Platform::Sdl2Application::windowSize(): no window opened", {}); SDL_GetWindowSize(_window, &size.x(), &size.y()); #else + CORRADE_ASSERT(_glContext, "Platform::Sdl2Application::windowSize(): no window opened", {}); emscripten_get_canvas_element_size(nullptr, &size.x(), &size.y()); #endif return size; @@ -524,8 +526,10 @@ Vector2i Sdl2Application::windowSize() const { Vector2i Sdl2Application::framebufferSize() const { Vector2i size; #ifndef CORRADE_TARGET_EMSCRIPTEN + CORRADE_ASSERT(_window, "Platform::Sdl2Application::framebufferSize(): no window opened", {}); SDL_GL_GetDrawableSize(_window, &size.x(), &size.y()); #else + CORRADE_ASSERT(_glContext, "Platform::Sdl2Application::framebufferSize(): no window opened", {}); emscripten_get_canvas_element_size(nullptr, &size.x(), &size.y()); #endif return size; diff --git a/src/Magnum/Platform/Sdl2Application.h b/src/Magnum/Platform/Sdl2Application.h index 2c316aa4e..6f2ad544b 100644 --- a/src/Magnum/Platform/Sdl2Application.h +++ b/src/Magnum/Platform/Sdl2Application.h @@ -927,7 +927,7 @@ class Sdl2Application { Vector2 _dpiScaling; #ifndef CORRADE_TARGET_EMSCRIPTEN - SDL_Window* _window; + SDL_Window* _window{}; UnsignedInt _minimalLoopPeriod; #else Vector2i _lastKnownCanvasSize; @@ -937,7 +937,7 @@ class Sdl2Application { #ifndef CORRADE_TARGET_EMSCRIPTEN SDL_GLContext _glContext; #else - SDL_Surface* _glContext; + SDL_Surface* _glContext{}; #endif std::unique_ptr _context; #endif