diff --git a/gfx/drivers_renderchain/d3d9_hlsl_renderchain.c b/gfx/drivers_renderchain/d3d9_hlsl_renderchain.c index f1cafcd775..6408c5ab66 100644 --- a/gfx/drivers_renderchain/d3d9_hlsl_renderchain.c +++ b/gfx/drivers_renderchain/d3d9_hlsl_renderchain.c @@ -56,7 +56,7 @@ static void renderchain_set_mvp(void *data, unsigned vp_width, mvp.data = d3d; mvp.matrix = NULL; - video_shader_driver_set_mvp(mvp); + video_driver_set_mvp(&mvp); } static void hlsl_d3d9_renderchain_clear(void *data) diff --git a/gfx/video_driver.c b/gfx/video_driver.c index 2965f73079..22401dc988 100644 --- a/gfx/video_driver.c +++ b/gfx/video_driver.c @@ -3444,6 +3444,12 @@ bool video_shader_driver_wrap_type(video_shader_ctx_wrap_t *wrap) return true; } +void video_driver_set_mvp(video_shader_ctx_mvp_t *mvp) +{ + if (mvp->matrix && current_shader && current_shader->set_mvp) + current_shader->set_mvp(mvp->data, shader_data, mvp->matrix); +} + bool renderchain_d3d_init_first( const d3d_renderchain_driver_t **renderchain_driver, void **renderchain_handle) diff --git a/gfx/video_driver.h b/gfx/video_driver.h index a7e713b438..994e095dc4 100644 --- a/gfx/video_driver.h +++ b/gfx/video_driver.h @@ -1283,9 +1283,7 @@ bool video_shader_driver_scale(video_shader_ctx_scale_t *scaler); bool video_shader_driver_info(video_shader_ctx_info_t *shader_info); -#define video_shader_driver_set_mvp(mvp) \ - if (mvp.matrix) \ - current_shader->set_mvp(mvp.data, shader_data, mvp.matrix) \ +void video_driver_set_mvp(video_shader_ctx_mvp_t *mvp); bool video_shader_driver_filter_type(video_shader_ctx_filter_t *filter); diff --git a/menu/drivers_display/menu_display_gl.c b/menu/drivers_display/menu_display_gl.c index 9d857cce04..7cd0e8e867 100644 --- a/menu/drivers_display/menu_display_gl.c +++ b/menu/drivers_display/menu_display_gl.c @@ -145,7 +145,7 @@ static void menu_display_gl_draw(void *data) mvp.matrix = draw->matrix_data ? (math_matrix_4x4*)draw->matrix_data : (math_matrix_4x4*)menu_display_gl_get_default_mvp(); - video_shader_driver_set_mvp(mvp); + video_driver_set_mvp(&mvp); glDrawArrays(menu_display_prim_to_gl_enum( draw->prim_type), 0, draw->coords->vertices);