diff --git a/gfx/drivers/gl.c b/gfx/drivers/gl.c index e1f11b9def..3d963d29a9 100644 --- a/gfx/drivers/gl.c +++ b/gfx/drivers/gl.c @@ -87,14 +87,6 @@ static struct video_ortho default_ortho = {0, 1, 0, 1, -1, 1}; -#ifdef IOS -/* There is no default frame buffer on iOS. */ -void cocoagl_bind_game_view_fbo(void); -#define gl_bind_backbuffer() cocoagl_bind_game_view_fbo() -#else -#define gl_bind_backbuffer() glBindFramebuffer(RARCH_GL_FRAMEBUFFER, 0) -#endif - /* Used for the last pass when rendering to the back buffer. */ static const GLfloat vertexes_flipped[] = { 0, 1, @@ -1263,7 +1255,8 @@ static bool gl_frame(void *data, const void *frame, gl_update_input_size(gl, frame_width, frame_height, pitch, false); if (!gl->fbo_inited) { - gl_bind_backbuffer(); + if (gl->renderchain_driver->bind_backbuffer) + gl->renderchain_driver->bind_backbuffer(); gl_set_viewport(gl, video_info, width, height, false, true); } diff --git a/gfx/drivers_renderchain/gl2_renderchain.c b/gfx/drivers_renderchain/gl2_renderchain.c index 4490f8b0f8..d1a0e942f4 100644 --- a/gfx/drivers_renderchain/gl2_renderchain.c +++ b/gfx/drivers_renderchain/gl2_renderchain.c @@ -69,7 +69,7 @@ typedef struct gl2_renderchain #define gl2_bind_fb(id) glBindFramebuffer(RARCH_GL_FRAMEBUFFER, id) -static INLINE void gl2_bind_backbuffer(void) +static void gl2_renderchain_bind_backbuffer(void) { #ifdef IOS /* There is no default frame buffer on iOS. */ @@ -358,7 +358,7 @@ static void gl2_renderchain_render( fbo_tex_info_cnt++; /* Render our FBO texture to back buffer. */ - gl2_bind_backbuffer(); + gl2_renderchain_bind_backbuffer(); shader_info.data = gl; shader_info.idx = gl->fbo_pass + 1; @@ -937,7 +937,7 @@ static bool gl2_renderchain_init_hw_render( } } - gl2_bind_backbuffer(); + gl2_renderchain_bind_backbuffer(); gl->hw_render_fbo_init = true; context_bind_hw_render(false); @@ -1111,6 +1111,7 @@ static void *gl2_renderchain_new(void) } gl_renderchain_driver_t gl2_renderchain = { + gl2_renderchain_bind_backbuffer, gl2_renderchain_deinit_fbo, gl2_renderchain_viewport_info, gl2_renderchain_read_viewport, diff --git a/gfx/video_driver.h b/gfx/video_driver.h index 8dd8fc4c79..fabebf7739 100644 --- a/gfx/video_driver.h +++ b/gfx/video_driver.h @@ -827,6 +827,7 @@ typedef struct d3d_renderchain_driver typedef struct gl_renderchain_driver { + void (*bind_backbuffer)(void); void (*deinit_fbo)(void *data); void (*viewport_info)( void *data, struct video_viewport *vp);