opengl定义自己的数据类型。例如GLint
或GLsizei
。它们在不同的平台上是不同的。在哪里可以找到类型的限制?
编辑
添加了语言标记以澄清域。我知道gl*类型将被分解为基本的c类型,但它可以根据平台的不同而有所不同。(事实上,这就是它们被定义的原因)甚至基本的C类型也不能保证在任何平台上都是固定大小的。这就是为什么limit.h
是存在的,并且我希望GL本身也有类似的东西用于GL*类型,因为它们在语义上与C类型不同,这意味着它们需要自己的极限定义。
最佳答案
假设您正在使用C++,可以使用std::numeric_limits<GLint>::max()
获取类型或任何其他类型的属性的正确最大值。
规范不能保证GLint
在任何平台上都是int
的,但只能保证它是一个至少32位宽的有符号整数类型,因此max_int是平台上的下限,其中int
实际上是32位宽(例如x86_64
)。