对glPushAttrib和glPopAttrib的一点思考

 先把今天遇到的问题描述下吧,本来有两个影像图层,我对第一个图层设置了裁剪范围,然后再绘制第二个图层,此时第二个图层不显示,此问题仅出现在NVIDIA显卡上,AMD显卡正常,让我郁闷了好久。

 后来通过glPushAttrib和glPopAttrib解决了此问题,在渲染前调用glPushAttrib保存openGL属性状态信息,然后开始渲染,结束后调用glPopAttrib恢复之前的属性状态信息。

 为什么会这样?我的理解是在我渲染第一个图层的时候,openGL第一次保存了我设置的裁剪范围,我第二次渲染的时候第一次的裁剪范围没有清除,设置也无效,导致我还使用的是上一次的裁剪范围,使用glPushAttrib保存我设置裁剪范围之前的状态,绘制结束后又调用glPopAttrib恢复了之前的状态。


参考网址:点击打开链接

猜你喜欢

转载自blog.csdn.net/earlyAutumnOfRain/article/details/79233681