From 31c6bba86ab29b313830bd87deeda126e9b8fae7 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 15 Apr 2016 03:35:19 +0200 Subject: [PATCH] Cut down on code duplication - draw_bg callback no longer necessary --- menu/drivers_display/menu_display_d3d.cpp | 37 --------------------- menu/drivers_display/menu_display_gl.c | 38 ---------------------- menu/drivers_display/menu_display_null.c | 6 ---- menu/drivers_display/menu_display_vulkan.c | 33 ------------------- menu/menu_display.c | 35 ++++++++++++++++++-- menu/menu_display.h | 1 - 6 files changed, 32 insertions(+), 118 deletions(-) diff --git a/menu/drivers_display/menu_display_d3d.cpp b/menu/drivers_display/menu_display_d3d.cpp index 46df59d533..09829d5307 100644 --- a/menu/drivers_display/menu_display_d3d.cpp +++ b/menu/drivers_display/menu_display_d3d.cpp @@ -165,42 +165,6 @@ static void menu_display_d3d_draw(void *data) 0, draw->coords->vertices); } -static void menu_display_d3d_draw_bg(void *data) -{ - struct gfx_coords coords; - const float *new_vertex = NULL; - const float *new_tex_coord = NULL; - menu_display_ctx_draw_t *draw = (menu_display_ctx_draw_t*)data; - - if (!draw) - return; - - new_vertex = draw->vertex; - new_tex_coord = draw->tex_coord; - - if (!new_vertex) - new_vertex = menu_display_d3d_get_default_vertices(); - if (!new_tex_coord) - new_tex_coord = menu_display_d3d_get_default_tex_coords() - - coords.vertices = draw->vertex_count; - coords.vertex = new_vertex; - coords.tex_coord = new_tex_coord; - coords.lut_tex_coord = new_tex_coord; - coords.color = (const float*)draw->color; - - if (!draw->texture) - draw->texture = menu_display_white_texture; - - draw->x = 0; - draw->y = 0; - draw->coords = &coords; - draw->matrix_data = (math_matrix_4x4*) - menu_display_d3d_get_default_mvp(); - - menu_display_d3d_draw(draw); -} - static void menu_display_d3d_restore_clear_color(void) { d3d_video_t *d3d = d3d_get_ptr(); @@ -239,7 +203,6 @@ static bool menu_display_d3d_font_init_first( menu_display_ctx_driver_t menu_display_ctx_d3d = { menu_display_d3d_draw, - menu_display_d3d_draw_bg, menu_display_d3d_blend_begin, menu_display_d3d_blend_end, menu_display_d3d_restore_clear_color, diff --git a/menu/drivers_display/menu_display_gl.c b/menu/drivers_display/menu_display_gl.c index 63a868e298..b908b1e415 100644 --- a/menu/drivers_display/menu_display_gl.c +++ b/menu/drivers_display/menu_display_gl.c @@ -146,43 +146,6 @@ static void menu_display_gl_draw(void *data) gl->coords.color = gl->white_color_ptr; } -static void menu_display_gl_draw_bg(void *data) -{ - struct gfx_coords coords; - const float *new_vertex = NULL; - const float *new_tex_coord = NULL; - menu_display_ctx_draw_t *draw = (menu_display_ctx_draw_t*)data; - - if (!draw) - return; - - new_vertex = draw->vertex; - new_tex_coord = draw->tex_coord; - - if (!new_vertex) - new_vertex = menu_display_gl_get_default_vertices(); - if (!new_tex_coord) - new_tex_coord = menu_display_gl_get_default_tex_coords(); - - coords.vertices = draw->vertex_count; - coords.vertex = new_vertex; - coords.tex_coord = new_tex_coord; - coords.lut_tex_coord = new_tex_coord; - coords.color = (const float*)draw->color; - - draw->x = 0; - draw->y = 0; - draw->coords = &coords; - - if (!draw->texture) - draw->texture = menu_display_white_texture; - - draw->matrix_data = (math_matrix_4x4*) - menu_display_gl_get_default_mvp(); - - menu_display_gl_draw(draw); -} - static void menu_display_gl_restore_clear_color(void) { glClearColor(0.0f, 0.0f, 0.0f, 0.00f); @@ -210,7 +173,6 @@ static bool menu_display_gl_font_init_first( menu_display_ctx_driver_t menu_display_ctx_gl = { menu_display_gl_draw, - menu_display_gl_draw_bg, menu_display_gl_blend_begin, menu_display_gl_blend_end, menu_display_gl_restore_clear_color, diff --git a/menu/drivers_display/menu_display_null.c b/menu/drivers_display/menu_display_null.c index b21160347f..52203f88f3 100644 --- a/menu/drivers_display/menu_display_null.c +++ b/menu/drivers_display/menu_display_null.c @@ -42,11 +42,6 @@ static void menu_display_null_draw(void *data) (void)data; } -static void menu_display_null_draw_bg(void *data) -{ - (void)data; -} - static void menu_display_null_restore_clear_color(void) { } @@ -77,7 +72,6 @@ static const float *menu_display_null_get_default_tex_coords(void) menu_display_ctx_driver_t menu_display_ctx_null = { menu_display_null_draw, - menu_display_null_draw_bg, menu_display_null_blend_begin, menu_display_null_blend_end, menu_display_null_restore_clear_color, diff --git a/menu/drivers_display/menu_display_vulkan.c b/menu/drivers_display/menu_display_vulkan.c index be5cc2fc39..7e01aff578 100644 --- a/menu/drivers_display/menu_display_vulkan.c +++ b/menu/drivers_display/menu_display_vulkan.c @@ -145,38 +145,6 @@ static const float *menu_display_vk_get_default_tex_coords(void) return &vk_tex_coords[0]; } -static void menu_display_vk_draw_bg(void *data) -{ - struct gfx_coords coords; - const float *new_vertex = NULL; - const float *new_tex_coord = NULL; - menu_display_ctx_draw_t *draw = (menu_display_ctx_draw_t*)data; - - if (!draw) - return; - - if (!new_vertex) - new_vertex = menu_display_vk_get_default_vertices(); - if (!new_tex_coord) - new_tex_coord = menu_display_vk_get_default_tex_coords(); - - coords.vertices = draw->vertex_count; - coords.vertex = new_vertex; - coords.tex_coord = new_tex_coord; - coords.color = (const float*)draw->color; - - if (!draw->texture) - draw->texture = menu_display_white_texture; - - draw->x = 0; - draw->y = 0; - draw->coords = &coords; - draw->matrix_data = (math_matrix_4x4*) - menu_display_vk_get_default_mvp(); - - menu_display_vk_draw(draw); -} - static void menu_display_vk_restore_clear_color(void) { } @@ -227,7 +195,6 @@ static bool menu_display_vk_font_init_first( menu_display_ctx_driver_t menu_display_ctx_vulkan = { menu_display_vk_draw, - menu_display_vk_draw_bg, menu_display_vk_blend_begin, menu_display_vk_blend_end, menu_display_vk_restore_clear_color, diff --git a/menu/menu_display.c b/menu/menu_display.c index 3c1acd337e..9a4390220f 100644 --- a/menu/menu_display.c +++ b/menu/menu_display.c @@ -463,10 +463,39 @@ bool menu_display_ctl(enum menu_display_ctl_state state, void *data) menu_disp->draw(data); break; case MENU_DISPLAY_CTL_DRAW_BG: - if (!menu_disp || !menu_disp->draw_bg) - return false; + { + struct gfx_coords coords; + const float *new_vertex = NULL; + const float *new_tex_coord = NULL; + menu_display_ctx_draw_t *draw = (menu_display_ctx_draw_t*)data; + if (!menu_disp || !draw) + return false; - menu_disp->draw_bg(data); + new_vertex = draw->vertex; + new_tex_coord = draw->tex_coord; + + if (!new_vertex) + new_vertex = menu_disp->get_default_vertices(); + if (!new_tex_coord) + new_tex_coord = menu_disp->get_default_tex_coords(); + + coords.vertices = draw->vertex_count; + coords.vertex = new_vertex; + coords.tex_coord = new_tex_coord; + coords.lut_tex_coord = new_tex_coord; + coords.color = (const float*)draw->color; + + draw->x = 0; + draw->y = 0; + draw->coords = &coords; + + if (!draw->texture) + draw->texture = menu_display_white_texture; + + draw->matrix_data = (math_matrix_4x4*)menu_disp->get_default_mvp(); + + menu_disp->draw(draw); + } break; case MENU_DISPLAY_CTL_ROTATE_Z: { diff --git a/menu/menu_display.h b/menu/menu_display.h index 8a9264d4cd..fba33731d7 100644 --- a/menu/menu_display.h +++ b/menu/menu_display.h @@ -146,7 +146,6 @@ typedef struct menu_display_ctx_datetime typedef struct menu_display_ctx_driver { void (*draw)(void *data); - void (*draw_bg)(void *data); void (*blend_begin)(void); void (*blend_end)(void); void (*restore_clear_color)(void);