OpenGLコードでFBOを使用していますが、でコンパイルエラーが発生しGL\_FRAMEBUFFER\_INCOMPLETE\_DUPLICATE\_ATTACHMENT\_EXT
ます。これの原因は何ですか?どうすれば修正できますか?
Ash
質問する
559 次
1 に答える
4
このエラーの原因は、NVIDIAのglext.hの古いバージョンであり、この定義はまだ残っています。一方、 GLEWの最新バージョンはそうではありません。これにより、以前に作成したコードまたはWebから取得したコードでコンパイルエラーが発生します。
FBOのGL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT定義は、以前は仕様(したがってヘッダーファイル)に存在していました。しかし、後で削除されました。この理由は、FBO拡張仕様に記載されています(問題87を探してください)。
(87) What happens if a single image is attached more than once to a
framebuffer object?
RESOLVED: The value written to the pixel is undefined.
There used to be a rule in section 4.4.4.2 that resulted in
FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT if a single
image was attached more than once to a framebuffer object.
FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT 0x8CD8
* A single image is not attached more than once to the
framebuffer object.
{ FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT }
This rule was removed in version #117 of the
EXT_framebuffer_object specification after discussion at the
September 2005 ARB meeting. The rule essentially required an
O(n*lg(n)) search. Some implementations would not need to do that
search if the completeness rules did not require it. Instead,
language was added to section 4.10 which says the values
written to the framebuffer are undefined when this rule is
violated.
このエラーを修正するには、コードからGL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXTのすべての使用法を削除します。
セットアップでこれが不可能な場合は、次のようにglext.hまたはglew.hファイルにダミーの定義を追加します。
#define GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT 0x8CD8
于 2008-08-18T07:59:23.763 に答える