static void glui_render_menu_list(glui_handle_t *glui, unsigned width, unsigned height, menu_handle_t *menu, uint32_t normal_color, uint32_t hover_color) { unsigned header_height; size_t i = 0; uint64_t *frame_count = video_driver_get_frame_count(); size_t end = menu_entries_get_end(); if (!menu_display_ctl(MENU_DISPLAY_CTL_UPDATE_PENDING, NULL)) return; menu_display_ctl(MENU_DISPLAY_CTL_HEADER_HEIGHT, &header_height); glui->list_block.carr.coords.vertices = 0; for (i = menu_entries_get_start(); i < end; i++) { int y; size_t selection; bool entry_selected; menu_entry_t entry; if (!menu_navigation_ctl(MENU_NAVIGATION_CTL_GET_SELECTION, &selection)) continue; y = header_height - menu->scroll_y + (glui->line_height * i); if (y > (int)height || ((y + (int)glui->line_height) < 0)) continue; menu_entries_get(i, &entry); entry_selected = selection == i; glui_render_label_value(glui, y, width, height, *frame_count / 40, entry_selected ? hover_color : normal_color, entry_selected, entry.path, entry.value); } }
static void glui_render_menu_list(glui_handle_t *glui, menu_handle_t *menu, uint32_t normal_color, uint32_t hover_color) { unsigned width, height; size_t i = 0; uint64_t *frame_count = video_driver_get_frame_count(); size_t end = menu_entries_get_end(); menu_display_t *disp = menu_display_get_ptr(); menu_entries_t *entries = menu_entries_get_ptr(); if (!menu_display_update_pending()) return; video_driver_get_size(&width, &height); glui->list_block.carr.coords.vertices = 0; for (i = menu_entries_get_start(); i < end; i++) { bool entry_selected; menu_entry_t entry; int y = disp->header_height - menu->scroll_y + (glui->line_height * i); if (y > (int)height || ((y + (int)glui->line_height) < 0)) continue; menu_entries_get(i, &entry); entry_selected = entries->navigation.selection_ptr == i; glui_render_label_value(glui, y, width, *frame_count / 40, entry_selected ? hover_color : normal_color, entry_selected, entry.path, entry.value); } }