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