Opengl ES 2.0:获取纹理大小和其他信息

xce*_*sco 5 java android opengl-es opengl-es-2.0

问题的背景是Android环境中的OpenGL ES 2.0.我有一个纹理.没有问题显示或使用它.

是否有一种方法可以从其绑定ID开始知道它的宽度和高度以及其他信息(如内部格式)?

我需要在不知道纹理大小的情况下将纹理保存到位图.

Ret*_*adi 8

不在ES 2.0中.实际上,功能不存在是令人惊讶的.您可以获得渲染缓冲区的大小,但不能获得纹理的大小,这似乎不一致.

唯一可用的是你可以得到的值glGetTexParameteriv(),它们是纹理的参数FILTERWRAP参数.

它仍然不在ES 3.0中.仅glGetTexLevelParameteriv()添加了ES 3.1,您可以访问所需的所有值.例如,获取当前绑定纹理的宽度和高度:

int[] texDims = new int[2];
GLES31.glGetTexLevelParameteriv(GLES31.GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, texDims, 0);
GLES31.glGetTexLevelParameteriv(GLES31.GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, texDims, 1);
Run Code Online (Sandbox Code Playgroud)