(gfx display) Get rid of video_frame_info dependency for

blend_begin/blend_end
This commit is contained in:
twinaphex 2020-03-08 22:28:42 +01:00
parent c16568cf32
commit e4aa0fd544
11 changed files with 75 additions and 76 deletions

View File

@ -631,17 +631,17 @@ void gfx_display_coords_array_reset(void)
}
/* Begin blending operation */
void gfx_display_blend_begin(video_frame_info_t *video_info)
void gfx_display_blend_begin(void *data)
{
if (dispctx && dispctx->blend_begin)
dispctx->blend_begin(video_info->userdata);
dispctx->blend_begin(data);
}
/* End blending operation */
void gfx_display_blend_end(video_frame_info_t *video_info)
void gfx_display_blend_end(void *data)
{
if (dispctx && dispctx->blend_end)
dispctx->blend_end(video_info->userdata);
dispctx->blend_end(data);
}
/* Begin scissoring operation */

View File

@ -204,9 +204,9 @@ void gfx_display_free(void);
void gfx_display_init(void);
void gfx_display_blend_begin(video_frame_info_t *video_info);
void gfx_display_blend_begin(void *data);
void gfx_display_blend_end(video_frame_info_t *video_info);
void gfx_display_blend_end(void *data);
void gfx_display_push_quad(
unsigned width, unsigned height,
@ -235,7 +235,6 @@ font_data_t *gfx_display_font(
float font_size,
bool video_is_threaded);
void gfx_display_scissor_begin(video_frame_info_t *video_info, int x, int y, unsigned width, unsigned height);
void gfx_display_scissor_end(video_frame_info_t *video_info);

View File

@ -707,7 +707,7 @@ void gfx_thumbnail_draw(
thumbnail, width, height, scale_factor,
&draw_width, &draw_height);
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
/* Perform 'rotation' step
* > Note that rotation does not actually work...
@ -845,6 +845,6 @@ void gfx_thumbnail_draw(
/* Draw thumbnail */
gfx_display_draw(&draw, video_info);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
}

View File

@ -1090,13 +1090,13 @@ static int gfx_widgets_draw_indicator(video_frame_info_t *video_info,
gfx_display_set_alpha(gfx_widgets_pure_white, 1.0f);
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
gfx_widgets_draw_icon(video_info, width, height,
icon, top_right_x_advance - width, y,
video_width, video_height,
0, 1, gfx_widgets_pure_white
);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
else
{
@ -1208,7 +1208,7 @@ static void gfx_widgets_draw_task_msg(menu_widget_msg_t *msg,
/* Icon */
gfx_display_set_alpha(gfx_widgets_pure_white, msg->alpha);
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
gfx_widgets_draw_icon(video_info,
msg_queue_height/2,
msg_queue_height/2,
@ -1219,7 +1219,7 @@ static void gfx_widgets_draw_task_msg(menu_widget_msg_t *msg,
video_height,
msg->task_finished ? 0 : msg->hourglass_rotation,
1, gfx_widgets_pure_white);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
/* Text */
if (draw_msg_new)
@ -1309,7 +1309,7 @@ static void gfx_widgets_draw_regular_msg(menu_widget_msg_t *msg, video_frame_inf
if (msg_queue_has_icons)
{
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
/* (int) cast is to be consistent with the rect drawing and prevent alignment
* issues, don't remove it */
gfx_widgets_draw_icon(video_info,
@ -1318,7 +1318,7 @@ static void gfx_widgets_draw_regular_msg(menu_widget_msg_t *msg, video_frame_inf
video_width, video_height,
0, 1, msg_queue_background);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
/* Background */
@ -1357,7 +1357,7 @@ static void gfx_widgets_draw_regular_msg(menu_widget_msg_t *msg, video_frame_inf
if (msg_queue_has_icons)
{
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
gfx_widgets_draw_icon(video_info,
msg_queue_icon_size_x, msg_queue_icon_size_y,
@ -1379,7 +1379,7 @@ static void gfx_widgets_draw_regular_msg(menu_widget_msg_t *msg, video_frame_inf
video_width, video_height,
0, 1, gfx_widgets_pure_white);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
}
@ -1410,7 +1410,7 @@ static void gfx_widgets_draw_load_content_animation(video_frame_info_t *video_in
/* Icon */
gfx_display_set_alpha(icon_color, load_content_animation_icon_alpha);
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
gfx_widgets_draw_icon(video_info, icon_size,
icon_size, load_content_animation_icon,
video_width / 2 - icon_size/2,
@ -1419,7 +1419,7 @@ static void gfx_widgets_draw_load_content_animation(video_frame_info_t *video_in
video_height,
0, 1, icon_color
);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
/* Text */
gfx_display_draw_text(font_bold,
@ -1646,12 +1646,12 @@ void gfx_widgets_frame(void *data)
/* Icon */
if (gfx_widgets_icons_textures[MENU_WIDGETS_ICON_ACHIEVEMENT])
{
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
gfx_widgets_draw_icon(video_info,
cheevo_height, cheevo_height,
gfx_widgets_icons_textures[MENU_WIDGETS_ICON_ACHIEVEMENT], 0, cheevo_y,
video_width, video_height, 0, 1, gfx_widgets_pure_white);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
}
/* Badge */
@ -1786,7 +1786,7 @@ void gfx_widgets_frame(void *data)
{
gfx_display_set_alpha(gfx_widgets_pure_white, volume_text_alpha);
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
gfx_widgets_draw_icon(video_info,
icon_size, icon_size,
volume_icon,
@ -1794,7 +1794,7 @@ void gfx_widgets_frame(void *data)
video_width, video_height,
0, 1, gfx_widgets_pure_white
);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
if (volume_mute)

View File

@ -1721,7 +1721,7 @@ static void materialui_draw_icon(
struct video_coords coords;
math_matrix_4x4 mymat;
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
rotate_draw.matrix = &mymat;
rotate_draw.rotation = rotation;
@ -1751,7 +1751,7 @@ static void materialui_draw_icon(
draw.pipeline.id = 0;
gfx_display_draw(&draw, video_info);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
static void materialui_draw_thumbnail(
@ -3528,10 +3528,10 @@ static void materialui_render_background(materialui_handle_t *mui, video_frame_i
}
/* Draw background */
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
gfx_display_draw_bg(&draw, video_info, add_opacity, opacity_override);
gfx_display_draw(&draw, video_info);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
static void materialui_render_landscape_border(

View File

@ -1541,7 +1541,7 @@ static void ozone_draw_header(ozone_handle_t *ozone, video_frame_info_t *video_i
ozone_draw_text(video_info, ozone, title, ticker_x_offset + 128 * scale_factor, ozone->dimensions.header_height / 2 + ozone->title_font_glyph_height * 3.0f/10.0f, TEXT_ALIGN_LEFT, video_width, video_height, ozone->fonts.title, ozone->theme->text_rgba, false);
/* Icon */
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
#if 0
if (discord_avatar_is_ready())
ozone_draw_icon(
@ -1566,7 +1566,7 @@ static void ozone_draw_header(ozone_handle_t *ozone, video_frame_info_t *video_i
video_width,
video_height,
0, 1, ozone->theme->entries_icon);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
/* Battery */
if (battery_level_enable)
@ -1587,7 +1587,7 @@ static void ozone_draw_header(ozone_handle_t *ozone, video_frame_info_t *video_i
ozone_draw_text(video_info, ozone, msg, video_width - 85 * scale_factor, ozone->dimensions.header_height / 2 + ozone->time_font_glyph_height * 3.0f/10.0f, TEXT_ALIGN_RIGHT, video_width, video_height, ozone->fonts.time, ozone->theme->text_rgba, false);
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
ozone_draw_icon(
video_info,
status_icon_size,
@ -1598,7 +1598,7 @@ static void ozone_draw_header(ozone_handle_t *ozone, video_frame_info_t *video_i
video_width,
video_height,
0, 1, ozone->theme->entries_icon);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
}
@ -1618,7 +1618,7 @@ static void ozone_draw_header(ozone_handle_t *ozone, video_frame_info_t *video_i
ozone_draw_text(video_info, ozone, timedate, video_width - (85 * scale_factor) - timedate_offset, ozone->dimensions.header_height / 2 + ozone->time_font_glyph_height * 3.0f/10.0f, TEXT_ALIGN_RIGHT, video_width, video_height, ozone->fonts.time, ozone->theme->text_rgba, false);
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
ozone_draw_icon(
video_info,
status_icon_size,
@ -1629,7 +1629,7 @@ static void ozone_draw_header(ozone_handle_t *ozone, video_frame_info_t *video_i
video_width,
video_height,
0, 1, ozone->theme->entries_icon);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
}
@ -1670,7 +1670,7 @@ static void ozone_draw_footer(ozone_handle_t *ozone, video_frame_info_t *video_i
ok_width = 215 * scale_factor;
}
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
gfx_display_set_alpha(ozone->theme_dynamic.entries_icon, 1.0f);
@ -1690,7 +1690,7 @@ static void ozone_draw_footer(ozone_handle_t *ozone, video_frame_info_t *video_i
if (ozone->is_playlist && !ozone->cursor_in_sidebar)
ozone_draw_icon(video_info, icon_size, icon_size, ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_BTN_L], video_width - (384 + 118 + 100 + 50) * scale_factor, video_height - ozone->dimensions.footer_height / 2 - icon_offset, video_width, video_height, 0, 1, ozone->theme_dynamic.entries_icon);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
ozone_draw_text(video_info, ozone,
do_swap ?
@ -1714,7 +1714,7 @@ static void ozone_draw_footer(ozone_handle_t *ozone, video_frame_info_t *video_i
}
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
void ozone_update_content_metadata(ozone_handle_t *ozone)

View File

@ -128,7 +128,7 @@ static void ozone_draw_cursor_slice(ozone_handle_t *ozone,
gfx_display_set_alpha(ozone->theme_dynamic.cursor_alpha, alpha);
gfx_display_set_alpha(ozone->theme_dynamic.cursor_border, alpha);
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
/* Cursor without border */
gfx_display_draw_texture_slice(
@ -158,7 +158,7 @@ static void ozone_draw_cursor_slice(ozone_handle_t *ozone,
ozone->textures[OZONE_TEXTURE_CURSOR_BORDER]
);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
static void ozone_draw_cursor_fallback(ozone_handle_t *ozone,
@ -397,7 +397,7 @@ void ozone_draw_messagebox(ozone_handle_t *ozone,
gfx_display_set_alpha(ozone->theme_dynamic.message_background, ozone->animations.messagebox_alpha);
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
if (ozone->has_all_assets) /* avoid drawing a black box if there's no assets */
{

View File

@ -65,9 +65,9 @@ static void ozone_draw_entry_value(ozone_handle_t *ozone,
/* check icon */
if (entry->checked)
{
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
ozone_draw_icon(video_info, 30 * scale_factor, 30 * scale_factor, ozone->theme->textures[OZONE_THEME_TEXTURE_CHECK], x - 20 * scale_factor, y - 22 * scale_factor, video_width, video_height, 0, 1, ozone->theme_dynamic.entries_checkmark);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
return;
}
@ -620,11 +620,11 @@ border_iterate:
gfx_display_set_alpha(icon_color, alpha);
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
ozone_draw_icon(video_info, ozone->dimensions.entry_icon_size, ozone->dimensions.entry_icon_size, texture,
(unsigned) ozone->dimensions.sidebar_width + x_offset + entry_padding + ozone->dimensions.entry_icon_padding,
y + scroll_y + ozone->dimensions.entry_height / 2 - ozone->dimensions.entry_icon_size / 2, video_width, video_height, 0, 1, icon_color);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
if (icon_color == ozone_pure_white)
gfx_display_set_alpha(icon_color, 1.0f);
@ -695,7 +695,7 @@ static void ozone_draw_no_thumbnail_available(ozone_handle_t *ozone,
unsigned video_width = video_info->width;
unsigned video_height = video_info->height;
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
ozone_draw_icon(video_info,
icon_size,
icon_size,
@ -705,7 +705,7 @@ 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(video_info);
gfx_display_blend_end(video_info->userdata);
ozone_draw_text(video_info,
ozone,

View File

@ -200,7 +200,7 @@ void ozone_draw_sidebar(ozone_handle_t *ozone, video_frame_info_t *video_info)
/* Menu tabs */
y = ozone->dimensions.header_height + ozone->dimensions.spacer_1px + ozone->dimensions.sidebar_padding_vertical;
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
for (i = 0; i < (unsigned)(ozone->system_tab_end+1); i++)
{
@ -227,7 +227,7 @@ void ozone_draw_sidebar(ozone_handle_t *ozone, video_frame_info_t *video_info)
y += ozone->dimensions.sidebar_entry_height + ozone->dimensions.sidebar_entry_padding_vertical;
}
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
/* Console tabs */
if (horizontal_list_size > 0)
@ -236,7 +236,7 @@ void ozone_draw_sidebar(ozone_handle_t *ozone, video_frame_info_t *video_info)
y += ozone->dimensions.sidebar_entry_padding_vertical + ozone->dimensions.spacer_1px;
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
for (i = 0; i < horizontal_list_size; i++)
{
@ -290,7 +290,7 @@ console_iterate:
y += ozone->dimensions.sidebar_entry_height + ozone->dimensions.sidebar_entry_padding_vertical;
}
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
font_driver_flush(video_width, video_height, ozone->fonts.sidebar);

View File

@ -722,7 +722,7 @@ static void stripes_render_keyboard(
{
uintptr_t texture = stripes->textures.list[STRIPES_TEXTURE_KEY_HOVER];
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
gfx_display_draw_texture(
video_info,
@ -733,7 +733,7 @@ static void stripes_render_keyboard(
&white[0],
texture);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
gfx_display_draw_text(stripes->font, grid[i],
@ -819,7 +819,7 @@ static void stripes_render_messagebox_internal(
}
}
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
gfx_display_draw_texture_slice(
video_info,
@ -2630,7 +2630,7 @@ static void stripes_draw_items(
stripes_calculate_visible_range(stripes, height, end, current, &first, &last);
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
for (i = first; i <= last; i++)
{
@ -2649,7 +2649,7 @@ static void stripes_draw_items(
break;
}
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
static void stripes_render(void *data,
@ -2745,9 +2745,9 @@ static void stripes_draw_bg(
draw.prim_type = MENU_DISPLAY_PRIM_TRIANGLESTRIP;
draw.pipeline.id = 0;
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
gfx_display_draw(&draw, video_info);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
static void stripes_draw_dark_layer(
@ -2783,9 +2783,9 @@ static void stripes_draw_dark_layer(
draw.prim_type = MENU_DISPLAY_PRIM_TRIANGLESTRIP;
draw.pipeline.id = 0;
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
gfx_display_draw(&draw, video_info);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
static void stripes_frame(void *data, video_frame_info_t *video_info)
@ -2847,7 +2847,7 @@ static void stripes_frame(void *data, video_frame_info_t *video_info)
rotate_draw.scale_enable = true;
gfx_display_rotate_z(&rotate_draw, video_info);
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
/* Horizontal stripes */
for (i = 0; i <= stripes_list_get_size(stripes, MENU_LIST_HORIZONTAL)
@ -2880,7 +2880,7 @@ static void stripes_frame(void *data, video_frame_info_t *video_info)
video_width, video_height,
&color[0]);
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
stack_width += node->width;
}
@ -2936,7 +2936,7 @@ static void stripes_frame(void *data, video_frame_info_t *video_info)
stack_width += node->width;
}
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
/* Vertical icons */
#if 0

View File

@ -917,7 +917,7 @@ static void xmb_render_messagebox_internal(
}
}
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
gfx_display_draw_texture_slice(
video_info,
@ -3382,7 +3382,7 @@ static void xmb_draw_items(
xmb_calculate_visible_range(xmb, height, end, (unsigned)current, &first, &last);
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
for (i = first; i <= last; i++)
{
@ -3403,7 +3403,7 @@ static void xmb_draw_items(
break;
}
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
static INLINE bool xmb_use_ps3_layout(
@ -3639,7 +3639,7 @@ static void xmb_draw_bg(
draw.pipeline.id = 0;
draw.pipeline.active = xmb_shader_pipeline_active(video_info);
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
gfx_display_set_viewport(video_width, video_height);
#ifdef HAVE_SHADERPIPELINE
@ -3714,7 +3714,7 @@ static void xmb_draw_bg(
}
gfx_display_draw(&draw, video_info);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
static void xmb_draw_dark_layer(
@ -3750,9 +3750,9 @@ static void xmb_draw_dark_layer(
draw.prim_type = GFX_DISPLAY_PRIM_TRIANGLESTRIP;
draw.pipeline.id = 0;
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
gfx_display_draw(&draw, video_info);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
/* Disables the fullscreen thumbnail view, with
@ -4633,7 +4633,7 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
if (coord_white[3] != 0 && !xmb->assets_missing)
{
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
xmb_draw_icon(video_info,
xmb->icon_size,
&mymat,
@ -4654,7 +4654,7 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
1,
&item_color[0],
xmb->shadow_offset);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
percent_width = (unsigned)
@ -4681,7 +4681,7 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
if (percent_width)
x_pos = percent_width + (xmb->icon_size / 2.5);
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
xmb_draw_icon(video_info,
xmb->icon_size,
&mymat,
@ -4695,7 +4695,7 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
1,
&item_color[0],
xmb->shadow_offset);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
timedate[0] = '\0';
@ -4721,7 +4721,7 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
if (coord_white[3] != 0 && !xmb->assets_missing)
{
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
xmb_draw_icon(video_info,
xmb->icon_size,
&mymat,
@ -4739,13 +4739,13 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
1,
&item_color[0],
xmb->shadow_offset);
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
/* Horizontal tab icons */
if (!xmb->assets_missing)
{
gfx_display_blend_begin(video_info);
gfx_display_blend_begin(video_info->userdata);
for (i = 0; i <= xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL)
+ xmb->system_tab_end; i++)
@ -4817,7 +4817,7 @@ static void xmb_frame(void *data, video_frame_info_t *video_info)
}
}
gfx_display_blend_end(video_info);
gfx_display_blend_end(video_info->userdata);
}
/* Vertical icons */