gpt4 book ai didi

class - 为什么有 GLint 和 GLfloat?

转载 作者:行者123 更新时间:2023-12-04 09:36:39 28 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Do I have to use the OpenGL data types (GLint, CLchar, ...) for a cross platform game?

(2 个回答)


6年前关闭。




我知道 Open GL 需要使用数字,但为什么不只使用常规的整数和浮点数或已经存在的包装类(无论哪个是整个 Open GL 世界很好地融合在一起所必需的)?除了名称和在 Open GL 中专门使用的名称之外是否有区别,或者它们几乎是相同的东西但名称不同?

最佳答案

因为 int 在 32 位系统上是 32 位(在这里过于简单化了),在 64 位系统上是 64 位 - 所以即使只是“一个 int”也不是一个普遍的概念。请记住,运行图形代码的硬件与您的 CPU 是不同的硬件,因此需要新的类型。通过使用自己的 typedef,OpenGL 可以确保在将数据发送到显卡时以正确的方式打包正确的位数。

可以使用抽象出“不同整数”的困惑的转换函数来做到这一点,但这会导致性能损失,当您谈论进出显卡的每个数字时,这通常是 Not Acceptable 。

tl; dr 使用“int”时,您在编写时要考虑到处理器的硬件。使用“GLInt”时,您在编写时要考虑到显卡的硬件。

编辑:正如评论中指出的,在 64 位处理器上,int出于兼容性原因,可以(并且可能会)是 32 位。从历史上看,通过 8、16 和 32 位硬件,它一直是处理器的 native 大小,但从技术上讲,它是编译器在创建机器代码时感觉使用的任何东西。 @Nicol Bolas 和 @Mark Dickinson 的 Prop

关于class - 为什么有 GLint 和 GLfloat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12326404/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com