我有2个独立的渲染器,一个用于1.1,另一个用于2.2
我有一堆Item
来保存图像信息和由我正在使用的任何渲染器生成的纹理句柄。
Items
只是愚蠢的对象,我不想在其中引入任何OpenGL特定功能。问题是,我需要将纹理句柄存储在某处。我想将它存储在每个Item
中,但句柄的类型为GLuint
。
如果我使用GLuint
,则意味着包括来自ES1 /或ES2 /的gl.h。现在它们都是无符号整数的typedef ...可以使用unsigned int吗?这似乎是不好的做法...例如,如果OpenGL 3.0问世并且GLuint完全不同,那么Item
就会被打破。
有什么想法吗?
感谢阅读。
答案 0 :(得分:1)
OpenGL的后续版本是其先前版本的超集。 OpenGL特定类型旨在隐藏底层系统,但在不同版本之间保持一致。例如,如果您将 int 作为16位,则可以将GLuint定义为 unsigned long 。
因此我会说:用最小的公分(ES1.1)去。