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();