3

我正在玩一些旧的 OpenGL 代码,但我遇到了一些问题......

glGetTexParameterfv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &glW);
glGetTexParameterfv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &glH);

现在我是 OpenGL 的新手,但我猜这会抓住纹理的高度和宽度。问题是,OpenGLES 没有 GL_TEXTURE_WIDTH 或 HEIGHT。现在我知道每个人都会给出的第一个答案是“你需要自己管理这个”,但是,这是一个相当大的代码库,需要一些认真的时间来解决这个问题。

我的问题是...

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

4

1 回答 1

3

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

抛开明显的问题不谈,纹理大小并没有直接暴露。您可能会做的最好的事情是使用glTexSubImage检查GL_INVALID_VALUE来搜索大小 - 我对GLES 手册页的阅读是 width = height = 0 不是错误条件,因此您可以寻找最大的(x,y) 在没有实际上传任何数据的情况下被接受。

于 2013-04-16T16:24:19.173 回答