Browse Source

Platform: disallow calling framebufferSize() / windowSize() w/o a window.

pull/280/head
Vladimír Vondruš 8 years ago
parent
commit
d21c05f6f3
  1. 2
      src/Magnum/Platform/GlfwApplication.cpp
  2. 4
      src/Magnum/Platform/Sdl2Application.cpp
  3. 4
      src/Magnum/Platform/Sdl2Application.h

2
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;

4
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;

4
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<Platform::GLContext> _context;
#endif

Loading…
Cancel
Save