As the title says, I'm getting screen full of red and black squares when I use RGBA16F in my framebuffer.
I've just finished with some features with an game engine, but it seems that my card cannot handle 16bit floating point values or is there workaround or am I missing something?
How stupid of me. Here's some code:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F_ARB, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
Texture
color.loadEmpty(width, height, AGE_CLAMP_TO_EDGE, AGE_RGBA16F, true);
depth.loadEmpty(width, height, AGE_CLAMP_TO_EDGE, AGE_DEPTH, true);
glViewport(0, 0, width, height);
glGenFramebuffersEXT(1, &fb);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fb);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, color.getTexid(), 0);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, depth.getTexid(), 0);
glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, depth.getTexid());
GLenum status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
Frame buffer creation, loadempty creates just an empty texture container.
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fb);
glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, rb);
glPushAttrib(GL_VIEWPORT_BIT);
glViewport(0, 0, width, height);
Framebuffer binding