From e87bdb8a955dd551cd936220fd3dbfa61fec6eb7 Mon Sep 17 00:00:00 2001 From: Edward Rudd Date: Tue, 31 Dec 2013 19:56:20 -0500 Subject: [PATCH] cleaner approach to handling the viewport bug --- src/glstate.h | 4 ++++ src/graphics.cpp | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/glstate.h b/src/glstate.h index bb1566f..9ef66de 100644 --- a/src/glstate.h +++ b/src/glstate.h @@ -52,6 +52,10 @@ struct GLProperty set(value); } + void refresh() + { + apply(current); + } private: virtual void apply(const T &value) = 0; diff --git a/src/graphics.cpp b/src/graphics.cpp index a1875b1..9325c11 100644 --- a/src/graphics.cpp +++ b/src/graphics.cpp @@ -469,7 +469,8 @@ struct GraphicsPrivate { if (threadData->windowSizeMsg.pollChange(&winSize.x, &winSize.y)) { - glState.viewport.init(IntRect(0, 0, winSize.x, winSize.y)); + // some GL drivers change the viewport on window resize + glState.viewport.refresh(); recalculateScreenSize(); screen.setScreenSize(winSize.x, winSize.y); updateScreenResoRatio();