c - 如何在 mu C 项目中获取 GL 类型或确保浮点/双精度类型的位数?
问题描述
我想写一个渲染器,我想支持glTF文件格式。但是要这样做,我需要以某种方式定义具有精确位数的类型。为了实现这一点,我想出了两个解决方案:
- 我可以自己包含
stdint.h
和 typedef 整数 gltypes,但是双精度和浮点数呢?如何确保它们具有精确的(64 位和 32 位)位数并且实际上是 IEEE-754 浮点值?如何至少为此执行编译时检查? - 我可以包含定义所有类型的openGL(很可能是gl.h)的某些部分。这部分以另一种方式使我感到困惑。当我查看 gl.h 文件时,typedefs 看起来像这样:
/*
* Datatypes
*/
typedef unsigned int GLenum;
typedef unsigned char GLboolean;
typedef unsigned int GLbitfield;
typedef void GLvoid;
typedef signed char GLbyte; /* 1-byte signed */
typedef short GLshort; /* 2-byte signed */
typedef int GLint; /* 4-byte signed */
typedef unsigned char GLubyte; /* 1-byte unsigned */
typedef unsigned short GLushort; /* 2-byte unsigned */
typedef unsigned int GLuint; /* 4-byte unsigned */
typedef int GLsizei; /* 4-byte signed */
typedef float GLfloat; /* single precision float */
typedef float GLclampf; /* single precision float in [0,1] */
typedef double GLdouble; /* double precision float */
typedef double GLclampd; /* double precision float in [0,1] */
而且,如您所见,这些 typedef 并不为每种类型使用精确的位数(因为像 int 这样的类型可能有 16位或更多位),尽管docs中有什么内容。我应该走哪条路?
解决方案
推荐阅读
- python - Groupby 计数打印到单个行
- string - 最小添加以使由 '{'、'}'、'['、']'、'('、')' 组成的括号字符串有效
- javascript - 如何减少和增加reactJS中复选框的值?
- r - 将摘要“n”从一个数据帧添加到另一个数据帧(tidyverse)
- traveling-salesman - 旅行推销员替代 - 如果城市之间的距离都相同,人们将如何编码?
- python - python中的单独地理坐标
- javascript - 使用 Discord.js 将自定义表情符号发送到另一台服务器
- kubernetes - GKE 就绪/活跃性随机失败
- python - 为什么我无法使用正则表达式从该日志数据中提取数据?
- python - Google Classroom Python 也制作返还课程材料