为什么这个帧缓冲不完整? (EXT_framebuffer_object)

时间:2015-12-31 05:36:06

标签: c++ opengl framebuffer

这段代码适用于我的花哨的半新Nvidia计算机,但是当使用带有可能已有几年历史的驱动程序的英特尔GPU运行时,帧缓冲不完整:

GLuint fbo = 0;
glGenFramebuffersEXT( 1, &fbo );

GLuint tex = 0;
glGenTextures( 1, &tex );
glBindTexture( GL_TEXTURE_2D, tex );
glTexImage2D( GL_TEXTURE_2D, 0, GL_RGB, 320, 240, 0, GL_RGB, GL_UNSIGNED_BYTE, nullptr );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );

glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, fbo );
glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, tex, 0 );

GLenum attachment = GL_COLOR_ATTACHMENT0_EXT;
glDrawBuffers( 1, &attachment );

GLenum status = glCheckFramebufferStatusEXT( GL_FRAMEBUFFER_EXT );
// status is GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT

英特尔显然支持此扩展程序( GLEW_EXT_framebuffer_object true )。它的版本字符串是" 2.1.0 - Build 8.15.10.2086"。

是驱动程序错误,还是我做错了什么?除了告诉人们更新他们的司机或购买更好的东西之外,我能做些什么呢?

0 个答案:

没有答案