在多个文件中使用Glew

时间:2011-03-07 20:16:14

标签: c++ opengl freeglut glew

不知何故,我无法在多个头文件中获取Glew。只是抱怨Gl已经在GLEW之前定义了。

简而言之,我有以下文件结构:

  1. Program.h
    包括:<GL/glew.h><GL/freeglut.h>"SceneManager.h"
  2. SceneManager.h
    包括:"GameObject.h"
  3. GameObject.h
    包括:<GL/glew.h><GL/freeglut.h>
  4. 我确实知道freeglut是在glew面前,但我希望以GL_BGR扩展名为例。

      

    我如何获得GameObject中的glew.h

2 个答案:

答案 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

有人可以确认这是否是一个可靠且知之甚少的方法吗?