不知何故,我无法在多个头文件中获取Glew。只是抱怨Gl已经在GLEW之前定义了。
简而言之,我有以下文件结构:
<GL/glew.h>
,<GL/freeglut.h>
和"SceneManager.h"
。"GameObject.h"
<GL/glew.h>
,<GL/freeglut.h>
。我确实知道freeglut是在glew面前,但我希望以GL_BGR
扩展名为例。
我如何获得GameObject中的
glew.h
?
答案 0 :(得分:0)
必须是glew.h
中的错误。
我使用GLee代替,没有这个问题。 GLee的测试如下:
#ifndef __glee_h_
#define __glee_h_
#ifdef __gl_h_
#error gl.h included before glee.h
#endif
#ifdef __glext_h_
#error glext.h included before glee.h
#endif
#ifdef __wglext_h_
#error wglext.h included before glee.h
#endif
#ifdef __glxext_h_
#error glxext.h included before glee.h
#endif
//...
#endif /* !defined(__glee_h_) */
因此,测试仅在第一次包含glee.h
时完成。
显然,glew不正确地在标题多个包含守卫之外进行了测试。
我第一次运行OpenGL跟踪(实际上是glslDevil)时从glew切换到GLee,并在启动时看到glew调用glGetString(GL_EXTENSIONS)
数百次。
答案 1 :(得分:0)
我现在做的有点不同了:
我创建了一个带有glew和freeglut的预编译头文件。它看起来像这样:
#ifndef _STDAFX_H_
#define _STDAFX_H_
#include <GL/glew.h>
#include <GL/freeglut.h>
#endif
有人可以确认这是否是一个可靠且知之甚少的方法吗?