From ef610312e743c138343e390e16c309f273c8024b Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 20 Nov 2016 16:45:06 +0100 Subject: [PATCH] Turn video_shader_driver_set_mvp into macro --- gfx/drivers/d3d_renderchains/render_chain_xdk.cpp | 2 +- gfx/drivers/gl.c | 6 +++--- gfx/drivers/gl_renderchains/render_chain_gl_legacy.c | 4 ++-- gfx/drivers_font/gl_raster_font.c | 2 +- gfx/video_shader_driver.c | 11 ----------- gfx/video_shader_driver.h | 4 +++- menu/drivers_display/menu_display_d3d.cpp | 2 +- menu/drivers_display/menu_display_gl.c | 2 +- 8 files changed, 12 insertions(+), 21 deletions(-) diff --git a/gfx/drivers/d3d_renderchains/render_chain_xdk.cpp b/gfx/drivers/d3d_renderchains/render_chain_xdk.cpp index 45ab2386ff..3e01152163 100644 --- a/gfx/drivers/d3d_renderchains/render_chain_xdk.cpp +++ b/gfx/drivers/d3d_renderchains/render_chain_xdk.cpp @@ -51,7 +51,7 @@ static void renderchain_set_mvp(void *data, unsigned vp_width, mvp.data = d3d; mvp.matrix = NULL; - video_shadser_driver_set_mvp(&mvp); + video_shadser_driver_set_mvp(mvp); #elif defined(HAVE_D3D8) D3DXMATRIX p_out, p_rotate, mat; D3DXMatrixOrthoOffCenterLH(&mat, 0, vp_width, vp_height, 0, 0.0f, 1.0f); diff --git a/gfx/drivers/gl.c b/gfx/drivers/gl.c index d58ca046e3..4a4f9c8f9b 100644 --- a/gfx/drivers/gl.c +++ b/gfx/drivers/gl.c @@ -249,7 +249,7 @@ static void gl_render_overlay(gl_t *gl) mvp.data = gl; mvp.matrix = &gl->mvp_no_rot; - video_shader_driver_set_mvp(&mvp); + video_shader_driver_set_mvp(mvp); for (i = 0; i < gl->overlays; i++) { @@ -1053,7 +1053,7 @@ static INLINE void gl_draw_texture(gl_t *gl) mvp.data = gl; mvp.matrix = &gl->mvp_no_rot; - video_shader_driver_set_mvp(&mvp); + video_shader_driver_set_mvp(mvp); glEnable(GL_BLEND); @@ -1252,7 +1252,7 @@ static bool gl_frame(void *data, const void *frame, mvp.data = gl; mvp.matrix = &gl->mvp; - video_shader_driver_set_mvp(&mvp); + video_shader_driver_set_mvp(mvp); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); diff --git a/gfx/drivers/gl_renderchains/render_chain_gl_legacy.c b/gfx/drivers/gl_renderchains/render_chain_gl_legacy.c index 52968bddad..983d25dd53 100644 --- a/gfx/drivers/gl_renderchains/render_chain_gl_legacy.c +++ b/gfx/drivers/gl_renderchains/render_chain_gl_legacy.c @@ -342,7 +342,7 @@ void gl_renderchain_render(gl_t *gl, mvp.data = gl; mvp.matrix = &gl->mvp; - video_shader_driver_set_mvp(&mvp); + video_shader_driver_set_mvp(mvp); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); } @@ -418,7 +418,7 @@ void gl_renderchain_render(gl_t *gl, mvp.data = gl; mvp.matrix = &gl->mvp; - video_shader_driver_set_mvp(&mvp); + video_shader_driver_set_mvp(mvp); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); gl->coords.tex_coord = gl->tex_info.coord; diff --git a/gfx/drivers_font/gl_raster_font.c b/gfx/drivers_font/gl_raster_font.c index 8bf6d57bd5..2f5c3870a9 100644 --- a/gfx/drivers_font/gl_raster_font.c +++ b/gfx/drivers_font/gl_raster_font.c @@ -264,7 +264,7 @@ static void gl_raster_font_draw_vertices(gl_raster_t *font, const video_coords_t mvp.data = font->gl; mvp.matrix = &font->gl->mvp_no_rot; - video_shader_driver_set_mvp(&mvp); + video_shader_driver_set_mvp(mvp); glDrawArrays(GL_TRIANGLES, 0, coords->vertices); } diff --git a/gfx/video_shader_driver.c b/gfx/video_shader_driver.c index 2834337fee..7f37a8aa42 100644 --- a/gfx/video_shader_driver.c +++ b/gfx/video_shader_driver.c @@ -234,17 +234,6 @@ bool video_shader_driver_info(video_shader_ctx_info_t *shader_info) return true; } -bool video_shader_driver_set_mvp(video_shader_ctx_mvp_t *mvp) -{ - if ( mvp - && mvp->matrix - && current_shader - && current_shader->set_mvp - && current_shader->set_mvp(mvp->data, shader_data, mvp->matrix)) - return true; - return false; -} - bool video_shader_driver_filter_type(video_shader_ctx_filter_t *filter) { if ( filter diff --git a/gfx/video_shader_driver.h b/gfx/video_shader_driver.h index a31959cd19..db36f56584 100644 --- a/gfx/video_shader_driver.h +++ b/gfx/video_shader_driver.h @@ -297,7 +297,9 @@ bool video_shader_driver_scale(video_shader_ctx_scale_t *scaler); bool video_shader_driver_info(video_shader_ctx_info_t *shader_info); -bool video_shader_driver_set_mvp(video_shader_ctx_mvp_t *mvp); +#define video_shader_driver_set_mvp(mvp) \ + if (mvp.matrix && current_shader && current_shader->set_mvp) \ + current_shader->set_mvp(mvp.data, shader_data, mvp.matrix) \ bool video_shader_driver_filter_type(video_shader_ctx_filter_t *filter); diff --git a/menu/drivers_display/menu_display_d3d.cpp b/menu/drivers_display/menu_display_d3d.cpp index 8e0e90c4a9..5ed948a00e 100644 --- a/menu/drivers_display/menu_display_d3d.cpp +++ b/menu/drivers_display/menu_display_d3d.cpp @@ -175,7 +175,7 @@ static void menu_display_d3d_draw(void *data) mat = (math_matrix_4x4*) menu_display_d3d_get_default_mvp(); video_shader_driver_set_coords(d3d, draw->coords); - video_shader_driver_set_mvp(d3d, mat); + video_shader_driver_set_mvp(mat); #endif d3d_draw_primitive(d3d->dev, (D3DPRIMITIVETYPE) diff --git a/menu/drivers_display/menu_display_gl.c b/menu/drivers_display/menu_display_gl.c index 388efdc8f3..8ff4c96b54 100644 --- a/menu/drivers_display/menu_display_gl.c +++ b/menu/drivers_display/menu_display_gl.c @@ -146,7 +146,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_shader_driver_set_mvp(mvp); glDrawArrays(menu_display_prim_to_gl_enum( draw->prim_type), 0, draw->coords->vertices);