根据OpenGL文档,这是合法的:
http://www.opengl.org/sdk/docs/man/xhtml/glScissor.xml
“和glScissor(0,0,0,0)不允许修改任何像素 窗口。“
...但是当我在iOS 6上执行此操作时,它会触发可怕的“PowerVR SGX芯片崩溃”:
gpus_ReturnGuiltyForHardwareRestart()
在iOS 5.x上,我没有崩溃(更新:我刚刚发现当从5移动到6时我也改变了我的动画计数器,从零开始而不是一个,所以很可能我遇到了同样的崩溃iOS 5) - 但是,这是因为这是一个iOS 6的错误,还是因为iOS 6改变了代码的时间,我无法分辨。很容易就是在iOS 5中我从未提交过0,0,0,0,而是提交了0,0,0,1作为我的第一个调用(剪刀是动画帧到帧)。
更新:高度可以为零,如果宽度为0,PowerVR只会崩溃。
x,y,(width == 0)? 1:宽度,高度 - 永远不会崩溃 x,y,width,(height == 0?1:height - 每当width == 0
时崩溃注意:我已经检查,断言并使用记录来证明宽度和高度永远不会小于零(这是我第一次想到的!)
更多信息,可能相关(显然导致以前的Apple OpenGL驱动程序出现问题):
我正在使用多个FBO,我为每一帧做了:
答案 0 :(得分:0)
我刚试过,似乎按照我的预期工作。
glEnable(GL_SCISSOR_TEST);
glScissor(0, 0, 0, 0);
...导致iPhone 5上的iOS 6.1.4完全没有呈现。使用非零大小的渲染也是如此。
崩溃可能与某些与我不同的设置有关。我是从GLKView
渲染的。如果您需要更多信息,请告诉我们。例如,我可以试用iOS 7设备。