0

現在、Qt で OpenGL に取り組んでおり、次の呼び出しを使用してフレームバッファ オブジェクトを作成しようとしています。

 glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, scene_img, 0);

プロジェクトをコンパイルしようとすると、次のエラーが発生します。

Error: C2065: 'GL_FRAMEBUFFER_EXT' : undeclared identifier

どうやら GL_FRAMEBUFFER_EXT という名前はどこにも特定されていません。QtOpenGL、QGLShaderProgram、および QGLFramebufferObject をインポートしようとしましたが、うまくいきませんでした。それでも同じエラーです。私はql.hを見ましたが、まだ運がありません。他にインポートする必要があるものはありますか? FRAMEBUFFERの問題を除いて、私の通常のQGLWidgetは問題なく動作することに注意してください。

ところで:Windows 7での作業

4

1 に答える 1

2

次の呼び出しを使用してフレームバッファ オブジェクトを作成しようとしています

glFramebufferTexture2DEXT(

フレームバッファ オブジェクトを作成しません。カラーアタッチメントとしてテクスチャを割り当てます。

ところで、で終わるEXT関数は、コア機能の一部ではない拡張関数です。拡張機能は通常、EXT から ARB に移行し、コアになる可能性がありますが、API の微妙な変更から大幅な変更が発生する可能性があります。

とにかく、OpenGL-1.1 (Windows) または OpenGL-1.2 (GLX) を超えるものはすべて、コア機能になったとしても、拡張メカニズムを通じてアクセスする必要があります。

それを行う最も簡単な方法:

  1. http://glew.sourceforge.netから GLEW をダウンロードします。
  2. の出現箇所をすべて#include <GL/gl.h>置き換える#include <GL/glew.h>
  3. glewInit();(各) コンテキスト作成後に呼び出す
  4. GLEW ライブラリをビルド リンカー設定に追加します。
于 2012-11-07T18:10:17.697 に答える