Opengl es OpenGLES:如何查找纹理大小

Opengl es OpenGLES:如何查找纹理大小,opengl-es,Opengl Es,我正在玩一些旧的OpenGL代码,我有一些问题与此 glGetTexParameterfv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &glW); glGetTexParameterfv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &glH); 现在我是OpenGL新手,但我猜这会抓住纹理的高度和宽度。问题是,OpenGLES没有GL_纹理_宽度或高度。现在我知道每个人都会给出的第一个答案是“你需要自己管理这个”,然而

我正在玩一些旧的OpenGL代码,我有一些问题与此

glGetTexParameterfv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &glW);
glGetTexParameterfv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &glH);
现在我是OpenGL新手,但我猜这会抓住纹理的高度和宽度。问题是,OpenGLES没有GL_纹理_宽度或高度。现在我知道每个人都会给出的第一个答案是“你需要自己管理这个”,然而,这是一个相当大的代码库,要想弄明白这一点需要一些认真的时间

我的问题是


如何在OpenGLES中获得纹理的宽度/高度?

明显的反应问题:为什么需要这些信息


撇开明显的问题不谈,纹理大小并没有直接暴露出来。您可能能做的最好的事情就是使用
glTexSubImage
检查
GL\u INVALID\u值
来搜索大小-我对的读数是宽度=高度=0不是一个错误条件,因此您可以在不实际上传任何数据的情况下搜索可接受的最大值(x,y)。

我感谢您的反应,我确信它是正确的,但我对所有这些(OpenGL,甚至是C)都比较陌生,这可能需要一些时间。因此,由于这将需要一些时间,我已经把它放在次要位置,直到我得到的港口工作,然后我会重新访问。我会尝试使用glTexSubImage,看看我是否能让它实现我想要的功能,再次感谢!唯一的问题是OpenGL有一个标准化的坐标系,所以一旦上传纹理,坐标总是在0到1之间。这并不是说你有时不想知道大小-例如,如果你写了一个高斯模糊,或任何其他内核卷积,作为一个着色器,你最终需要知道纹理的像素大小。因此,问题更多的是试图引出是否还有其他相关建议可以提供,而不是作为批评。只有在回过头来读的时候,我才意识到它看起来有多严厉。没问题,我听说过更严厉的话,而且很明显你很有学识,所以我可以接受一些批评:-)。事实上,我正试图通过prboom+将其移植到Android上的OpenGLS上,它在某个地方的gl渲染中。我认为它是一个精灵或基于图像的东西,所以我认为它需要信息来绘制正确的大小。我必须将其转换为glReadBuffer,所以我假设高度和宽度使用相同的值,但可能我在想一些错误的事情。