I use this code to change the RenderTarget:
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT,mCurrentTarget.nFboID);
glClear(GL_COLOR_BUFFER_BIT);
glViewport(0, 0, mCurrentTarget.nWidth, mCurrentTarget.nHeight);
Is there something wrong?
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT,mCurrentTarget.nFboID);
glClear(GL_COLOR_BUFFER_BIT);
glViewport(0, 0, mCurrentTarget.nWidth, mCurrentTarget.nHeight);
Would you mind showing us your texture dimensions and exactly how you output it to the screen?
I call glClearColor() function after glBindFramebufferEXT to clear the BackColor of the fbo, But the BackColor of normal buffer is also be changed. Why such a situation?
[quote name='htz92127' timestamp='1311517678' post='4839594']
I call glClearColor() function after glBindFramebufferEXT to clear the BackColor of the fbo, But the BackColor of normal buffer is also be changed. Why such a situation?
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT,mCurrentTarget.nFboID);
glClearColor(1.0, 0, 0, 0);
glViewport(0,0, mCurrentTarget.nWidth, mCurrentTarget.nHeight);
You are getting results with FBOs? I just posted a question about this. My texture doesn't display when drawing the texture to a sprite in my sprite batch: http://www.gamedev.n...objects-opengl/. Everything checks out fine, but I get nothing.
u32 nTexID;
glGenTextures(1, &nTexID);
glBindTexture(GL_TEXTURE_2D, nTexID);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, nWidth, nHeight, 0, GL_BGRA, GL_UNSIGNED_BYTE, 0);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
u32 fboID;
glGenFramebuffersEXT(1,&fboID);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT,fboID);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, nTexID, 0);
u32 buffers[] = {GL_COLOR_ATTACHMENT0_EXT};
glDrawBuffers(1, buffers);
GLenum status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
if (GL_FRAMEBUFFER_COMPLETE_EXT != status)
{
return ImageRef::Null();
}
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT,0);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, mCurrentTarget.nID);
glClearColor(1, 0, 0, 0);
glClear(GL_COLOR_BUFFER_BIT);
glViewport(0, 0, mCurrentTarget.nWidth, mCurrentTarget.nHeight);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, tex->GetID());
glColor4ub(color.R, color.G, color.B, color.A);
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 1.0f);
glVertex2i(x1, y1);
glTexCoord2f(1.0f, 1.0f);
glVertex2i(x2, y1);
glTexCoord2f(1.0f, 0.0f);
glVertex2i(x2, y2);
glTexCoord2f(0.0f, 0.0f);
glVertex2i(x1, y2);
glEnd();