Improve behavior for default framebuffer on iOS
This commit is contained in:
@@ -69,6 +69,10 @@ namespace lime {
|
||||
valid = true;
|
||||
#endif
|
||||
|
||||
#ifdef IPHONEOS
|
||||
glGetIntegerv (GL_FRAMEBUFFER_BINDING_OES, &OpenGLBindings::defaultFramebuffer);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
if (!valid) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ namespace lime {
|
||||
|
||||
static bool Init ();
|
||||
|
||||
static int defaultFramebuffer;
|
||||
static void* handle;
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user