Hi
I am trying to use the frame buffer object in the linux opengles2 emulator .It is always returning GL_FRAMEBUFFER_UNSUPPORTED for glCheckFramebufferStatus.
Is it supported or not ?
GLuint fBuffer,fColorRenderBuffer,fDepthRenderBuffer,fStencilRenderBuffer;
GL_CHECK(glGenFramebuffers(1, &fBuffer));
GL_CHECK(glGenRenderbuffers( 1, &fColorRenderBuffer ));
GL_CHECK(glGenRenderbuffers( 1, &fDepthRenderBuffer ));
GL_CHECK(glGenRenderbuffers( 1, &fStencilRenderBuffer ));
GL_CHECK(glBindFramebuffer(GL_FRAMEBUFFER, fBuffer));
GL_CHECK(glBindRenderbuffer(GL_RENDERBUFFER, fColorRenderBuffer));
GL_CHECK(glRenderbufferStorage(GL_RENDERBUFFER,GL_RGBA4,256,128));
GL_CHECK(glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, fColorRenderBuffer));
GL_CHECK(glBindRenderbuffer(GL_RENDERBUFFER, fDepthRenderBuffer));
GL_CHECK(glRenderbufferStorage( GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, 256, 128));
GL_CHECK(glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, fDepthRenderBuffer));
GL_CHECK(glBindRenderbuffer(GL_RENDERBUFFER, fStencilRenderBuffer));
GL_CHECK(glRenderbufferStorage( GL_RENDERBUFFER, GL_STENCIL_INDEX8, 256, 128));
GL_CHECK(glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, fStencilRenderBuffer));
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, fBuffer);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, fDepthRenderBuffer);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, fStencilRenderBuffer);
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
if ( status != GL_FRAMEBUFFER_COMPLETE )
{
printf("FBO incomplete 0x %x\n",status);
}
Nvidia Geforce7950 + Ubuntu
Page 1 of 1
FBO support in linux OpenGLES2 emulator
#2
Posted 07 July 2010 - 08:54 AM
Siv, on Jul 6 2010, 01:17 PM, said:
Hi
I am trying to use the frame buffer object in the linux opengles2 emulator .It is always returning GL_FRAMEBUFFER_UNSUPPORTED for glCheckFramebufferStatus.
Is it supported or not ?
GLuint fBuffer,fColorRenderBuffer,fDepthRenderBuffer,fStencilRenderBuffer;
GL_CHECK(glGenFramebuffers(1, &fBuffer));
GL_CHECK(glGenRenderbuffers( 1, &fColorRenderBuffer ));
GL_CHECK(glGenRenderbuffers( 1, &fDepthRenderBuffer ));
GL_CHECK(glGenRenderbuffers( 1, &fStencilRenderBuffer ));
GL_CHECK(glBindFramebuffer(GL_FRAMEBUFFER, fBuffer));
GL_CHECK(glBindRenderbuffer(GL_RENDERBUFFER, fColorRenderBuffer));
GL_CHECK(glRenderbufferStorage(GL_RENDERBUFFER,GL_RGBA4,256,128));
GL_CHECK(glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, fColorRenderBuffer));
GL_CHECK(glBindRenderbuffer(GL_RENDERBUFFER, fDepthRenderBuffer));
GL_CHECK(glRenderbufferStorage( GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, 256, 128));
GL_CHECK(glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, fDepthRenderBuffer));
GL_CHECK(glBindRenderbuffer(GL_RENDERBUFFER, fStencilRenderBuffer));
GL_CHECK(glRenderbufferStorage( GL_RENDERBUFFER, GL_STENCIL_INDEX8, 256, 128));
GL_CHECK(glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, fStencilRenderBuffer));
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, fBuffer);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, fDepthRenderBuffer);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, fStencilRenderBuffer);
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
if ( status != GL_FRAMEBUFFER_COMPLETE )
{
printf("FBO incomplete 0x %x\n",status);
}
Nvidia Geforce7950 + Ubuntu
I am trying to use the frame buffer object in the linux opengles2 emulator .It is always returning GL_FRAMEBUFFER_UNSUPPORTED for glCheckFramebufferStatus.
Is it supported or not ?
GLuint fBuffer,fColorRenderBuffer,fDepthRenderBuffer,fStencilRenderBuffer;
GL_CHECK(glGenFramebuffers(1, &fBuffer));
GL_CHECK(glGenRenderbuffers( 1, &fColorRenderBuffer ));
GL_CHECK(glGenRenderbuffers( 1, &fDepthRenderBuffer ));
GL_CHECK(glGenRenderbuffers( 1, &fStencilRenderBuffer ));
GL_CHECK(glBindFramebuffer(GL_FRAMEBUFFER, fBuffer));
GL_CHECK(glBindRenderbuffer(GL_RENDERBUFFER, fColorRenderBuffer));
GL_CHECK(glRenderbufferStorage(GL_RENDERBUFFER,GL_RGBA4,256,128));
GL_CHECK(glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, fColorRenderBuffer));
GL_CHECK(glBindRenderbuffer(GL_RENDERBUFFER, fDepthRenderBuffer));
GL_CHECK(glRenderbufferStorage( GL_RENDERBUFFER, GL_DEPTH_COMPONENT16, 256, 128));
GL_CHECK(glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, fDepthRenderBuffer));
GL_CHECK(glBindRenderbuffer(GL_RENDERBUFFER, fStencilRenderBuffer));
GL_CHECK(glRenderbufferStorage( GL_RENDERBUFFER, GL_STENCIL_INDEX8, 256, 128));
GL_CHECK(glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, fStencilRenderBuffer));
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, fBuffer);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERBUFFER, fDepthRenderBuffer);
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, fStencilRenderBuffer);
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
if ( status != GL_FRAMEBUFFER_COMPLETE )
{
printf("FBO incomplete 0x %x\n",status);
}
Nvidia Geforce7950 + Ubuntu
Hi,
Thanks for your post. We don't support render buffer objects of type GL_STENCIL_ATTACHEMENT yet. This is the reason we return GL_FRAMEBUFFER_UNSUPPORTED. The above code snippet should work when the following line is commented.
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERBUFFER, fStencilRenderBuffer);
Hope that helps.
Share this topic:
Page 1 of 1
Share this 












