2012-11-07 8 views
0

:프레임 버퍼 개체가 Qt를 작동하지 4.8.1 나는 현재 내가 오류 다음 얻을 내 프로젝트를 컴파일 할 때 다음과 같은 호출</p> <pre><code>glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, scene_img, 0); </code></pre> <p>를 사용하여 Qt는에 OpenGL을 작업 및 프레임 버퍼 오브젝트를 만들려고 해요

Error: C2065: 'GL_FRAMEBUFFER_EXT' : undeclared identifier 

분명히 GL_FRAMEBUFFER_EXT라는 이름은 어디에서도 식별 할 수 없습니다. QtOpenGL, QGLShaderProgram 및 QGLFramebufferObject 가져 오기 시도했다. 여전히 같은 오류. ql.h를 살펴 보았습니다. 아직 운이 없습니다. 가져올 다른 것이 있습니까? 내 정상적인 QGLWidget은 FRAMEBUFFER 문제를 제외하고 문제없이 작동합니다. Btw은

: 윈도우 7

답변

2

trying to create a framebuffer object using following call

glFramebufferTexture2DEXT(

에서 작업 프레임 버퍼 오브젝트를 작성하지 않습니다. 텍스처를 색상 첨부로 지정합니다.

BTW의 EXT으로 끝나는 기능은 핵심 기능의 일부가 아닌 확장 기능입니다. 확장 프로그램은 일반적으로 EXT에서 ARB로 이동하여 핵심이 될 수 있지만 API에 대한 중요한 변경이 발생할 수 있습니다.

어쨌든 OpenGL-1.1 (Windows) 또는 OpenGL-1.2 (GLX)를 넘어서는 모든 것이 핵심 기능이 되더라도 메커니즘을 통해 액세스해야합니다.

가장 간단한 방법은 그것을 할 수 있습니다 :

  1. 다운로드 GLEW를 http://glew.sourceforge.net
  2. 에서
  3. 에 GLEW 라이브러리를 추가 (각) 컨텍스트 생성 한 후 #include <GL/glew.h>
  4. 전화 glewInit();#include <GL/gl.h>의 모든 발행 수를 교체 빌드 링커 설정.
+0

감사합니다. 나는 네가 한 모든 것을했다. 아니 내 애플 리케이션은 더 이상 불평하지 않지만 지금은 단순히 오류 반환 코드를 얻을. 뭔가 잘못되었거나 호환되지 않는 컴파일러가있는 것처럼 보입니다. – anopheles

+0

좋아, 나는 그것을 glewInit()의 호출로 좁혔다. 여러 뷰 (QGLWidget 하위 클래스) 및 모든 initializeGL() 호출에서 glewInit() 호출 해요. 잘못되었거나 glewInit()을 어떻게 사용해야합니까? – anopheles

+0

@ user1509533 : 예, 각 컨텍스트에 대해 glewInit을 호출해야합니다. 그래도 작동하지 않는다면, 각'paintGL'의 시작 부분에 glewInit()을 추가하십시오. 이 방법이 효과가 있으면 코드를 추가해야 효율적입니다. 그렇지 않으면 GLEW가 캐시를 사용하는 대신 모든 기능 포인터를 반복해서 다시로드합니다. – datenwolf