ARM Community: FBO support in linux OpenGLES2 emulator - ARM Community

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

FBO support in linux OpenGLES2 emulator

#1 User is offline   Siv 

  • Member
  • Pip
  • Group: Members
  • Posts: 1
  • Joined: 06-July 10

Posted 06 July 2010 - 12:17 PM

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
0

#2 User is offline   KarthikH 

  • Moderator
  • Pip
  • Group: Moderators
  • Posts: 27
  • Joined: 14-April 10

Posted 07 July 2010 - 08:54 AM

View PostSiv, 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


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.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic