GLuint fb; glGenFramebuffersEXT( 1, &fb ); glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, fb ); glGenTextures( 1, &texId ); glBindTexture( GL_TEXTURE_2D, texId ); // glTexImage2D( GL_TEXTURE_RECTANGLE_NV, 0, GL_RGBA, 256, 256, 0, GL_RGBA, GL_FLOAT, NULL ); glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, 256, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL ); glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, texId, 0 ); GLuint depth_rb; glGenRenderbuffersEXT( 1, &depth_rb ); glBindRenderbufferEXT( GL_RENDERBUFFER_EXT, depth_rb ); glRenderbufferStorageEXT( GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT24, 256, 256 ); glFramebufferRenderbufferEXT( GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, depth_rb );
glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, fb );
glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, 0 );
void Init() { ... glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, texId0, 0 ); glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT1_EXT, GL_TEXTURE_2D, texId1, 0 ); ... } void Render() { ... const GLenum buffers[] = { GL_COLOR_ATTACHMENT0_EXT, GL_COLOR_ATTACHMENT1_EXT }; glDrawBuffers( 2, buffers ); }
Main page | email : Sly |