我在OpenGL中查询GL_TYPE,并将十六进制值报告为整数as it should。
例如:0x1406是#define' d作为GL_FLOAT但是从OpenGL以整数形式给我作为5126。
不幸的是,OpenGL并不仅仅返回类型,它也不会只接受整数(读取:十六进制)值。它显然需要在使用之前以0x为前缀。
我试图为自己保存一个开关/机箱,而是在飞行中投射/转换,但我没有看到另一种方式。我还有其他选择吗?请不要提升。
答案 0 :(得分:4)
目前还不清楚什么样的转换"你要记住:0x1406等于5126.它们只是在源代码中编写相同数字的不同方式,编译器将它们转换为在运行时使用的二进制形式。
您应该能够使用==
运算符将glGetProgramResource
的结果与GL_FLOAT
之类的常量进行比较,无论该常量是否定义为0x1406或5126源代码。