This commit is contained in:
twinaphex 2020-03-09 00:34:31 +01:00
parent 5388448cf3
commit a0446f778c
6 changed files with 80 additions and 46 deletions

View File

@ -765,26 +765,24 @@ void gfx_display_draw_blend(
gfx_display_blend_end(data); gfx_display_blend_end(data);
} }
void gfx_display_draw_pipeline(gfx_display_ctx_draw_t *draw, void gfx_display_draw_pipeline(
video_frame_info_t *video_info) gfx_display_ctx_draw_t *draw,
void *userdata,
unsigned video_width,
unsigned video_height)
{ {
void *userdata = video_info->userdata;
unsigned video_width = video_info->width;
unsigned video_height = video_info->height;
if (dispctx && draw && dispctx->draw_pipeline) if (dispctx && draw && dispctx->draw_pipeline)
dispctx->draw_pipeline(draw, userdata, dispctx->draw_pipeline(draw, userdata,
video_width, video_height); video_width, video_height);
} }
void gfx_display_draw_bg(gfx_display_ctx_draw_t *draw, void gfx_display_draw_bg(gfx_display_ctx_draw_t *draw,
video_frame_info_t *video_info, bool add_opacity_to_wallpaper, void *userdata, bool add_opacity_to_wallpaper,
float override_opacity) float override_opacity)
{ {
static struct video_coords coords; static struct video_coords coords;
const float *new_vertex = NULL; const float *new_vertex = NULL;
const float *new_tex_coord = NULL; const float *new_tex_coord = NULL;
void *userdata = video_info->userdata;
if (!dispctx || !draw) if (!dispctx || !draw)
return; return;
@ -820,19 +818,19 @@ void gfx_display_draw_bg(gfx_display_ctx_draw_t *draw,
userdata); userdata);
} }
void gfx_display_draw_gradient(gfx_display_ctx_draw_t *draw, void gfx_display_draw_gradient(
video_frame_info_t *video_info) gfx_display_ctx_draw_t *draw,
void *userdata,
unsigned video_width,
unsigned video_height,
float menu_wallpaper_opacity
)
{ {
void *userdata = video_info->userdata;
unsigned video_width = video_info->width;
unsigned video_height = video_info->height;
float menu_wallpaper_opacity = video_info->menu_wallpaper_opacity;
draw->texture = 0; draw->texture = 0;
draw->x = 0; draw->x = 0;
draw->y = 0; draw->y = 0;
gfx_display_draw_bg(draw, video_info, false, gfx_display_draw_bg(draw, userdata, false,
menu_wallpaper_opacity); menu_wallpaper_opacity);
gfx_display_draw(draw, userdata, gfx_display_draw(draw, userdata,
video_width, video_height); video_width, video_height);
@ -975,7 +973,9 @@ void gfx_display_draw_texture(
* The middle sections will only scale in the X axis, and the side * The middle sections will only scale in the X axis, and the side
* sections will only scale in the Y axis. */ * sections will only scale in the Y axis. */
void gfx_display_draw_texture_slice( void gfx_display_draw_texture_slice(
video_frame_info_t *video_info, void *userdata,
unsigned video_width,
unsigned video_height,
int x, int y, unsigned w, unsigned h, int x, int y, unsigned w, unsigned h,
unsigned new_w, unsigned new_h, unsigned new_w, unsigned new_h,
unsigned width, unsigned height, unsigned width, unsigned height,
@ -987,9 +987,6 @@ void gfx_display_draw_texture_slice(
math_matrix_4x4 mymat; math_matrix_4x4 mymat;
unsigned i; unsigned i;
float V_BL[2], V_BR[2], V_TL[2], V_TR[2], T_BL[2], T_BR[2], T_TL[2], T_TR[2]; float V_BL[2], V_BR[2], V_TL[2], V_TR[2], T_BL[2], T_BR[2], T_TL[2], T_TR[2];
void *userdata = video_info->userdata;
unsigned video_width = video_info->width;
unsigned video_height = video_info->height;
/* need space for the coordinates of two triangles in a strip, /* need space for the coordinates of two triangles in a strip,
* so 8 vertices */ * so 8 vertices */

View File

@ -284,15 +284,24 @@ void gfx_display_draw_keyboard(
char *grid[], unsigned id, char *grid[], unsigned id,
unsigned text_color); unsigned text_color);
void gfx_display_draw_pipeline(gfx_display_ctx_draw_t *draw, void gfx_display_draw_pipeline(
video_frame_info_t *video_info); gfx_display_ctx_draw_t *draw,
void *userdata,
unsigned video_width,
unsigned video_height);
void gfx_display_draw_bg( void gfx_display_draw_bg(
gfx_display_ctx_draw_t *draw, gfx_display_ctx_draw_t *draw,
video_frame_info_t *video_info, void *userdata,
bool add_opacity, float opacity_override); bool add_opacity, float opacity_override);
void gfx_display_draw_gradient( void gfx_display_draw_gradient(
gfx_display_ctx_draw_t *draw, gfx_display_ctx_draw_t *draw,
video_frame_info_t *video_info); void *userdata,
unsigned video_width,
unsigned video_height,
float menu_wallpaper_opacity
);
void gfx_display_draw_quad( void gfx_display_draw_quad(
void *data, void *data,
@ -318,10 +327,14 @@ void gfx_display_draw_texture(
int x, int y, unsigned w, unsigned h, int x, int y, unsigned w, unsigned h,
unsigned width, unsigned height, unsigned width, unsigned height,
float *color, uintptr_t texture); float *color, uintptr_t texture);
void gfx_display_draw_texture_slice( void gfx_display_draw_texture_slice(
video_frame_info_t *video_info, void *userdata,
unsigned video_width,
unsigned video_height,
int x, int y, unsigned w, unsigned h, int x, int y, unsigned w, unsigned h,
unsigned new_w, unsigned new_h, unsigned width, unsigned height, unsigned new_w, unsigned new_h,
unsigned width, unsigned height,
float *color, unsigned offset, float scale_factor, uintptr_t texture); float *color, unsigned offset, float scale_factor, uintptr_t texture);
void gfx_display_rotate_z(gfx_display_ctx_rotate_draw_t *draw, void *data); void gfx_display_rotate_z(gfx_display_ctx_rotate_draw_t *draw, void *data);

View File

@ -3555,7 +3555,8 @@ static void materialui_render_background(materialui_handle_t *mui, video_frame_i
/* Draw background */ /* Draw background */
gfx_display_blend_begin(video_info->userdata); gfx_display_blend_begin(video_info->userdata);
gfx_display_draw_bg(&draw, video_info, add_opacity, opacity_override); gfx_display_draw_bg(&draw, video_info->userdata,
add_opacity, opacity_override);
gfx_display_draw(&draw, video_info->userdata, gfx_display_draw(&draw, video_info->userdata,
video_info->width, video_info->height); video_info->width, video_info->height);
gfx_display_blend_end(video_info->userdata); gfx_display_blend_end(video_info->userdata);

View File

@ -132,7 +132,9 @@ static void ozone_draw_cursor_slice(ozone_handle_t *ozone,
/* Cursor without border */ /* Cursor without border */
gfx_display_draw_texture_slice( gfx_display_draw_texture_slice(
video_info, video_info->userdata,
video_info->width,
video_info->height,
slice_x, slice_x,
slice_y, slice_y,
80, 80, 80, 80,
@ -146,7 +148,9 @@ static void ozone_draw_cursor_slice(ozone_handle_t *ozone,
/* Tainted border */ /* Tainted border */
gfx_display_draw_texture_slice( gfx_display_draw_texture_slice(
video_info, video_info->userdata,
video_info->width,
video_info->height,
slice_x, slice_x,
slice_y, slice_y,
80, 80, 80, 80,
@ -530,17 +534,19 @@ void ozone_draw_messagebox(ozone_handle_t *ozone,
unsigned slice_new_h = ozone->footer_font_glyph_height * (list->size + 2); unsigned slice_new_h = ozone->footer_font_glyph_height * (list->size + 2);
gfx_display_draw_texture_slice( gfx_display_draw_texture_slice(
video_info, video_info->userdata,
slice_x, video_info->width,
y, video_info->height,
256, 256, slice_x,
slice_new_w, y,
slice_new_h, 256, 256,
width, height, slice_new_w,
ozone->theme_dynamic.message_background, slice_new_h,
16, scale_factor, width, height,
ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_DIALOG_SLICE] ozone->theme_dynamic.message_background,
); 16, scale_factor,
ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_DIALOG_SLICE]
);
} }
for (i = 0; i < list->size; i++) for (i = 0; i < list->size; i++)

View File

@ -827,7 +827,9 @@ static void stripes_render_messagebox_internal(
gfx_display_blend_begin(video_info->userdata); gfx_display_blend_begin(video_info->userdata);
gfx_display_draw_texture_slice( gfx_display_draw_texture_slice(
video_info, video_info->userdata,
video_info->width,
video_info->height,
x - longest_width/2 - stripes->margins_dialog, x - longest_width/2 - stripes->margins_dialog,
y + stripes->margins_slice - stripes->margins_dialog, y + stripes->margins_slice - stripes->margins_dialog,
256, 256, 256, 256,

View File

@ -922,7 +922,9 @@ static void xmb_render_messagebox_internal(
gfx_display_blend_begin(video_info->userdata); gfx_display_blend_begin(video_info->userdata);
gfx_display_draw_texture_slice( gfx_display_draw_texture_slice(
video_info, video_info->userdata,
video_info->width,
video_info->height,
x - longest_width/2 - xmb->margins_dialog, x - longest_width/2 - xmb->margins_dialog,
y + xmb->margins_slice - xmb->margins_dialog, y + xmb->margins_slice - xmb->margins_dialog,
256, 256, 256, 256,
@ -3656,7 +3658,12 @@ static void xmb_draw_bg(
else else
gfx_display_set_alpha(draw.color, coord_white[3]); gfx_display_set_alpha(draw.color, coord_white[3]);
gfx_display_draw_gradient(&draw, video_info); gfx_display_draw_gradient(&draw,
video_info->userdata,
video_info->width,
video_info->height,
video_info->menu_wallpaper_opacity
);
draw.pipeline.id = VIDEO_SHADER_MENU_2; draw.pipeline.id = VIDEO_SHADER_MENU_2;
@ -3681,7 +3688,10 @@ static void xmb_draw_bg(
break; break;
} }
gfx_display_draw_pipeline(&draw, video_info); gfx_display_draw_pipeline(&draw,
video_info->userdata,
video_info->width,
video_info->height);
} }
else else
#endif #endif
@ -3697,7 +3707,11 @@ static void xmb_draw_bg(
gfx_display_set_alpha(draw.color, coord_white[3]); gfx_display_set_alpha(draw.color, coord_white[3]);
if (xmb_color_theme != XMB_THEME_WALLPAPER) if (xmb_color_theme != XMB_THEME_WALLPAPER)
gfx_display_draw_gradient(&draw, video_info); gfx_display_draw_gradient(&draw,
video_info->userdata,
video_info->width,
video_info->height,
video_info->menu_wallpaper_opacity);
{ {
bool add_opacity = false; bool add_opacity = false;
@ -3711,7 +3725,8 @@ static void xmb_draw_bg(
if (libretro_running || xmb_color_theme == XMB_THEME_WALLPAPER) if (libretro_running || xmb_color_theme == XMB_THEME_WALLPAPER)
add_opacity = true; add_opacity = true;
gfx_display_draw_bg(&draw, video_info, add_opacity, menu_wallpaper_opacity); gfx_display_draw_bg(&draw, video_info->userdata,
add_opacity, menu_wallpaper_opacity);
} }
} }