我正在开发一个游戏引擎,而Texture类中的一个函数应该是创建一个具有指定宽度,高度和像素格式的空白纹理。
我知道如何创建纹理以及所有这些,我也知道我可以使用glTexImage2d格式化它,并将null作为数据。令我恼火的是,我必须告诉openGL我的数据格式(即使它为空)这意味着我必须编写一个函数将PIXEL_INTERNAL_FORMAT枚举转换为PIXEL_FORMAT和PIXEL_TYPE。
如何让opengl仅根据PIXEL_INTERNAL_FORMAT分配内存?
答案 0 :(得分:0)
PIXEL_FORMAT
和PIXEL_TYPE
不应与PIXEL_INTERNAL_FORMAT
匹配。它们应该描述您传入的数据,因此OpenGL可以在必要时进行转换。如果没有传入数据,则不会进行转换。
因此,当数据指针为空时(假设您没有绑定VBO),可以对这两个参数使用任何合法值。