diff --git a/doomsday/libgui/include/de/gui/glstate.h b/doomsday/libgui/include/de/gui/glstate.h index 6145805291..94afdaf264 100644 --- a/doomsday/libgui/include/de/gui/glstate.h +++ b/doomsday/libgui/include/de/gui/glstate.h @@ -157,6 +157,7 @@ class LIBGUI_PUBLIC GLState gl::ColorMask colorMask() const; GLTarget &target() const; Rectangleui viewport() const; + Rectanglef normalizedViewport() const; bool scissor() const; Rectangleui scissorRect() const; diff --git a/doomsday/libgui/src/glstate.cpp b/doomsday/libgui/src/glstate.cpp index 22acf202f7..9ba4e9dbf6 100644 --- a/doomsday/libgui/src/glstate.cpp +++ b/doomsday/libgui/src/glstate.cpp @@ -559,6 +559,16 @@ Rectangleui GLState::viewport() const d->props[ViewportHeight]); } +Rectanglef GLState::normalizedViewport() const +{ + GLTarget::Size const size = target().size(); + Rectangleui const vp = viewport(); + return Rectanglef(float(vp.left()) / float(size.x), + float(vp.top()) / float(size.y), + float(vp.width()) / float(size.x), + float(vp.height()) / float(size.y)); +} + bool GLState::scissor() const { return d->props.asBool(Scissor);