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