qt中如何获取视口大小

M_g*_*bal -2 opengl qt

如何在qt opengl中获取视口的大小(以像素为单位)并将其转换为Vec2f?我的着色器需要它。

我知道 getWindowSize()。

And*_*man 5

与在任何其他框架中获取视口大小的方式相同... GLint vp [4]; glGetIntegerv (GL_VIEWPORT, vp);请注意,这将返回一个包含 4 个参数的整数数组 - 与您传​​递给 的参数相同glViewport (...)

好的软件会以这样的方式编写,您不需要向 OpenGL 状态机询问此信息,可能是通过将视口大小保留为缓存的本地状态。但除此之外,这是了解视口大小的唯一方法。这是因为它与您的窗口大小无关,因此从 Qt 中了解窗口的大小根本无法帮助您解决此问题。