0
我下载了这个苹果示例代码GLEssentials sample code。我想用深度缓冲区执行一些实验,所以起初我决定检查BUFFER_BITS。OpenGLES 2.0错误的深度缓冲位
我添加下一个代码到OpenGLRenderer.m在-initWithDefaultFBO方法:
// code from sample
NSLog(@"%s %s\n", glGetString(GL_RENDERER), glGetString(GL_VERSION));
// buffer bits check
GLint depthBits;
glGetIntegerv(GL_DEPTH_BITS, &depthBits);
printf("depthBits: %d\n", depthBits);
我有下一输出:
GLEssentials[3630:112826] Apple Software Renderer OpenGL ES 2.0 APPLE-12.4.2
depthBits: 24
但在ES2Renderer.m我看到下一行:
// using 16-bit depth buffer
glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, backingWidth, backingHeight);
它为什么发生?它是错误吗?
PS:我只在iOS模拟器中测试过,因为我没有iOS设备。
感谢OpenGLES链接规范,我完全忘了它。 – frankWhite