diff --git a/gfx/drivers/gl.c b/gfx/drivers/gl.c index dd7ed66abf..342d5d6652 100644 --- a/gfx/drivers/gl.c +++ b/gfx/drivers/gl.c @@ -288,8 +288,7 @@ static bool gl_shader_init(gl_t *gl) static void gl_shader_deinit(gl_t *gl) { - if (gl->shader) - gl->shader->deinit(); + video_shader_driver_deinit(gl->shader); gl->shader = NULL; } diff --git a/gfx/video_shader_driver.c b/gfx/video_shader_driver.c index 511ac0e5f4..5a218e3dbc 100644 --- a/gfx/video_shader_driver.c +++ b/gfx/video_shader_driver.c @@ -99,3 +99,10 @@ bool video_shader_driver_init(const shader_backend_t *shader, void *data, const return false; return shader->init(data, path); } + +void video_shader_driver_deinit(const shader_backend_t *shader) +{ + if (!shader) + return; + shader->deinit(); +} diff --git a/gfx/video_shader_driver.h b/gfx/video_shader_driver.h index 248fb58c49..c4dd939ad7 100644 --- a/gfx/video_shader_driver.h +++ b/gfx/video_shader_driver.h @@ -118,6 +118,8 @@ struct video_shader *video_shader_driver_get_current_shader(void); bool video_shader_driver_init(const shader_backend_t *shader, void *data, const char *path); +void video_shader_driver_deinit(const shader_backend_t *shader); + #ifdef __cplusplus } #endif