OpenGL类型GLint、Glbyte..到C++int32_t,int8_t..映射
OpenGL types GLint, Glbyte... to C++ int32_t, int8_t... mapping
OpenGL规范规定所有类型都有固定的位深度。正如我所知,c++规范并没有规定比特深度。我们只知道一件事:像int32_t、int16_t这样的c++类型,。。。包含所需的字节数,但不包含位。我们如何安全地使用这些类型?我们如何确定OpenGL类型的"无符号整数"在二进制表示级别上与uint32_t匹配?
我们只知道一件事:像int32_t、int16_t这样的c++类型,。。。包含所需的字节数,但不包含位。
那根本不是真的。C++标准引入的C标准规定:
typedef名称intN_t指定一个带符号的整数类型,宽度N,没有填充位。。。
N是位的数目,而不是字节的数目。
OpenGL标准类似地用精确的位数而不是字节来定义其类型。两者都不允许填充。
因此,相对于uint32_t
,GLuint
的大小和格式必须相同。它们不必是完全相同的类型,但由于它们存储的值范围相同,大小也相同,因此它们之间的转换应该是无损的。
所以现在还不清楚你关心的是什么。
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 将函数类成员映射到类本身内部
- 如何在 C# 中映射双 C 结构指针?
- 如何在C++中使用结构生成映射
- 使用std::函数映射对象方法
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- C++映射分割错误(核心转储)
- 内联映射初始化的动态atexit析构函数崩溃
- 使用"std::unordereded_map"映射到"std::list"对象
- 如何从多映射中删除特定的重复项
- 在未初始化映射的情况下,将值插入到映射的映射中
- QT通过C++添加映射QML项目
- 在c++中访问int到类对象的映射时出错
- 在C++中搜索嵌套多映射值
- 错误处理.将系统错误代码映射到泛型
- C++匿名结构作为std::映射值
- 如何从存储在std::映射中的std::集中删除元素
- 递归无序映射
- 正在VS调试器中监视映射条目