Start making gfx_display_blend_begin and gfx_display_blend_end

unnecessary
This commit is contained in:
twinaphex 2020-09-23 09:32:42 +02:00
parent 08f46a44de
commit 43b43351fa
7 changed files with 112 additions and 43 deletions

View File

@ -1639,6 +1639,8 @@ void gfx_display_draw_keyboard(
{
unsigned i;
int ptr_width, ptr_height;
gfx_display_t *p_disp = disp_get_ptr();
gfx_display_ctx_driver_t *dispctx = p_disp->dispctx;
static float white[16] = {
1.00, 1.00, 1.00, 1.00,
@ -1678,7 +1680,8 @@ void gfx_display_draw_keyboard(
if (i == id)
{
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
gfx_display_draw_texture(
userdata,
@ -1693,7 +1696,8 @@ void gfx_display_draw_keyboard(
&white[0],
hover_texture);
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
color = text_color;
}

View File

@ -720,6 +720,8 @@ void gfx_thumbnail_draw(
float draw_height;
float draw_x;
float draw_y;
gfx_display_t *p_disp = disp_get_ptr();
gfx_display_ctx_driver_t *dispctx = p_disp->dispctx;
float thumbnail_alpha = thumbnail->alpha * alpha;
float thumbnail_color[16] = {
1.0f, 1.0f, 1.0f, 1.0f,
@ -739,7 +741,8 @@ void gfx_thumbnail_draw(
thumbnail, width, height, scale_factor,
&draw_width, &draw_height);
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
/* Perform 'rotation' step
* > Note that rotation does not actually work...
@ -879,6 +882,7 @@ void gfx_thumbnail_draw(
/* Draw thumbnail */
gfx_display_draw(&draw, userdata,
video_width, video_height);
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
}
}

View File

@ -661,6 +661,8 @@ static void gfx_widgets_draw_icon_blend(
gfx_display_ctx_draw_t draw;
struct video_coords coords;
math_matrix_4x4 mymat;
gfx_display_t *p_disp = disp_get_ptr();
gfx_display_ctx_driver_t *dispctx = p_disp->dispctx;
if (!texture)
return;
@ -692,10 +694,12 @@ static void gfx_widgets_draw_icon_blend(
draw.prim_type = GFX_DISPLAY_PRIM_TRIANGLESTRIP;
draw.pipeline_id = 0;
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
gfx_display_draw(&draw, userdata,
video_width, video_height);
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
}
#endif
@ -935,6 +939,8 @@ static int gfx_widgets_draw_indicator(
enum msg_hash_enums msg)
{
unsigned width;
gfx_display_t *p_disp = disp_get_ptr();
gfx_display_ctx_driver_t *dispctx = p_disp->dispctx;
gfx_display_set_alpha(gfx_widgets_backdrop_orig, DEFAULT_BACKDROP);
@ -953,7 +959,8 @@ static int gfx_widgets_draw_indicator(
gfx_display_set_alpha(gfx_widgets_pure_white, 1.0f);
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
gfx_widgets_draw_icon(
userdata,
video_width,
@ -962,7 +969,8 @@ static int gfx_widgets_draw_indicator(
icon, top_right_x_advance - width, y,
0, 1, gfx_widgets_pure_white
);
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
}
else
{
@ -1014,9 +1022,11 @@ static void gfx_widgets_draw_task_msg(
float *msg_queue_current_background;
float *msg_queue_current_bar;
bool draw_msg_new = false;
unsigned task_percentage_offset = 0;
char task_percentage[256] = {0};
bool draw_msg_new = false;
unsigned task_percentage_offset = 0;
char task_percentage[256] = {0};
gfx_display_t *p_disp = disp_get_ptr();
gfx_display_ctx_driver_t *dispctx = p_disp->dispctx;
if (msg->msg_new)
draw_msg_new = !string_is_equal(msg->msg_new, msg->msg);
@ -1086,7 +1096,8 @@ static void gfx_widgets_draw_task_msg(
/* Icon */
gfx_display_set_alpha(gfx_widgets_pure_white, msg->alpha);
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
gfx_widgets_draw_icon(
userdata,
video_width,
@ -1101,7 +1112,8 @@ static void gfx_widgets_draw_task_msg(
video_height - msg->offset_y,
msg->task_finished ? 0 : msg->hourglass_rotation,
1, gfx_widgets_pure_white);
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
/* Text */
text_y_base = video_height
@ -1169,7 +1181,9 @@ static void gfx_widgets_draw_regular_msg(
{
unsigned bar_width;
unsigned text_color;
uintptr_t icon = 0;
uintptr_t icon = 0;
gfx_display_t *p_disp = disp_get_ptr();
gfx_display_ctx_driver_t *dispctx = p_disp->dispctx;
if (!icon)
icon = p_dispwidget->gfx_widgets_icons_textures[
@ -1199,7 +1213,8 @@ static void gfx_widgets_draw_regular_msg(
if (p_dispwidget->msg_queue_has_icons)
{
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
/* (int) cast is to be consistent with the rect drawing
* and prevent alignment issues, don't remove it */
gfx_widgets_draw_icon(
@ -1213,7 +1228,8 @@ static void gfx_widgets_draw_regular_msg(
(int)(video_height - msg->offset_y - p_dispwidget->msg_queue_icon_offset_y),
0, 1, msg_queue_background);
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
}
/* Background */
@ -1256,7 +1272,8 @@ static void gfx_widgets_draw_regular_msg(
if (p_dispwidget->msg_queue_has_icons)
{
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
gfx_widgets_draw_icon(
userdata,
@ -1289,7 +1306,8 @@ static void gfx_widgets_draw_regular_msg(
video_height - msg->offset_y - p_dispwidget->msg_queue_icon_offset_y + p_dispwidget->msg_queue_internal_icon_offset,
0, 1, gfx_widgets_pure_white);
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
}
}

View File

@ -1945,6 +1945,8 @@ static void ozone_draw_header(ozone_handle_t *ozone,
unsigned seperator_margin = 30 * scale_factor;
enum gfx_animation_ticker_type
menu_ticker_type = (enum gfx_animation_ticker_type)settings->uints.menu_ticker_type;
gfx_display_t *p_disp = disp_get_ptr();
gfx_display_ctx_driver_t *dispctx = p_disp->dispctx;
/* Initial ticker configuration */
if (use_smooth_ticker)
@ -2014,7 +2016,8 @@ static void ozone_draw_header(ozone_handle_t *ozone,
false);
/* Icon */
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
#if 0
if (discord_avatar_is_ready())
ozone_draw_icon(
@ -2043,7 +2046,8 @@ static void ozone_draw_header(ozone_handle_t *ozone,
video_width,
video_height,
0, 1, ozone->theme->entries_icon);
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
/* Battery */
if (battery_level_enable)
@ -2077,7 +2081,8 @@ static void ozone_draw_header(ozone_handle_t *ozone,
1.0f,
false);
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
ozone_draw_icon(
userdata,
video_width,
@ -2090,7 +2095,8 @@ static void ozone_draw_header(ozone_handle_t *ozone,
video_width,
video_height,
0, 1, ozone->theme->entries_icon);
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
}
}
@ -2124,7 +2130,8 @@ static void ozone_draw_header(ozone_handle_t *ozone,
1.0f,
false);
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
ozone_draw_icon(
userdata,
video_width,
@ -2137,7 +2144,8 @@ static void ozone_draw_header(ozone_handle_t *ozone,
video_width,
video_height,
0, 1, ozone->theme->entries_icon);
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
}
}
@ -2195,6 +2203,8 @@ static void ozone_draw_footer(ozone_handle_t *ozone,
ozone->footer_labels.fullscreen_thumbs.width - icon_size - (2.0f * icon_padding);
float metadata_toggle_x = fullscreen_thumbs_x -
ozone->footer_labels.metadata_toggle.width - icon_size - (2.0f * icon_padding);
gfx_display_t *p_disp = disp_get_ptr();
gfx_display_ctx_driver_t *dispctx = p_disp->dispctx;
/* Separator */
gfx_display_draw_quad(
@ -2212,7 +2222,8 @@ static void ozone_draw_footer(ozone_handle_t *ozone,
/* Buttons */
/* Draw icons */
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
gfx_display_set_alpha(ozone->theme_dynamic.entries_icon, 1.0f);
/* > ok */
@ -2287,7 +2298,8 @@ static void ozone_draw_footer(ozone_handle_t *ozone,
video_width,video_height,
0, 1, ozone->theme_dynamic.entries_icon);
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
/* Draw labels */
@ -2451,7 +2463,8 @@ static void ozone_draw_footer(ozone_handle_t *ozone,
}
else
{
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
ozone_draw_icon(
userdata,
video_width,
@ -2466,7 +2479,8 @@ static void ozone_draw_footer(ozone_handle_t *ozone,
0,
1,
NULL);
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
}
}

View File

@ -95,11 +95,14 @@ static void ozone_draw_cursor_slice(
int slice_y = (int)y + 8 * scale_factor;
unsigned slice_new_w = width + (24 + 1) * scale_factor;
unsigned slice_new_h = height + 20 * scale_factor;
gfx_display_t *p_disp = disp_get_ptr();
gfx_display_ctx_driver_t *dispctx = p_disp->dispctx;
gfx_display_set_alpha(ozone->theme_dynamic.cursor_alpha, alpha);
gfx_display_set_alpha(ozone->theme_dynamic.cursor_border, alpha);
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
/* Cursor without border */
gfx_display_draw_texture_slice(
@ -133,7 +136,8 @@ static void ozone_draw_cursor_slice(
ozone->textures[OZONE_TEXTURE_CURSOR_BORDER]
);
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
}
static void ozone_draw_cursor_fallback(
@ -530,6 +534,8 @@ void ozone_draw_messagebox(
float scale_factor = 0.0f;
unsigned width = video_width;
unsigned height = video_height;
gfx_display_t *p_disp = disp_get_ptr();
gfx_display_ctx_driver_t *dispctx = p_disp->dispctx;
wrapped_message[0] = '\0';
@ -585,7 +591,8 @@ void ozone_draw_messagebox(
gfx_display_set_alpha(ozone->theme_dynamic.message_background, ozone->animations.messagebox_alpha);
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
/* Avoid drawing a black box if there's no assets */
if (ozone->has_all_assets)

View File

@ -58,6 +58,8 @@ static void ozone_draw_entry_value(
bool switch_is_on = true;
bool do_draw_text = false;
float scale_factor = ozone->last_scale_factor;
gfx_display_t *p_disp = disp_get_ptr();
gfx_display_ctx_driver_t *dispctx = p_disp->dispctx;
if (!entry->checked && string_is_empty(value))
return;
@ -65,7 +67,8 @@ static void ozone_draw_entry_value(
/* check icon */
if (entry->checked)
{
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
ozone_draw_icon(
userdata,
video_width,
@ -80,7 +83,8 @@ static void ozone_draw_entry_value(
0,
1,
ozone->theme_dynamic.entries_checkmark);
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
return;
}
@ -176,8 +180,11 @@ static void ozone_draw_no_thumbnail_available(ozone_handle_t *ozone,
{
unsigned icon = OZONE_ENTRIES_ICONS_TEXTURE_CORE_INFO;
unsigned icon_size = (unsigned)((float)ozone->dimensions.sidebar_entry_icon_size * 1.5f);
gfx_display_t *p_disp = disp_get_ptr();
gfx_display_ctx_driver_t *dispctx = p_disp->dispctx;
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
ozone_draw_icon(
userdata,
video_width,
@ -190,7 +197,8 @@ static void ozone_draw_no_thumbnail_available(ozone_handle_t *ozone,
video_width,
video_height,
0, 1, ozone->theme->entries_icon);
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
gfx_display_draw_text(
ozone->fonts.footer.font,
@ -491,6 +499,8 @@ void ozone_draw_entries(
size_t old_selection_y = 0;
int entry_padding = ozone_get_entries_padding(ozone, old_list);
float scale_factor = ozone->last_scale_factor;
gfx_display_t *p_disp = disp_get_ptr();
gfx_display_ctx_driver_t *dispctx = p_disp->dispctx;
menu_entries_ctl(MENU_ENTRIES_CTL_START_GET, &i);
@ -781,7 +791,8 @@ border_iterate:
gfx_display_set_alpha(icon_color, alpha);
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
ozone_draw_icon(
userdata,
video_width,
@ -799,7 +810,8 @@ border_iterate:
0,
1,
icon_color);
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
if (icon_color == ozone_pure_white)
gfx_display_set_alpha(icon_color, 1.0f);
@ -916,6 +928,8 @@ void ozone_draw_thumbnail_bar(ozone_handle_t *ozone,
float scale_factor = ozone->last_scale_factor;
enum gfx_thumbnail_alignment right_thumbnail_alignment;
enum gfx_thumbnail_alignment left_thumbnail_alignment;
gfx_display_t *p_disp = disp_get_ptr();
gfx_display_ctx_driver_t *dispctx = p_disp->dispctx;
/* Background */
if (!libretro_running || (menu_framebuffer_opacity >= 1.0f))
@ -1309,7 +1323,8 @@ void ozone_draw_thumbnail_bar(ozone_handle_t *ozone,
/* Draw icon in the bottom right corner of
* the thumbnail bar */
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
ozone_draw_icon(
userdata,
video_width,
@ -1322,7 +1337,8 @@ void ozone_draw_thumbnail_bar(ozone_handle_t *ozone,
video_width,
video_height,
0, 1, ozone->theme_dynamic.entries_icon);
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
}
}
}

View File

@ -185,6 +185,8 @@ void ozone_draw_sidebar(
unsigned selection_y = 0;
unsigned selection_old_y = 0;
unsigned horizontal_list_size = 0;
gfx_display_t *p_disp = disp_get_ptr();
gfx_display_ctx_driver_t *dispctx = p_disp->dispctx;
if (!ozone->draw_sidebar)
return;
@ -310,7 +312,8 @@ void ozone_draw_sidebar(
/* Menu tabs */
y = ozone->dimensions.header_height + ozone->dimensions.spacer_1px + ozone->dimensions.sidebar_padding_vertical;
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
for (i = 0; i < (unsigned)(ozone->system_tab_end+1); i++)
{
@ -364,7 +367,8 @@ void ozone_draw_sidebar(
y += ozone->dimensions.sidebar_entry_height + ozone->dimensions.sidebar_entry_padding_vertical;
}
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
/* Console tabs */
if (horizontal_list_size > 0)
@ -383,7 +387,8 @@ void ozone_draw_sidebar(
y += ozone->dimensions.sidebar_entry_padding_vertical + ozone->dimensions.spacer_1px;
gfx_display_blend_begin(userdata);
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(userdata);
for (i = 0; i < horizontal_list_size; i++)
{
@ -463,7 +468,8 @@ console_iterate:
y += ozone->dimensions.sidebar_entry_height + ozone->dimensions.sidebar_entry_padding_vertical;
}
gfx_display_blend_end(userdata);
if (dispctx && dispctx->blend_end)
dispctx->blend_end(userdata);
}
ozone_font_flush(video_width, video_height, &ozone->fonts.sidebar);