From 3d74be05c906421b8ad7315e8804a77403a75c0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Andr=C3=A9=20Santoni?= Date: Fri, 19 Jun 2015 02:16:45 +0700 Subject: [PATCH 1/2] (XMB) Draw boxart in the right bottom edge of the screen --- menu/drivers/xmb.c | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 748f9cb192..b18e4a6048 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -418,6 +418,38 @@ static void xmb_draw_icon_predone(gl_t *gl, xmb_handle_t *xmb, menu_gl_draw_frame(gl->shader, &coords, mymat, false, texture); } +static void xmb_draw_boxart(gl_t *gl, xmb_handle_t *xmb) +{ + struct gl_coords coords; + unsigned width, height; + math_matrix_4x4 mymat, mrot, mscal; + + video_driver_get_size(&width, &height); + + GLfloat color[] = { + 1.0f, 1.0f, 1.0f, xmb->alpha, + 1.0f, 1.0f, 1.0f, xmb->alpha, + 1.0f, 1.0f, 1.0f, xmb->alpha, + 1.0f, 1.0f, 1.0f, xmb->alpha, + }; + + glViewport(width - 256, 0, 256, 256); + + coords.vertices = 4; + coords.vertex = rmb_vertex; + coords.tex_coord = rmb_tex_coord; + coords.lut_tex_coord = rmb_tex_coord; + coords.color = color; + + matrix_4x4_rotate_z(&mrot, 0); + matrix_4x4_multiply(&mymat, &mrot, &gl->mvp_no_rot); + + matrix_4x4_scale(&mscal, 1, 1, 1); + matrix_4x4_multiply(&mymat, &mscal, &mymat); + + menu_gl_draw_frame(gl->shader, &coords, &mymat, false, xmb->boxart); +} + static void xmb_draw_text(menu_handle_t *menu, xmb_handle_t *xmb, const char *str, float x, @@ -986,8 +1018,6 @@ static GLuint xmb_icon_get_id(xmb_handle_t *xmb, case MENU_FILE_PLAIN: return xmb->textures.list[XMB_TEXTURE_FILE].id; case MENU_FILE_PLAYLIST_ENTRY: - if (xmb->boxart && active && node && node->zoom == 1) - return xmb->boxart; if (core_node) return core_node->content_icon; return xmb->textures.list[XMB_TEXTURE_FILE].id; @@ -1435,6 +1465,9 @@ static void xmb_frame(void) xmb_draw_icon_begin(gl); + if (settings->menu.boxart_enable && xmb->boxart) + xmb_draw_boxart(gl, xmb); + if (settings->menu.timedate_enable) xmb_draw_icon_predone(gl, xmb, &mymat, xmb->textures.list[XMB_TEXTURE_CLOCK].id, width - xmb->icon.size, xmb->icon.size, 1, 0, 1); From 2d344c50b970692e4e670c4030e5882a7cfab70f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Andr=C3=A9=20Santoni?= Date: Fri, 19 Jun 2015 02:24:38 +0700 Subject: [PATCH 2/2] (XMB) Make the boxart persistant when navigating the content details --- menu/drivers/xmb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index b18e4a6048..fe71e8e891 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -571,7 +571,7 @@ static void xmb_update_boxart(xmb_handle_t *xmb, unsigned i) if (path_file_exists(path)) rarch_main_data_msg_queue_push(DATA_TYPE_IMAGE, path, "cb_menu_boxart", 0, 1, true); - else + else if (xmb->depth == 1) xmb->boxart = 0; }