OpenGL定义了自己的数据类型。例如GLint或GLsizei。而且它们在不同的平台上是不同的。我在哪里可以找到类型的限制?
编辑
添加language标签以澄清域。我知道GL*类型将被解析为基本的C类型,但它可以因平台而异。(实际上这就是它们被定义的原因。)即使是基本的C类型也不能保证在任何平台上都是固定大小的。这就是limit.h存在的原因,我希望GL*类型本身也有类似的东西,因为它们在语义上与C类型不同,这意味着它们需要自己的限制定义。
发布于 2012-08-18 04:02:53
假设您使用的是C++,您可以使用std::numeric_limits<GLint>::max()为一个类型或该类型的任何其他属性获取正确的最大值。
该规范并不保证GLint实际上是任何平台上的int,而只是保证它是一个至少32位宽的有符号整数类型,因此MAX_INT是int实际上是32位宽的平台上的下限(例如x86_64)。
发布于 2012-08-18 03:43:09
编辑:请注意,正如pmr从GLsizei规范中指出的那样,不能保证 GLint GLsizei或OpenGL 将始终被定义为 int**.** GLint ,而OpenGL仅保证位于<>e224 32位。
来自GL/gl.h
typedef int GLint;
typedef int GLsizei;这些类型是int类型,并根据平台调整大小。要获得最小值和最大值,可以使用INT_MIN和INT_MAX,它们可以在limits.h中找到(假设C )。
https://stackoverflow.com/questions/12012070
复制相似问题