https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glViewport.xhtml
名称
glViewport ---- 设置视口。
原型
void glViewport(GLint x,
GLint y,
GLsizei width,
GLsizei height);
参数
x, y
指定矩形视口的左下角,像素单位。初始值为 (0, 0)。
width, height
指定视口的宽和高。当 GL 上下文对象第一次附加到一个 window 窗口时,宽 和 高 都设置为 window 窗口的尺寸。
描述
glViewport 指定了 NDC(normalized device coordinates) 的x,y坐标如何仿射转换到 Window 的x, y。假设
(
x
n
d
,
y
n
d
)
(x_{nd},y_{nd})
(xnd,ynd) 是NDC坐标。Window 窗口坐标的
(
x
w
,
y
w
)
(x_w,y_w)
(xw,yw) 是以下面的计算方式:
x
w
=
(
x
n
d
+
1
)
(
w
i
d
t
h
2
)
+
x
x_w=(x_{nd}+1)(\frac{width}{2})+x
xw=(xnd+1)(2width)+x
y
w
=
(
y
n
d
+
1
)
(
h
e
i
g
h
t
2
)
+
y
y_w=(y_{nd}+1)(\frac{height}{2})+y
yw=(ynd+1)(2height)+y
视口的宽 和 高 默认是闲置在一个实现的范围。要查询这个范围,可以调用 glGet ,带上参数 GL_MAX_VIEWPORT_DIMS
。
错误
如果 width 或 height 为负数,则生成 GL_INVALID_VALUE
错误。