diff --git a/Makefile.common b/Makefile.common index 25439a632d..6a6e0e138d 100644 --- a/Makefile.common +++ b/Makefile.common @@ -390,7 +390,7 @@ ifeq ($(HAVE_RGUI), 1) DEFINES += -DHAVE_MENU -DHAVE_RGUI HAVE_MENU_COMMON = 1 ifeq ($(HAVE_GLUI), 1) - OBJ += menu/drivers/glui.o + OBJ += menu/drivers/materialui.o DEFINES += -DHAVE_GLUI endif ifeq ($(HAVE_ZARCH), 1) diff --git a/griffin/griffin.c b/griffin/griffin.c index 251adc0a5a..5e5d333dcb 100644 --- a/griffin/griffin.c +++ b/griffin/griffin.c @@ -834,7 +834,7 @@ MENU #endif #ifdef HAVE_GLUI -#include "../menu/drivers/glui.c" +#include "../menu/drivers/materialui.c" #endif #ifdef HAVE_ZARCH diff --git a/menu/drivers/glui.c b/menu/drivers/materialui.c similarity index 70% rename from menu/drivers/glui.c rename to menu/drivers/materialui.c index 5cffc47035..3b00694a24 100644 --- a/menu/drivers/glui.c +++ b/menu/drivers/materialui.c @@ -62,12 +62,12 @@ enum #define GLUI_SYSTEM_TAB_END GLUI_SYSTEM_TAB_SETTINGS -struct glui_texture_item +struct materialui_texture_item { GRuint id; }; -typedef struct glui_handle +typedef struct materialui_handle { unsigned tabs_height; unsigned line_height; @@ -83,8 +83,8 @@ typedef struct glui_handle float alpha; } arrow; - struct glui_texture_item bg; - struct glui_texture_item list[GLUI_TEXTURE_LAST]; + struct materialui_texture_item bg; + struct materialui_texture_item list[GLUI_TEXTURE_LAST]; GRuint white; } textures; @@ -102,23 +102,23 @@ typedef struct glui_handle } categories; gfx_font_raster_block_t list_block; -} glui_handle_t; +} materialui_handle_t; -static const GRfloat glui_vertexes[] = { +static const GRfloat materialui_vertexes[] = { 0, 0, 1, 0, 0, 1, 1, 1 }; -static const GRfloat glui_tex_coords[] = { +static const GRfloat materialui_tex_coords[] = { 0, 1, 1, 1, 0, 0, 1, 0 }; -static void glui_context_reset_textures(glui_handle_t *glui, const char *iconpath) +static void materialui_context_reset_textures(materialui_handle_t *materialui, const char *iconpath) { unsigned i; @@ -166,14 +166,14 @@ static void glui_context_reset_textures(glui_handle_t *glui, const char *iconpat texture_image_load(&ti, path); - glui->textures.list[i].id = video_texture_load(&ti, + materialui->textures.list[i].id = video_texture_load(&ti, TEXTURE_BACKEND_OPENGL, TEXTURE_FILTER_MIPMAP_LINEAR); texture_image_free(&ti); } } -static void glui_draw_icon(glui_handle_t *glui, +static void materialui_draw_icon(materialui_handle_t *materialui, GRuint texture, float x, float y, unsigned width, unsigned height, @@ -188,40 +188,40 @@ static void glui_draw_icon(glui_handle_t *glui, menu_display_matrix_4x4_rotate_z(&mymat, rotation, scale_factor, scale_factor, 1, true); coords.vertices = 4; - coords.vertex = glui_vertexes; - coords.tex_coord = glui_tex_coords; - coords.lut_tex_coord = glui_tex_coords; + coords.vertex = materialui_vertexes; + coords.tex_coord = materialui_tex_coords; + coords.lut_tex_coord = materialui_tex_coords; coords.color = (const float*)color; menu_display_draw_frame( x, - height - y - glui->icon_size, - glui->icon_size, - glui->icon_size, + height - y - materialui->icon_size, + materialui->icon_size, + materialui->icon_size, &coords, &mymat, texture, MENU_DISPLAY_PRIM_TRIANGLESTRIP); menu_display_blend_end(); } -static void glui_blit_line(float x, float y, unsigned width, unsigned height, +static void materialui_blit_line(float x, float y, unsigned width, unsigned height, const char *message, uint32_t color, enum text_alignment text_align) { int font_size; void *fb_buf = NULL; - glui_handle_t *glui = NULL; + materialui_handle_t *materialui = NULL; struct font_params params = {0}; menu_handle_t *menu = menu_driver_get_ptr(); if (!menu) return; - glui = (glui_handle_t*)menu->userdata; + materialui = (materialui_handle_t*)menu->userdata; menu_display_ctl(MENU_DISPLAY_CTL_FONT_SIZE, &font_size); params.x = x / width; - params.y = 1.0f - (y + glui->line_height / 2 + font_size / 3) + params.y = 1.0f - (y + materialui->line_height / 2 + font_size / 3) / height; params.scale = 1.0; params.color = color; @@ -233,19 +233,19 @@ static void glui_blit_line(float x, float y, unsigned width, unsigned height, video_driver_set_osd_msg(message, ¶ms, fb_buf); } -static void glui_render_quad(int x, int y, int w, int h, +static void materialui_render_quad(int x, int y, int w, int h, unsigned width, unsigned height, GRfloat *coord_color) { struct gfx_coords coords; menu_handle_t *menu = menu_driver_get_ptr(); - glui_handle_t *glui = (glui_handle_t*)menu->userdata; + materialui_handle_t *materialui = (materialui_handle_t*)menu->userdata; coords.vertices = 4; - coords.vertex = glui_vertexes; - coords.tex_coord = glui_tex_coords; - coords.lut_tex_coord = glui_tex_coords; + coords.vertex = materialui_vertexes; + coords.tex_coord = materialui_tex_coords; + coords.lut_tex_coord = materialui_tex_coords; coords.color = coord_color; menu_display_blend_begin(); @@ -255,17 +255,17 @@ static void glui_render_quad(int x, int y, int w, int h, height - y - h, w, h, - &coords, NULL, glui->textures.white, + &coords, NULL, materialui->textures.white, MENU_DISPLAY_PRIM_TRIANGLESTRIP); menu_display_blend_end(); } -static void glui_draw_scrollbar(unsigned width, unsigned height, GRfloat *coord_color) +static void materialui_draw_scrollbar(unsigned width, unsigned height, GRfloat *coord_color) { unsigned header_height; float content_height, total_height, scrollbar_width, scrollbar_height, y; - glui_handle_t *glui = NULL; + materialui_handle_t *materialui = NULL; menu_handle_t *menu = menu_driver_get_ptr(); if (!menu) @@ -273,9 +273,9 @@ static void glui_draw_scrollbar(unsigned width, unsigned height, GRfloat *coord_ menu_display_ctl(MENU_DISPLAY_CTL_HEADER_HEIGHT, &header_height); - glui = (glui_handle_t*)menu->userdata; - content_height = menu_entries_get_end() * glui->line_height; - total_height = height - header_height - glui->tabs_height; + materialui = (materialui_handle_t*)menu->userdata; + content_height = menu_entries_get_end() * materialui->line_height; + total_height = height - header_height - materialui->tabs_height; scrollbar_height = total_height / (content_height / total_height) - (header_height / 6); y = total_height * menu->scroll_y / content_height; @@ -285,7 +285,7 @@ static void glui_draw_scrollbar(unsigned width, unsigned height, GRfloat *coord_ if (scrollbar_height <= header_height / 12) scrollbar_height = header_height / 12; - glui_render_quad( + materialui_render_quad( width - scrollbar_width - (header_height / 12), header_height + y + (header_height / 12), scrollbar_width, @@ -295,9 +295,9 @@ static void glui_draw_scrollbar(unsigned width, unsigned height, GRfloat *coord_ } } -static void glui_get_message(const char *message) +static void materialui_get_message(const char *message) { - glui_handle_t *glui = NULL; + materialui_handle_t *materialui = NULL; menu_handle_t *menu = menu_driver_get_ptr(); if (!menu) @@ -306,13 +306,13 @@ static void glui_get_message(const char *message) if (!message || !*message) return; - glui = (glui_handle_t*)menu->userdata; + materialui = (materialui_handle_t*)menu->userdata; - if (glui) - strlcpy(glui->box_message, message, sizeof(glui->box_message)); + if (materialui) + strlcpy(materialui->box_message, message, sizeof(materialui->box_message)); } -static void glui_render_messagebox(const char *message) +static void materialui_render_messagebox(const char *message) { unsigned i; unsigned width, height; @@ -346,7 +346,7 @@ static void glui_render_messagebox(const char *message) { const char *msg = list->elems[i].data; if (msg) - glui_blit_line(x, y + i * font_size, + materialui_blit_line(x, y + i * font_size, width, height, msg, normal_color, TEXT_ALIGN_CENTER); } @@ -355,12 +355,12 @@ end: string_list_free(list); } -static void glui_render(void) +static void materialui_render(void) { float delta_time, dt; int bottom; unsigned width, height, header_height; - glui_handle_t *glui = NULL; + materialui_handle_t *materialui = NULL; menu_handle_t *menu = menu_driver_get_ptr(); settings_t *settings = config_get_ptr(); @@ -369,7 +369,7 @@ static void glui_render(void) video_driver_get_size(&width, &height); - glui = (glui_handle_t*)menu->userdata; + materialui = (materialui_handle_t*)menu->userdata; menu_animation_ctl(MENU_ANIMATION_CTL_DELTA_TIME, &delta_time); @@ -385,8 +385,8 @@ static void glui_render(void) int16_t pointer_y = menu_input_pointer_state(MENU_POINTER_Y_AXIS); float old_accel_val, new_accel_val; unsigned new_pointer_val = - (pointer_y - glui->line_height + menu->scroll_y - 16) - / glui->line_height; + (pointer_y - materialui->line_height + menu->scroll_y - 16) + / materialui->line_height; menu_input_ctl(MENU_INPUT_CTL_POINTER_ACCEL_READ, &old_accel_val); menu_input_ctl(MENU_INPUT_CTL_POINTER_PTR, &new_pointer_val); @@ -403,30 +403,30 @@ static void glui_render(void) int16_t mouse_y = menu_input_mouse_state(MENU_MOUSE_Y_AXIS); unsigned new_pointer_val = - (mouse_y - glui->line_height + menu->scroll_y - 16) - / glui->line_height; + (mouse_y - materialui->line_height + menu->scroll_y - 16) + / materialui->line_height; menu_input_ctl(MENU_INPUT_CTL_MOUSE_PTR, &new_pointer_val); } if (menu->scroll_y < 0) menu->scroll_y = 0; - bottom = menu_entries_get_end() * glui->line_height - - height + header_height + glui->tabs_height; + bottom = menu_entries_get_end() * materialui->line_height + - height + header_height + materialui->tabs_height; if (menu->scroll_y > bottom) menu->scroll_y = bottom; - if (menu_entries_get_end() * glui->line_height - < height - header_height - glui->tabs_height) + if (menu_entries_get_end() * materialui->line_height + < height - header_height - materialui->tabs_height) menu->scroll_y = 0; - if (menu_entries_get_end() < height / glui->line_height) + if (menu_entries_get_end() < height / materialui->line_height) menu_entries_set_start(0); else - menu_entries_set_start(menu->scroll_y / glui->line_height); + menu_entries_set_start(menu->scroll_y / materialui->line_height); } -static void glui_render_label_value(glui_handle_t *glui, +static void materialui_render_label_value(materialui_handle_t *materialui, int y, unsigned width, unsigned height, uint64_t index, uint32_t color, bool selected, const char *label, const char *value, GRfloat *pure_white) @@ -443,33 +443,33 @@ static void glui_render_label_value(glui_handle_t *glui, label_str[0] = '\0'; value_str[0] = '\0'; - usable_width = width - (glui->margin * 2); + usable_width = width - (materialui->margin * 2); - if (value_len * glui->glyph_width > usable_width / 2) - value_len = (usable_width/2) / glui->glyph_width; + if (value_len * materialui->glyph_width > usable_width / 2) + value_len = (usable_width/2) / materialui->glyph_width; - ticker_limit = (usable_width / glui->glyph_width) - (value_len + 2); + ticker_limit = (usable_width / materialui->glyph_width) - (value_len + 2); menu_animation_ticker_str(label_str, ticker_limit, index, label, selected); menu_animation_ticker_str(value_str, value_len, index, value, selected); - glui_blit_line(glui->margin, y, width, height, label_str, color, TEXT_ALIGN_LEFT); + materialui_blit_line(materialui->margin, y, width, height, label_str, color, TEXT_ALIGN_LEFT); hash_value = menu_hash_calculate(value); if (!strcmp(value, "disabled") || !strcmp(value, "off")) { - if (glui->textures.list[GLUI_TEXTURE_SWITCH_OFF].id) - texture_switch = glui->textures.list[GLUI_TEXTURE_SWITCH_OFF].id; + if (materialui->textures.list[GLUI_TEXTURE_SWITCH_OFF].id) + texture_switch = materialui->textures.list[GLUI_TEXTURE_SWITCH_OFF].id; else do_draw_text = true; } else if (!strcmp(value, "enabled") || !strcmp(value, "on")) { - if (glui->textures.list[GLUI_TEXTURE_SWITCH_ON].id) - texture_switch = glui->textures.list[GLUI_TEXTURE_SWITCH_ON].id; + if (materialui->textures.list[GLUI_TEXTURE_SWITCH_ON].id) + texture_switch = materialui->textures.list[GLUI_TEXTURE_SWITCH_ON].id; else do_draw_text = true; } @@ -498,14 +498,14 @@ static void glui_render_label_value(glui_handle_t *glui, case MENU_VALUE_MOVIE: break; case MENU_VALUE_ON: - if (glui->textures.list[GLUI_TEXTURE_SWITCH_ON].id) - texture_switch = glui->textures.list[GLUI_TEXTURE_SWITCH_ON].id; + if (materialui->textures.list[GLUI_TEXTURE_SWITCH_ON].id) + texture_switch = materialui->textures.list[GLUI_TEXTURE_SWITCH_ON].id; else do_draw_text = true; break; case MENU_VALUE_OFF: - if (glui->textures.list[GLUI_TEXTURE_SWITCH_OFF].id) - texture_switch = glui->textures.list[GLUI_TEXTURE_SWITCH_OFF].id; + if (materialui->textures.list[GLUI_TEXTURE_SWITCH_OFF].id) + texture_switch = materialui->textures.list[GLUI_TEXTURE_SWITCH_OFF].id; else do_draw_text = true; break; @@ -516,15 +516,15 @@ static void glui_render_label_value(glui_handle_t *glui, } if (do_draw_text) - glui_blit_line(width - glui->margin, y, width, height, value_str, color, TEXT_ALIGN_RIGHT); + materialui_blit_line(width - materialui->margin, y, width, height, value_str, color, TEXT_ALIGN_RIGHT); if (texture_switch) - glui_draw_icon(glui, texture_switch, - width - glui->margin - glui->icon_size, y, width, height, 0, 1, &pure_white[0]); + materialui_draw_icon(materialui, texture_switch, + width - materialui->margin - materialui->icon_size, y, width, height, 0, 1, &pure_white[0]); } -static void glui_render_menu_list(glui_handle_t *glui, +static void materialui_render_menu_list(materialui_handle_t *materialui, unsigned width, unsigned height, menu_handle_t *menu, uint32_t normal_color, @@ -541,7 +541,7 @@ static void glui_render_menu_list(glui_handle_t *glui, menu_display_ctl(MENU_DISPLAY_CTL_HEADER_HEIGHT, &header_height); - glui->list_block.carr.coords.vertices = 0; + materialui->list_block.carr.coords.vertices = 0; for (i = menu_entries_get_start(); i < end; i++) { @@ -553,32 +553,32 @@ static void glui_render_menu_list(glui_handle_t *glui, if (!menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SELECTION, &selection)) continue; - y = header_height - menu->scroll_y + (glui->line_height * i); + y = header_height - menu->scroll_y + (materialui->line_height * i); - if ((y - (int)glui->line_height) > (int)height - || ((y + (int)glui->line_height) < 0)) + if ((y - (int)materialui->line_height) > (int)height + || ((y + (int)materialui->line_height) < 0)) continue; menu_entry_get(&entry, 0, i, NULL, true); entry_selected = selection == i; - glui_render_label_value(glui, y, width, height, *frame_count / 40, + materialui_render_label_value(materialui, y, width, height, *frame_count / 40, entry_selected ? hover_color : normal_color, entry_selected, entry.path, entry.value, pure_white); } } -static void glui_draw_cursor(glui_handle_t *glui, +static void materialui_draw_cursor(materialui_handle_t *materialui, GRfloat *color, float x, float y, unsigned width, unsigned height) { struct gfx_coords coords; coords.vertices = 4; - coords.vertex = glui_vertexes; - coords.tex_coord = glui_tex_coords; - coords.lut_tex_coord = glui_tex_coords; + coords.vertex = materialui_vertexes; + coords.tex_coord = materialui_tex_coords; + coords.lut_tex_coord = materialui_tex_coords; coords.color = (const float*)color; menu_display_blend_begin(); @@ -589,13 +589,13 @@ static void glui_draw_cursor(glui_handle_t *glui, 64, 64, &coords, NULL, - glui->textures.list[GLUI_TEXTURE_POINTER].id, + materialui->textures.list[GLUI_TEXTURE_POINTER].id, MENU_DISPLAY_PRIM_TRIANGLESTRIP); menu_display_blend_end(); } -static size_t glui_list_get_size(void *data, menu_list_type_t type) +static size_t materialui_list_get_size(void *data, menu_list_type_t type) { size_t list_size = 0; @@ -614,7 +614,7 @@ static size_t glui_list_get_size(void *data, menu_list_type_t type) return list_size; } -static void glui_frame(void) +static void materialui_frame(void) { unsigned header_height; bool display_kb; @@ -672,7 +672,7 @@ static void glui_frame(void) char title_buf[PATH_MAX_LENGTH]; size_t selection; size_t title_margin; - glui_handle_t *glui = NULL; + materialui_handle_t *materialui = NULL; driver_t *driver = driver_get_ptr(); menu_handle_t *menu = menu_driver_get_ptr(); settings_t *settings = config_get_ptr(); @@ -691,7 +691,7 @@ static void glui_frame(void) if (!menu || !menu->userdata) return; - glui = (glui_handle_t*)menu->userdata; + materialui = (materialui_handle_t*)menu->userdata; msg[0] = '\0'; title[0] = '\0'; @@ -707,16 +707,16 @@ static void glui_frame(void) { menu_display_frame_background( width, height, - glui->textures.white, 0.75f, false, + materialui->textures.white, 0.75f, false, &white_transp_bg[0], &white_bg[0], - &glui_vertexes[0], &glui_tex_coords[0], 4, + &materialui_vertexes[0], &materialui_tex_coords[0], 4, MENU_DISPLAY_PRIM_TRIANGLESTRIP); } else { menu_display_clear_color(1.0f, 1.0f, 1.0f, 0.75f); - if (glui->textures.bg.id) + if (materialui->textures.bg.id) { background_rendered = true; @@ -729,9 +729,9 @@ static void glui_frame(void) menu_display_frame_background( width, height, - glui->textures.bg.id, 0.75f, true, + materialui->textures.bg.id, 0.75f, true, &white_transp_bg[0], &white_bg[0], - &glui_vertexes[0], &glui_tex_coords[0], 4, + &materialui_vertexes[0], &materialui_tex_coords[0], 4, MENU_DISPLAY_PRIM_TRIANGLESTRIP); /* Restore opacity of transposed white background */ @@ -763,42 +763,42 @@ static void glui_frame(void) lightblue_bg[15] = 1.00; } /* highlighted entry */ - glui_render_quad(0, - header_height - menu->scroll_y + glui->line_height * - selection, width, glui->line_height, + materialui_render_quad(0, + header_height - menu->scroll_y + materialui->line_height * + selection, width, materialui->line_height, width, height, &lightblue_bg[0]); - menu_display_font_bind_block(menu, driver->font_osd_driver, &glui->list_block); + menu_display_font_bind_block(menu, driver->font_osd_driver, &materialui->list_block); - glui_render_menu_list(glui, width, height, menu, normal_color, hover_color, &pure_white[0]); + materialui_render_menu_list(materialui, width, height, menu, normal_color, hover_color, &pure_white[0]); menu_display_font_flush_block(menu, driver->font_osd_driver); menu_animation_ctl(MENU_ANIMATION_CTL_SET_ACTIVE, NULL); /* header */ - glui_render_quad( 0, 0, width, + materialui_render_quad( 0, 0, width, header_height, width, height, &blue_bg[0]); /* display tabs if depth equal one, if not hide them */ - if (glui_list_get_size(menu, MENU_LIST_PLAIN) == 1) + if (materialui_list_get_size(menu, MENU_LIST_PLAIN) == 1) { float scale_factor; menu_display_ctl(MENU_DISPLAY_CTL_GET_DPI, &scale_factor); - glui->tabs_height = scale_factor / 3; + materialui->tabs_height = scale_factor / 3; /* tabs background */ - glui_render_quad(0, height - glui->tabs_height, width, - glui->tabs_height, + materialui_render_quad(0, height - materialui->tabs_height, width, + materialui->tabs_height, width, height, &white_bg[0]); /* tabs separator */ - glui_render_quad(0, height - glui->tabs_height, width, + materialui_render_quad(0, height - materialui->tabs_height, width, 1, width, height, &grey_bg[0]); @@ -809,31 +809,31 @@ static void glui_frame(void) switch (i) { case GLUI_SYSTEM_TAB_MAIN: - tab_icon = (i == glui->categories.selection_ptr) + tab_icon = (i == materialui->categories.selection_ptr) ? GLUI_TEXTURE_TAB_MAIN_ACTIVE : GLUI_TEXTURE_TAB_MAIN_PASSIVE; break; case GLUI_SYSTEM_TAB_PLAYLISTS: - tab_icon = (i == glui->categories.selection_ptr) + tab_icon = (i == materialui->categories.selection_ptr) ? GLUI_TEXTURE_TAB_PLAYLISTS_ACTIVE : GLUI_TEXTURE_TAB_PLAYLISTS_PASSIVE; break; case GLUI_SYSTEM_TAB_SETTINGS: - tab_icon = (i == glui->categories.selection_ptr) + tab_icon = (i == materialui->categories.selection_ptr) ? GLUI_TEXTURE_TAB_SETTINGS_ACTIVE : GLUI_TEXTURE_TAB_SETTINGS_PASSIVE; break; } - glui_draw_icon(glui, glui->textures.list[tab_icon].id, - width / (GLUI_SYSTEM_TAB_END+1) * (i+0.5) - glui->icon_size/2, - height - glui->tabs_height, + materialui_draw_icon(materialui, materialui->textures.list[tab_icon].id, + width / (GLUI_SYSTEM_TAB_END+1) * (i+0.5) - materialui->icon_size/2, + height - materialui->tabs_height, width, height, 0, 1, &pure_white[0]); } /* active tab marker */ tab_width = width / (GLUI_SYSTEM_TAB_END+1); - glui_render_quad(glui->categories.selection_ptr * tab_width, + materialui_render_quad(materialui->categories.selection_ptr * tab_width, height - (header_height/16), tab_width, header_height/16, @@ -842,32 +842,32 @@ static void glui_frame(void) } else { - glui->tabs_height = 0; + materialui->tabs_height = 0; } - glui_render_quad(0, header_height, width, + materialui_render_quad(0, header_height, width, header_height/12, width, height, &shadow_bg[0]); - title_margin = glui->margin; + title_margin = materialui->margin; if (menu_entries_show_back()) { - title_margin = glui->icon_size; - glui_draw_icon(glui, glui->textures.list[GLUI_TEXTURE_BACK].id, + title_margin = materialui->icon_size; + materialui_draw_icon(materialui, materialui->textures.list[GLUI_TEXTURE_BACK].id, 0, 0, width, height, 0, 1, &pure_white[0]); } - ticker_limit = (width - glui->margin*2) / glui->glyph_width; + ticker_limit = (width - materialui->margin*2) / materialui->glyph_width; menu_animation_ticker_str(title_buf, ticker_limit, *frame_count / 100, title, true); /* Title */ - glui_blit_line(title_margin, 0, width, height, title_buf, + materialui_blit_line(title_margin, 0, width, height, title_buf, title_color, TEXT_ALIGN_LEFT); - glui_draw_scrollbar(width, height, &grey_bg[0]); + materialui_draw_scrollbar(width, height, &grey_bg[0]); menu_input_ctl(MENU_INPUT_CTL_KEYBOARD_DISPLAY, &display_kb); @@ -879,16 +879,16 @@ static void glui_frame(void) if (!str) str = ""; - glui_render_quad(0, 0, width, height, width, height, &black_bg[0]); + materialui_render_quad(0, 0, width, height, width, height, &black_bg[0]); snprintf(msg, sizeof(msg), "%s\n%s", label, str); - glui_render_messagebox(msg); + materialui_render_messagebox(msg); } - if (glui->box_message[0] != '\0') + if (materialui->box_message[0] != '\0') { - glui_render_quad(0, 0, width, height, width, height, &black_bg[0]); - glui_render_messagebox(glui->box_message); - glui->box_message[0] = '\0'; + materialui_render_quad(0, 0, width, height, width, height, &black_bg[0]); + materialui_render_messagebox(materialui->box_message); + materialui->box_message[0] = '\0'; } if (settings->menu.mouse.enable && (settings->video.fullscreen || !video_driver_has_windowed())) @@ -896,14 +896,14 @@ static void glui_frame(void) int16_t mouse_x = menu_input_mouse_state(MENU_MOUSE_X_AXIS); int16_t mouse_y = menu_input_mouse_state(MENU_MOUSE_Y_AXIS); - glui_draw_cursor(glui, &white_bg[0], mouse_x, mouse_y, width, height); + materialui_draw_cursor(materialui, &white_bg[0], mouse_x, mouse_y, width, height); } menu_display_restore_clear_color(); menu_display_ctl(MENU_DISPLAY_CTL_UNSET_VIEWPORT, NULL); } -static void glui_allocate_white_texture(glui_handle_t *glui) +static void materialui_allocate_white_texture(materialui_handle_t *materialui) { struct texture_image ti; static const uint8_t white_data[] = { 0xff, 0xff, 0xff, 0xff }; @@ -912,11 +912,11 @@ static void glui_allocate_white_texture(glui_handle_t *glui) ti.height = 1; ti.pixels = (uint32_t*)&white_data; - glui->textures.white = video_texture_load(&ti, + materialui->textures.white = video_texture_load(&ti, TEXTURE_BACKEND_OPENGL, TEXTURE_FILTER_NEAREST); } -static void glui_font(menu_handle_t *menu) +static void materialui_font(menu_handle_t *menu) { int font_size; char mediapath[PATH_MAX_LENGTH], fontpath[PATH_MAX_LENGTH]; @@ -931,7 +931,7 @@ static void glui_font(menu_handle_t *menu) RARCH_WARN("Failed to load font."); } -static void glui_layout(menu_handle_t *menu, glui_handle_t *glui) +static void materialui_layout(menu_handle_t *menu, materialui_handle_t *materialui) { void *fb_buf; float scale_factor; @@ -949,18 +949,18 @@ static void glui_layout(menu_handle_t *menu, glui_handle_t *glui) new_header_height = scale_factor / 3; new_font_size = scale_factor / 9; - glui->tabs_height = scale_factor / 3; - glui->line_height = scale_factor / 3; - glui->margin = scale_factor / 9; - glui->icon_size = scale_factor / 3; + materialui->tabs_height = scale_factor / 3; + materialui->line_height = scale_factor / 3; + materialui->margin = scale_factor / 9; + materialui->icon_size = scale_factor / 3; menu_display_ctl(MENU_DISPLAY_CTL_SET_HEADER_HEIGHT, &new_header_height); menu_display_ctl(MENU_DISPLAY_CTL_SET_FONT_SIZE, &new_font_size); /* we assume the average glyph aspect ratio is close to 3:4 */ - glui->glyph_width = new_font_size * 3/4; + materialui->glyph_width = new_font_size * 3/4; - glui_font(menu); + materialui_font(menu); menu_display_ctl(MENU_DISPLAY_CTL_FONT_BUF, &fb_buf); @@ -970,31 +970,31 @@ static void glui_layout(menu_handle_t *menu, glui_handle_t *glui) int m_width = driver->font_osd_driver->get_message_width(fb_buf, "a", 1, 1); if (m_width) - glui->glyph_width = m_width; + materialui->glyph_width = m_width; } } -static void *glui_init(void) +static void *materialui_init(void) { - glui_handle_t *glui = NULL; + materialui_handle_t *materialui = NULL; menu_handle_t *menu = (menu_handle_t*) calloc(1, sizeof(*menu)); if (!menu) goto error; - if (!menu_display_check_compatibility(menu_ctx_glui.type)) + if (!menu_display_check_compatibility(menu_ctx_materialui.type)) goto error; - menu->userdata = (glui_handle_t*)calloc(1, sizeof(glui_handle_t)); + menu->userdata = (materialui_handle_t*)calloc(1, sizeof(materialui_handle_t)); if (!menu->userdata) goto error; - glui = (glui_handle_t*)menu->userdata; + materialui = (materialui_handle_t*)menu->userdata; - glui_layout(menu, glui); - glui_allocate_white_texture(glui); + materialui_layout(menu, materialui); + materialui_allocate_white_texture(materialui); return menu; error: @@ -1003,18 +1003,18 @@ error: return NULL; } -static void glui_free(void *data) +static void materialui_free(void *data) { menu_handle_t *menu = (menu_handle_t*)data; driver_t *driver = driver_get_ptr(); - glui_handle_t *glui = (glui_handle_t*)menu->userdata; + materialui_handle_t *materialui = (materialui_handle_t*)menu->userdata; const struct font_renderer *font_driver = driver ? (const struct font_renderer*) driver->font_osd_driver : NULL; - if (!glui || !menu) + if (!materialui || !menu) return; - gfx_coord_array_free(&glui->list_block.carr); + gfx_coord_array_free(&materialui->list_block.carr); if (font_driver && font_driver->bind_block) font_driver->bind_block(driver->font_osd_data, NULL); @@ -1024,57 +1024,57 @@ static void glui_free(void *data) menu->userdata = NULL; } -static void glui_context_bg_destroy(glui_handle_t *glui) +static void materialui_context_bg_destroy(materialui_handle_t *materialui) { - if (!glui) + if (!materialui) return; - video_texture_unload((uintptr_t*)&glui->textures.bg.id); - video_texture_unload((uintptr_t*)&glui->textures.white); + video_texture_unload((uintptr_t*)&materialui->textures.bg.id); + video_texture_unload((uintptr_t*)&materialui->textures.white); } -static void glui_context_destroy(void) +static void materialui_context_destroy(void) { unsigned i; - glui_handle_t *glui = NULL; + materialui_handle_t *materialui = NULL; menu_handle_t *menu = menu_driver_get_ptr(); if (!menu || !menu->userdata) return; - glui = (glui_handle_t*)menu->userdata; + materialui = (materialui_handle_t*)menu->userdata; - if (!glui) + if (!materialui) return; for (i = 0; i < GLUI_TEXTURE_LAST; i++) - video_texture_unload((uintptr_t*)&glui->textures.list[i].id); + video_texture_unload((uintptr_t*)&materialui->textures.list[i].id); menu_display_free_main_font(); - glui_context_bg_destroy(glui); + materialui_context_bg_destroy(materialui); } -static bool glui_load_image(void *data, menu_image_type_t type) +static bool materialui_load_image(void *data, menu_image_type_t type) { - glui_handle_t *glui = NULL; + materialui_handle_t *materialui = NULL; menu_handle_t *menu = menu_driver_get_ptr(); if (!menu || !menu->userdata) return false; - glui = (glui_handle_t*)menu->userdata; + materialui = (materialui_handle_t*)menu->userdata; switch (type) { case MENU_IMAGE_NONE: break; case MENU_IMAGE_WALLPAPER: - glui_context_bg_destroy(glui); + materialui_context_bg_destroy(materialui); - glui->textures.bg.id = video_texture_load(data, + materialui->textures.bg.id = video_texture_load(data, TEXTURE_BACKEND_OPENGL, TEXTURE_FILTER_MIPMAP_LINEAR); - glui_allocate_white_texture(glui); + materialui_allocate_white_texture(materialui); break; case MENU_IMAGE_BOXART: break; @@ -1083,12 +1083,12 @@ static bool glui_load_image(void *data, menu_image_type_t type) return true; } -static float glui_get_scroll(void) +static float materialui_get_scroll(void) { size_t selection; unsigned width, height; int half = 0; - glui_handle_t *glui = NULL; + materialui_handle_t *materialui = NULL; menu_handle_t *menu = menu_driver_get_ptr(); if (!menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SELECTION, &selection)) @@ -1099,19 +1099,19 @@ static float glui_get_scroll(void) video_driver_get_size(&width, &height); - glui = (glui_handle_t*)menu->userdata; - if (glui->line_height) - half = (height / glui->line_height) / 2; + materialui = (materialui_handle_t*)menu->userdata; + if (materialui->line_height) + half = (height / materialui->line_height) / 2; if (selection < (unsigned)half) return 0; - return ((selection + 2 - half) * glui->line_height); + return ((selection + 2 - half) * materialui->line_height); } -static void glui_navigation_set(bool scroll) +static void materialui_navigation_set(bool scroll) { menu_handle_t *menu = menu_driver_get_ptr(); - float scroll_pos = glui_get_scroll(); + float scroll_pos = materialui_get_scroll(); if (!menu || !scroll) return; @@ -1120,12 +1120,12 @@ static void glui_navigation_set(bool scroll) &menu->scroll_y, EASING_IN_OUT_QUAD, -1, NULL); } -static void glui_list_set_selection(file_list_t *list) +static void materialui_list_set_selection(file_list_t *list) { - glui_navigation_set(true); + materialui_navigation_set(true); } -static void glui_navigation_clear(bool pending_push) +static void materialui_navigation_clear(bool pending_push) { menu_handle_t *menu = menu_driver_get_ptr(); if (!menu) @@ -1135,54 +1135,54 @@ static void glui_navigation_clear(bool pending_push) menu->scroll_y = 0; } -static void glui_navigation_set_last(void) +static void materialui_navigation_set_last(void) { - glui_navigation_set(true); + materialui_navigation_set(true); } -static void glui_navigation_alphabet(size_t *unused) +static void materialui_navigation_alphabet(size_t *unused) { - glui_navigation_set(true); + materialui_navigation_set(true); } -static void glui_populate_entries(const char *path, +static void materialui_populate_entries(const char *path, const char *label, unsigned i) { menu_handle_t *menu = menu_driver_get_ptr(); if (!menu) return; - menu->scroll_y = glui_get_scroll(); + menu->scroll_y = materialui_get_scroll(); } -static void glui_context_reset(void) +static void materialui_context_reset(void) { char iconpath[PATH_MAX_LENGTH] = {0}; - glui_handle_t *glui = NULL; + materialui_handle_t *materialui = NULL; menu_handle_t *menu = menu_driver_get_ptr(); settings_t *settings = config_get_ptr(); if (!menu || !menu->userdata || !settings) return; - glui = (glui_handle_t*)menu->userdata; - if (!glui) + materialui = (materialui_handle_t*)menu->userdata; + if (!materialui) return; fill_pathname_join(iconpath, settings->assets_directory, "glui", sizeof(iconpath)); fill_pathname_slash(iconpath, sizeof(iconpath)); - glui_layout(menu, glui); - glui_context_bg_destroy(glui); - glui_allocate_white_texture(glui); - glui_context_reset_textures(glui, iconpath); + materialui_layout(menu, materialui); + materialui_context_bg_destroy(materialui); + materialui_allocate_white_texture(materialui); + materialui_context_reset_textures(materialui, iconpath); rarch_main_data_msg_queue_push(DATA_TYPE_IMAGE, settings->menu.wallpaper, "cb_menu_wallpaper", 0, 1, true); } -static int glui_environ(menu_environ_cb_t type, void *data) +static int materialui_environ(menu_environ_cb_t type, void *data) { switch (type) { @@ -1194,17 +1194,17 @@ static int glui_environ(menu_environ_cb_t type, void *data) return -1; } -static void glui_preswitch_tabs(unsigned action) +static void materialui_preswitch_tabs(unsigned action) { - glui_handle_t *glui = NULL; + materialui_handle_t *materialui = NULL; menu_handle_t *menu = menu_driver_get_ptr(); if (!menu) return; - glui = (glui_handle_t*)menu->userdata; + materialui = (materialui_handle_t*)menu->userdata; - if (!glui) + if (!materialui) return; file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0); @@ -1214,7 +1214,7 @@ static void glui_preswitch_tabs(unsigned action) free(menu_stack->list[stack_size - 1].label); menu_stack->list[stack_size - 1].label = NULL; - switch (glui->categories.selection_ptr) + switch (materialui->categories.selection_ptr) { case GLUI_SYSTEM_TAB_MAIN: menu_stack->list[stack_size - 1].label = @@ -1239,18 +1239,18 @@ static void glui_preswitch_tabs(unsigned action) } } -static void glui_list_cache(menu_list_type_t type, unsigned action) +static void materialui_list_cache(menu_list_type_t type, unsigned action) { size_t list_size; - glui_handle_t *glui = NULL; + materialui_handle_t *materialui = NULL; menu_handle_t *menu = menu_driver_get_ptr(); if (!menu) return; - glui = (glui_handle_t*)menu->userdata; + materialui = (materialui_handle_t*)menu->userdata; - if (!glui) + if (!materialui) return; list_size = GLUI_SYSTEM_TAB_END; @@ -1260,38 +1260,38 @@ static void glui_list_cache(menu_list_type_t type, unsigned action) case MENU_LIST_PLAIN: break; case MENU_LIST_HORIZONTAL: - glui->categories.selection_ptr_old = glui->categories.selection_ptr; + materialui->categories.selection_ptr_old = materialui->categories.selection_ptr; switch (action) { case MENU_ACTION_LEFT: - if (glui->categories.selection_ptr == 0) + if (materialui->categories.selection_ptr == 0) { - glui->categories.selection_ptr = list_size; - glui->categories.active.idx = list_size - 1; + materialui->categories.selection_ptr = list_size; + materialui->categories.active.idx = list_size - 1; } else - glui->categories.selection_ptr--; + materialui->categories.selection_ptr--; break; default: - if (glui->categories.selection_ptr == list_size) + if (materialui->categories.selection_ptr == list_size) { - glui->categories.selection_ptr = 0; - glui->categories.active.idx = 1; + materialui->categories.selection_ptr = 0; + materialui->categories.active.idx = 1; } else - glui->categories.selection_ptr++; + materialui->categories.selection_ptr++; break; } - glui_preswitch_tabs(action); + materialui_preswitch_tabs(action); break; default: break; } } -static int glui_list_push(menu_displaylist_info_t *info, unsigned type) +static int materialui_list_push(menu_displaylist_info_t *info, unsigned type) { int ret = -1; menu_handle_t *menu = menu_driver_get_ptr(); @@ -1371,18 +1371,18 @@ static int glui_list_push(menu_displaylist_info_t *info, unsigned type) return ret; } -static size_t glui_list_get_selection(void *data) +static size_t materialui_list_get_selection(void *data) { menu_handle_t *menu = (menu_handle_t*)data; - glui_handle_t *glui = menu ? (glui_handle_t*)menu->userdata : NULL; + materialui_handle_t *materialui = menu ? (materialui_handle_t*)menu->userdata : NULL; - if (!glui) + if (!materialui) return 0; - return glui->categories.selection_ptr; + return materialui->categories.selection_ptr; } -static int glui_pointer_tap(unsigned x, unsigned y, +static int materialui_pointer_tap(unsigned x, unsigned y, unsigned ptr, menu_file_list_cbs_t *cbs, menu_entry_t *entry, unsigned action) { @@ -1390,11 +1390,11 @@ static int glui_pointer_tap(unsigned x, unsigned y, unsigned header_height, width, height, i; bool scroll = false; menu_handle_t *menu = menu_driver_get_ptr(); - glui_handle_t *glui = menu ? (glui_handle_t*)menu->userdata : NULL; + materialui_handle_t *materialui = menu ? (materialui_handle_t*)menu->userdata : NULL; file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0); file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(0); - if (!glui) + if (!materialui) return 0; video_driver_get_size(&width, &height); @@ -1407,7 +1407,7 @@ static int glui_pointer_tap(unsigned x, unsigned y, menu_entries_pop_stack(&selection, 0); menu_navigation_ctl(MENU_NAVIGATION_CTL_SET_SELECTION, &selection); } - else if (y > height - glui->tabs_height) + else if (y > height - materialui->tabs_height) { for (i = 0; i <= GLUI_SYSTEM_TAB_END; i++) { @@ -1416,9 +1416,9 @@ static int glui_pointer_tap(unsigned x, unsigned y, if ((x >= start) && (x < (start + tab_width))) { - glui->categories.selection_ptr = i; + materialui->categories.selection_ptr = i; - glui_preswitch_tabs(action); + materialui_preswitch_tabs(action); if (cbs && cbs->action_content_list_switch) return cbs->action_content_list_switch(selection_buf, menu_stack, @@ -1440,39 +1440,39 @@ static int glui_pointer_tap(unsigned x, unsigned y, return 0; } -menu_ctx_driver_t menu_ctx_glui = { +menu_ctx_driver_t menu_ctx_materialui = { NULL, - glui_get_message, + materialui_get_message, generic_menu_iterate, - glui_render, - glui_frame, - glui_init, - glui_free, - glui_context_reset, - glui_context_destroy, - glui_populate_entries, + materialui_render, + materialui_frame, + materialui_init, + materialui_free, + materialui_context_reset, + materialui_context_destroy, + materialui_populate_entries, NULL, - glui_navigation_clear, + materialui_navigation_clear, NULL, NULL, - glui_navigation_set, - glui_navigation_set_last, - glui_navigation_alphabet, - glui_navigation_alphabet, + materialui_navigation_set, + materialui_navigation_set_last, + materialui_navigation_alphabet, + materialui_navigation_alphabet, generic_menu_init_list, NULL, NULL, NULL, - glui_list_cache, - glui_list_push, - glui_list_get_selection, - glui_list_get_size, + materialui_list_cache, + materialui_list_push, + materialui_list_get_selection, + materialui_list_get_size, NULL, - glui_list_set_selection, + materialui_list_set_selection, NULL, - glui_load_image, + materialui_load_image, "glui", MENU_VIDEO_DRIVER_OPENGL, - glui_environ, - glui_pointer_tap, + materialui_environ, + materialui_pointer_tap, }; diff --git a/menu/menu_driver.c b/menu/menu_driver.c index 8b8848c55d..5ffb8c0c8c 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -31,7 +31,7 @@ static const menu_ctx_driver_t *menu_ctx_drivers[] = { &menu_ctx_rmenu_xui, #endif #if defined(HAVE_GLUI) - &menu_ctx_glui, + &menu_ctx_materialui, #endif #if defined(HAVE_XMB) &menu_ctx_xmb, diff --git a/menu/menu_driver.h b/menu/menu_driver.h index 7d803addd1..1fd69c015a 100644 --- a/menu/menu_driver.h +++ b/menu/menu_driver.h @@ -143,7 +143,7 @@ typedef struct menu_ctx_driver extern menu_ctx_driver_t menu_ctx_rmenu; extern menu_ctx_driver_t menu_ctx_rmenu_xui; extern menu_ctx_driver_t menu_ctx_rgui; -extern menu_ctx_driver_t menu_ctx_glui; +extern menu_ctx_driver_t menu_ctx_materialui; extern menu_ctx_driver_t menu_ctx_xmb; extern menu_ctx_driver_t menu_ctx_zarch; extern menu_ctx_driver_t menu_ctx_null;