Improve behavior for default framebuffer on iOS

This commit is contained in:
Joshua Granick
2016-12-01 13:08:34 -08:00
parent 421ce5175d
commit 00fc9cdcb6
3 changed files with 19 additions and 1 deletions

View File

@@ -69,6 +69,10 @@ namespace lime {
valid = true;
#endif
#ifdef IPHONEOS
glGetIntegerv (GL_FRAMEBUFFER_BINDING_OES, &OpenGLBindings::defaultFramebuffer);
#endif
}
if (!valid) {

View File

@@ -28,6 +28,7 @@ namespace lime {
bool OpenGLBindings::initialized = false;
void *OpenGLBindings::handle = 0;
int OpenGLBindings::defaultFramebuffer = 0;
void lime_gl_delete_buffer (value handle);
void lime_gl_delete_framebuffer (value handle);
@@ -216,7 +217,19 @@ namespace lime {
void lime_gl_bind_framebuffer (int target, value framebuffer) {
glBindFramebuffer (target, val_is_null (framebuffer) ? 0 : reinterpret_cast<uintptr_t> (val_data (framebuffer)));
GLuint id;
if (val_is_null (framebuffer)) {
id = OpenGLBindings::defaultFramebuffer;
} else {
id = reinterpret_cast<uintptr_t> (val_data (framebuffer));
}
glBindFramebuffer (target, id);
}

View File

@@ -11,6 +11,7 @@ namespace lime {
static bool Init ();
static int defaultFramebuffer;
static void* handle;