如何同时使用glad.h和glew.h?
how to use glad.h and glew.h at the same time?
我的opengl版本是4.0,用的是glad3.3。
我想用glTexEnvi()
,但是只有glad4.6支持这个功能,我不能用。当我同时包含 glad.h 和 glew.h 时,出现错误 (error C1189:#error:gl.h included before glew.h
)。
那么如何同时使用 glad.h 和 glew.h 呢?还是有其他解决方案可以使用 glTexEnvi()
?
有人帮忙吗?
你不知道。 Glad and GLEW 都是 OpenGL 加载器。两者做同样的事情;它们提供 OpenGL 函数绑定。使用其中之一。
glTextEnv
is a legacy OpenGL function. It is only provided in an compatibility profile OpenGL Context(分别为 OpenGL 1.x 和 2.x)和 OpenGL ES 1.0.
因此 glTexEnv
在核心配置文件上下文、OpenGL ES 2.0 和 OpenGL 3.x 中不可用。
见OpenGL specification - Khronos OpenGL registry and OpenGL ES Specification - Khronos OpenGL ES Registry
您必须使用 兼容性 配置文件 OpenGL 3.3 上下文。确保生成 OpenGL 加载程序文件时配置文件类型为 "compatibility",然后定义 glTexEnvi
。
Glad 是加载程序生成器。您必须为您的目标环境指定 OpenGL (ES) 版本。 Glad 生成一个 API,它为指定环境分别提供了 OpenGL (ES) verison 的可用指令集。如果一条指令在头文件中没有"exist",那么指定的版本不支持它。
相比之下,GLEW 提供的所有 OpenGL 功能都在单个头文件中。您必须注意 OpenGL 上下文是否支持某个函数。
我的opengl版本是4.0,用的是glad3.3。
我想用glTexEnvi()
,但是只有glad4.6支持这个功能,我不能用。当我同时包含 glad.h 和 glew.h 时,出现错误 (error C1189:#error:gl.h included before glew.h
)。
那么如何同时使用 glad.h 和 glew.h 呢?还是有其他解决方案可以使用 glTexEnvi()
?
有人帮忙吗?
你不知道。 Glad and GLEW 都是 OpenGL 加载器。两者做同样的事情;它们提供 OpenGL 函数绑定。使用其中之一。
glTextEnv
is a legacy OpenGL function. It is only provided in an compatibility profile OpenGL Context(分别为 OpenGL 1.x 和 2.x)和 OpenGL ES 1.0.
因此 glTexEnv
在核心配置文件上下文、OpenGL ES 2.0 和 OpenGL 3.x 中不可用。
见OpenGL specification - Khronos OpenGL registry and OpenGL ES Specification - Khronos OpenGL ES Registry
您必须使用 兼容性 配置文件 OpenGL 3.3 上下文。确保生成 OpenGL 加载程序文件时配置文件类型为 "compatibility",然后定义 glTexEnvi
。
Glad 是加载程序生成器。您必须为您的目标环境指定 OpenGL (ES) 版本。 Glad 生成一个 API,它为指定环境分别提供了 OpenGL (ES) verison 的可用指令集。如果一条指令在头文件中没有"exist",那么指定的版本不支持它。
相比之下,GLEW 提供的所有 OpenGL 功能都在单个头文件中。您必须注意 OpenGL 上下文是否支持某个函数。