首页 > 解决方案 > 查询一个GL_TEXTURE_EXTERNAL_OES的大小?

问题描述

在使用 NDK 相机界面时,我偶然发现了 SurfaceTexture 可以请求可以覆盖的 defaultSize 的问题。我想获得实际大小,但 SurfaceTexture 无法查询。所以我尝试了这个:

// this runs directly after SurfaceTexture.updateTexImage
GLfloat width, height;
glGetTexLevelParameterfv(GL_TEXTURE_EXTERNAL_OES, 0, GL_TEXTURE_WIDTH, &width);
glGetTexLevelParameterfv(GL_TEXTURE_EXTERNAL_OES, 0, GL_TEXTURE_HEIGHT, &height);

它在 Mali 系统上完美运行,但在 Adreno 系统上返回 GL_INVALID_ENUM。扩展的描述没有引入 GL_TEXTURE_EXTERNAL_OES 作为 GetTexLevelParameter 的有效参数,所以我假设我在 Mali 系统上很幸运。

有没有办法在 OpenGL ES (3.1) 中查询 GL_TEXTURE_EXTERNAL_OES 的大小?

标签: androidc++opengl-es

解决方案


推荐阅读