glViewport(x(), y(), width(), height());
glDisable(GL_DEPTH_TEST);
glClearColor(0, 0.3, 0, 1);
glClear(GL_COLOR_BUFFER_BIT);
//... drawing commands
绘图正确地在
glViewport(x(), y(), width(), height())
设置的窗口的一小部分区域中进行但是,即使在调用glViewport()之后设置背景色,通过glClearColor()设置的背景色也会影响整个窗口。为什么?
最佳答案
在 glClear
方面:
但是, glViewport
指出
如果我正确阅读了引用文献,则是设计使然。 glViewport
仅偏移视口(viewport),这会影响对图元进行栅格化的绘制调用,而glClear
仅在整个帧缓冲区区域内起作用。
完整规范(4.3)似乎同意这一点: