0

当使用空指针调用glTexImage*仅分配纹理但不指定任何数据时,是否使用了像素格式参数(format以及type来自手册页)?我在手册页中没有找到任何明确的解释。

我认为它们实际上并没有被使用,但是它们是否完全被忽略了,以至于我可以将废话(例如零)传递给它们,还是我必须以某种方式指定一些有意义的东西?如果是后者,它们是否会根据内部格式受到任何类型的约束,或者我可以传递任何有效的常量并让它工作,就像GL_RGBA我正在创建具有GL_DEPTH_COMPONENT内部格式的纹理一样?

4

1 回答 1

3

GL_INVALID_ENUM如果 type 不是类型常量,则生成。

GL_INVALID_OPERATION如果 internalFormat 是GL_DEPTH_COMPONENTDEPTH_COMPONENT16GL_DEPTH_COMPONENT24GL_DEPTH_COMPONENT32F, 并且 format 不是 ,则生成GL_DEPTH_COMPONENT

所以是的,您仍然必须指定正确的值。即使某些实现会忽略它,其他实现也可能会发出错误。

于 2013-10-31T08:37:18.603 回答