2010-01-13 102 views
0

我有2个单独的渲染器,一个用于1.1和另一个用于2.2OpenGLES 1.1和2.0,同时支持

我有一堆Item S的保持的图像信息,并通过我使用取其渲染器产生的纹理处理。

Items只是愚蠢的对象,我不想在其中引入任何OpenGL特定的功能。问题是,我需要在某处存储纹理句柄。我想将它存储在每个Item内,但是一个句柄的类型为GLuint

如果我使用GLuint它意味着包括来自ES1 /或来自ES2 /的gl.h。现在,它们都是无符号整型的typedef'd ...可以使用unsigned int吗?这似乎是不好的做法...例如,如果OpenGL 3.0出来和GLuint是完全不同的,Item将被打破。

任何想法?

感谢您的阅读。

回答

1

后续版本的OpenGL是其以前版本的超集。 OpenGL特定类型意味着隐藏底层系统,但在各个版本之间保持一致。例如,如果您将int设置为16位,则GLuint可能定义为无符号长整数

因此我会说:走与最小公分母(ES1.1)。

+0

感谢您提供简洁而有用的答案 – Sam 2010-01-14 10:00:09

+0

OpenGL ES 2.0不是OpenGL ES 1.1的简单超集 - 因为它更具可编程性,它需要更多的设置才能获得默认的1.1行为。 – andrewmu 2010-10-27 08:23:29