查看托管在GitHub 上的 Sascha Willem 的 C++ Vulkan 演示,我注意到一些函数返回了 Datatype VkBool32
。
当我注意到 Line 时,我很好奇为什么 Khronos 没有使用普通的 bool
typedef uint32_t VkBool32;
在 vulkan.h. uint32_t 定义为
typedef unsigned int uint32_t;
在 stdint.h 中。
我的问题是,如果标准 Bool 只需一个字节就可以完成工作,为什么丢弃 3 个字节有意义?我的小 Recherche 表明几乎没有性能差异(请参阅哪个更快:if (bool) 或 if(int)?),并且 Khronos 自己说他们希望最大限度地减少兼容性问题(在这种情况下,旧 C 没有原始布尔类型)以专注于现代代码。
(请参阅从此处获取的 Trevett 的引述)
彻底的重新设计,我们不向后兼容