Skip to content

Instantly share code, notes, and snippets.

@endavid
Created January 22, 2016 13:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save endavid/9200b2e2c000717d0f05 to your computer and use it in GitHub Desktop.
Save endavid/9200b2e2c000717d0f05 to your computer and use it in GitHub Desktop.
OpenGL ES 1.0 Create framebuffer textures example from Snake on a Sphere
PushRenderBuffer();
PushFrameBuffer();
// Create the renderbuffers and framebuffers
glGenRenderbuffers(ResourceSky::NUM_BUFFERS, g_res->renderBuffer);
glGenFramebuffers(ResourceSky::NUM_BUFFERS, g_res->frameBuffer);
for (int i = 0; i < ResourceSky::NUM_BUFFERS; ++i) {
glBindRenderbuffer(GL_RENDERBUFFER, g_res->renderBuffer[i]);
glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA8_OES, g_res->width[i], g_res->height[i]);
glBindFramebuffer(GL_FRAMEBUFFER, g_res->frameBuffer[i]);
r->AllocTextureResource(g_res->texId[i], GL_LINEAR, GL_CLAMP_TO_EDGE);
g_res->texturePtr[i] = r->GetTextureResource(g_res->texId[i]);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, g_res->width[i], g_res->height[i], 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, g_res->texturePtr[i]->GetGLTexture(), 0);
//Test the framebuffer for completeness
GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER) ;
if(status != GL_FRAMEBUFFER_COMPLETE) {
NSLog(@"failed to make complete framebuffer object %x", status);
} else {
NSLog(@"SkyPlugin [Buffer %d initialized]", i);
}
}
PopRenderBuffer();
PopFrameBuffer();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment