From 9c6edaff302617bf257944b07feb1eb32b6a1fa0 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 7 Nov 2017 10:10:52 +0100 Subject: [PATCH] Update renderchain driver for GL --- gfx/drivers_renderchain/gl2_renderchain.c | 26 +++++++++++++++++++++++ gfx/video_driver.c | 4 ---- gfx/video_driver.h | 2 ++ 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/gfx/drivers_renderchain/gl2_renderchain.c b/gfx/drivers_renderchain/gl2_renderchain.c index 64ffef30ca..4a281e535e 100644 --- a/gfx/drivers_renderchain/gl2_renderchain.c +++ b/gfx/drivers_renderchain/gl2_renderchain.c @@ -65,6 +65,11 @@ void cocoagl_bind_game_view_fbo(void); #define gl_bind_backbuffer() glBindFramebuffer(RARCH_GL_FRAMEBUFFER, 0) #endif +typedef struct gl2_renderchain +{ + void *empty; +} gl2_renderchain_t; + /* Prototypes */ GLenum min_filter_to_mag(GLenum type); void gl_set_viewport( @@ -1109,8 +1114,29 @@ error: return false; } +void gl2_renderchain_free_internal(void *data) +{ + gl2_renderchain_t *cg_data = (gl2_renderchain_t*)data; + + if (!cg_data) + return; + + free(cg_data); +} + +static void *gl2_renderchain_new(void) +{ + gl2_renderchain_t *renderchain = (gl2_renderchain_t*)calloc(1, sizeof(*renderchain)); + if (!renderchain) + return NULL; + + return renderchain; +} + #ifdef HAVE_FBO gl_renderchain_driver_t gl2_renderchain = { + gl2_renderchain_free_internal, + gl2_renderchain_new, gl2_renderchain_init, gl2_renderchain_init_hw_render, gl2_renderchain_free, diff --git a/gfx/video_driver.c b/gfx/video_driver.c index 482137163b..d2483b8a94 100644 --- a/gfx/video_driver.c +++ b/gfx/video_driver.c @@ -3444,11 +3444,7 @@ bool renderchain_gl_init_first( for (i = 0; renderchain_gl_drivers[i]; i++) { -#if 0 void *data = renderchain_gl_drivers[i]->chain_new(); -#else - void *data = NULL; -#endif if (!data) continue; diff --git a/gfx/video_driver.h b/gfx/video_driver.h index 0c09d94da1..feb53cec26 100644 --- a/gfx/video_driver.h +++ b/gfx/video_driver.h @@ -827,6 +827,8 @@ typedef struct d3d_renderchain_driver typedef struct gl_renderchain_driver { + void (*chain_free)(void *data); + void *(*chain_new)(void); void (*init)(void *data, unsigned fbo_width, unsigned fbo_height); bool (*init_hw_render)(void *data, unsigned width, unsigned height); void (*free)(void *data);