Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GlgenTexture、glGenBuffers的有效索引范围_Java_Android_Opengl Es - Fatal编程技术网

Java GlgenTexture、glGenBuffers的有效索引范围

Java GlgenTexture、glGenBuffers的有效索引范围,java,android,opengl-es,Java,Android,Opengl Es,我正在用Android编写OpenGL 1.1 ES,即使用固定管道 我使用的是glGenTextures和glGenBuffers,它们在数组中返回索引(我一次只对一个纹理/缓冲区使用它们)。此索引的保证有效(和无效)范围是多少 根据经验,我观察到有效的指数是从1开始的,但文档中没有提到任何关于它的内容。值0是否保证无效 我需要它,因为有时我需要检查纹理/缓冲区是否已经加载。如果0是有效的,我需要将我的值初始化为-1(以便能够检测它们是否未初始化/卸载),但是如果0是无效的纹理/缓冲区名称,那

我正在用Android编写OpenGL 1.1 ES,即使用固定管道

我使用的是
glGenTextures
glGenBuffers
,它们在数组中返回索引(我一次只对一个纹理/缓冲区使用它们)。此索引的保证有效(和无效)范围是多少

根据经验,我观察到有效的指数是从1开始的,但文档中没有提到任何关于它的内容。值0是否保证无效

我需要它,因为有时我需要检查纹理/缓冲区是否已经加载。如果0是有效的,我需要将我的值初始化为-1(以便能够检测它们是否未初始化/卸载),但是如果0是无效的纹理/缓冲区名称,那么事情就更简单了

在Android中,填充了
int[]
,但在OpenGL ES API中,我看到有
GLUint
值。所以我担心(理论上)在我的Android程序中,即使初始化为-1也可能不正确,因为(理论上)uint可以返回0xFFFFFF


那么什么是有效范围,什么是无效范围/值,我可以确定它不代表有效的纹理/缓冲区名称(索引)?

如果您使用的是OpenGL ES 1.1,您可以使用
GLES11.glIsTexture(int)
检查纹理有效性。谢谢!根据glIsTexture(纹理)的描述,似乎零永远不是纹理名称:“如果纹理为零,或者是当前不是纹理名称的非零值,或者如果发生错误,glIsTexture返回GL_FALSE。”我想知道硬件缓冲区是否存在类似的函数(以了解是否也适用相同的规则)。是的,我找到了一个缓冲区。它的描述类似:“如果缓冲区为零,…”,即如果参数为0,它总是返回false。我认为这意味着我们可以100%确定零值永远不是有效的纹理名称或缓冲区对象名称,对吗?