RetroArch
Classes | Macros | Typedefs | Enumerations | Functions | Variables
xmb.c File Reference
#include <stdlib.h>
#include <stddef.h>
#include <stdint.h>
#include <string.h>
#include <limits.h>
#include <file/file_path.h>
#include <compat/posix_string.h>
#include <compat/strl.h>
#include <formats/image.h>
#include <string/stdstring.h>
#include <lists/string_list.h>
#include <gfx/math/matrix_4x4.h>
#include <streams/file_stream.h>
#include <encodings/utf.h>
#include <features/features_cpu.h>
#include "../../frontend/frontend_driver.h"
#include "menu_generic.h"
#include "../menu_driver.h"
#include "../menu_animation.h"
#include "../menu_entries.h"
#include "../menu_input.h"
#include "../../core_info.h"
#include "../../core.h"
#include "../widgets/menu_entry.h"
#include "../widgets/menu_input_dialog.h"
#include "../widgets/menu_osk.h"
#include "../widgets/menu_filebrowser.h"
#include "../../verbosity.h"
#include "../../dynamic.h"
#include "../../configuration.h"
#include "../../playlist.h"
#include "../../retroarch.h"
#include "../../tasks/tasks_internal.h"
#include "../../cheevos/badges.h"
#include "../../content.h"
Include dependency graph for xmb.c:

Classes

struct  xmb_node_t
 
struct  xmb_handle
 

Macros

#define XMB_RIBBON_ROWS   64
 
#define XMB_RIBBON_COLS   64
 
#define XMB_RIBBON_VERTICES   2*XMB_RIBBON_COLS*XMB_RIBBON_ROWS-2*XMB_RIBBON_COLS
 
#define XMB_DELAY   10
 
#define BATTERY_LEVEL_CHECK_INTERVAL   (30 * 1000000)
 

Typedefs

typedef struct xmb_handle xmb_handle_t
 

Enumerations

enum  {
  XMB_TEXTURE_MAIN_MENU = 0, XMB_TEXTURE_SETTINGS, XMB_TEXTURE_HISTORY, XMB_TEXTURE_FAVORITES,
  XMB_TEXTURE_MUSICS, XMB_TEXTURE_SETTING, XMB_TEXTURE_SUBSETTING, XMB_TEXTURE_ARROW,
  XMB_TEXTURE_RUN, XMB_TEXTURE_CLOSE, XMB_TEXTURE_RESUME, XMB_TEXTURE_SAVESTATE,
  XMB_TEXTURE_LOADSTATE, XMB_TEXTURE_UNDO, XMB_TEXTURE_CORE_INFO, XMB_TEXTURE_WIFI,
  XMB_TEXTURE_CORE_OPTIONS, XMB_TEXTURE_INPUT_REMAPPING_OPTIONS, XMB_TEXTURE_CHEAT_OPTIONS, XMB_TEXTURE_DISK_OPTIONS,
  XMB_TEXTURE_SHADER_OPTIONS, XMB_TEXTURE_ACHIEVEMENT_LIST, XMB_TEXTURE_SCREENSHOT, XMB_TEXTURE_RELOAD,
  XMB_TEXTURE_RENAME, XMB_TEXTURE_FILE, XMB_TEXTURE_FOLDER, XMB_TEXTURE_ZIP,
  XMB_TEXTURE_FAVORITE, XMB_TEXTURE_ADD_FAVORITE, XMB_TEXTURE_MUSIC, XMB_TEXTURE_IMAGE,
  XMB_TEXTURE_MOVIE, XMB_TEXTURE_CORE, XMB_TEXTURE_RDB, XMB_TEXTURE_CURSOR,
  XMB_TEXTURE_SWITCH_ON, XMB_TEXTURE_SWITCH_OFF, XMB_TEXTURE_CLOCK, XMB_TEXTURE_BATTERY_FULL,
  XMB_TEXTURE_BATTERY_CHARGING, XMB_TEXTURE_POINTER, XMB_TEXTURE_ADD, XMB_TEXTURE_KEY,
  XMB_TEXTURE_KEY_HOVER, XMB_TEXTURE_DIALOG_SLICE, XMB_TEXTURE_ACHIEVEMENTS, XMB_TEXTURE_AUDIO,
  XMB_TEXTURE_EXIT, XMB_TEXTURE_FRAMESKIP, XMB_TEXTURE_INFO, XMB_TEXTURE_HELP,
  XMB_TEXTURE_NETWORK, XMB_TEXTURE_POWER, XMB_TEXTURE_SAVING, XMB_TEXTURE_UPDATER,
  XMB_TEXTURE_VIDEO, XMB_TEXTURE_RECORD, XMB_TEXTURE_INPUT_SETTINGS, XMB_TEXTURE_MIXER,
  XMB_TEXTURE_LOG, XMB_TEXTURE_OSD, XMB_TEXTURE_UI, XMB_TEXTURE_USER,
  XMB_TEXTURE_PRIVACY, XMB_TEXTURE_LATENCY, XMB_TEXTURE_DRIVERS, XMB_TEXTURE_PLAYLIST,
  XMB_TEXTURE_QUICKMENU, XMB_TEXTURE_REWIND, XMB_TEXTURE_OVERLAY, XMB_TEXTURE_OVERRIDE,
  XMB_TEXTURE_NOTIFICATIONS, XMB_TEXTURE_STREAM, XMB_TEXTURE_SHUTDOWN, XMB_TEXTURE_INPUT_DPAD_U,
  XMB_TEXTURE_INPUT_DPAD_D, XMB_TEXTURE_INPUT_DPAD_L, XMB_TEXTURE_INPUT_DPAD_R, XMB_TEXTURE_INPUT_STCK_U,
  XMB_TEXTURE_INPUT_STCK_D, XMB_TEXTURE_INPUT_STCK_L, XMB_TEXTURE_INPUT_STCK_R, XMB_TEXTURE_INPUT_STCK_P,
  XMB_TEXTURE_INPUT_SELECT, XMB_TEXTURE_INPUT_START, XMB_TEXTURE_INPUT_BTN_U, XMB_TEXTURE_INPUT_BTN_D,
  XMB_TEXTURE_INPUT_BTN_L, XMB_TEXTURE_INPUT_BTN_R, XMB_TEXTURE_INPUT_LB, XMB_TEXTURE_INPUT_RB,
  XMB_TEXTURE_INPUT_LT, XMB_TEXTURE_INPUT_RT, XMB_TEXTURE_CHECKMARK, XMB_TEXTURE_MENU_ADD,
  XMB_TEXTURE_BRIGHTNESS, XMB_TEXTURE_PAUSE, XMB_TEXTURE_DEFAULT, XMB_TEXTURE_DEFAULT_CONTENT,
  XMB_TEXTURE_MENU_APPLY_TOGGLE, XMB_TEXTURE_MENU_APPLY_COG, XMB_TEXTURE_LAST
}
 
enum  {
  XMB_SYSTEM_TAB_MAIN = 0, XMB_SYSTEM_TAB_SETTINGS, XMB_SYSTEM_TAB_HISTORY, XMB_SYSTEM_TAB_FAVORITES,
  XMB_SYSTEM_TAB_MUSIC, XMB_SYSTEM_TAB_ADD, XMB_SYSTEM_TAB_MAX_LENGTH
}
 

Functions

static void xmb_calculate_visible_range (const xmb_handle_t *xmb, unsigned height, size_t list_size, unsigned current, unsigned *first, unsigned *last)
 
const char * xmb_theme_ident (void)
 
static xmb_node_txmb_alloc_node (void)
 
static void xmb_free_node (xmb_node_t *node)
 
static void xmb_free_list_nodes (file_list_t *list, bool actiondata)
 frees all xmb_node_t in a file_list_t More...
 
static xmb_node_txmb_copy_node (const xmb_node_t *old_node)
 
static const char * xmb_thumbnails_ident (char pos)
 
static float * xmb_gradient_ident (video_frame_info_t *video_info)
 
static size_t xmb_list_get_selection (void *data)
 
static size_t xmb_list_get_size (void *data, enum menu_list_type type)
 
static voidxmb_list_get_entry (void *data, enum menu_list_type type, unsigned i)
 
static INLINE float xmb_item_y (const xmb_handle_t *xmb, int i, size_t current)
 
static void xmb_draw_icon (video_frame_info_t *video_info, int icon_size, math_matrix_4x4 *mymat, uintptr_t texture, float x, float y, unsigned width, unsigned height, float alpha, float rotation, float scale_factor, float *color, float shadow_offset)
 
static void xmb_draw_thumbnail (video_frame_info_t *video_info, xmb_handle_t *xmb, float *color, unsigned width, unsigned height, float x, float y, float w, float h, uintptr_t texture)
 
static void xmb_draw_text (video_frame_info_t *video_info, xmb_handle_t *xmb, const char *str, float x, float y, float scale_factor, float alpha, enum text_alignment text_align, unsigned width, unsigned height, font_data_t *font)
 
static void xmb_messagebox (void *data, const char *message)
 
static void xmb_render_messagebox_internal (video_frame_info_t *video_info, xmb_handle_t *xmb, const char *message)
 
static void xmb_update_thumbnail_path (void *data, unsigned i, char pos)
 
static void xmb_update_savestate_thumbnail_path (void *data, unsigned i)
 
static void xmb_update_thumbnail_image (void *data)
 
static void xmb_set_thumbnail_system (void *data, char *s, size_t len)
 
static void xmb_reset_thumbnail_content (void *data)
 
static void xmb_set_thumbnail_content (void *data, char *s, size_t len)
 
static void xmb_update_savestate_thumbnail_image (void *data)
 
static unsigned xmb_get_system_tab (xmb_handle_t *xmb, unsigned i)
 
static void xmb_selection_pointer_changed (xmb_handle_t *xmb, bool allow_animations)
 
static void xmb_list_open_old (xmb_handle_t *xmb, file_list_t *list, int dir, size_t current)
 
static void xmb_list_open_new (xmb_handle_t *xmb, file_list_t *list, int dir, size_t current)
 
static xmb_node_txmb_node_allocate_userdata (xmb_handle_t *xmb, unsigned i)
 
static xmb_node_txmb_get_userdata_from_horizontal_list (xmb_handle_t *xmb, unsigned i)
 
static void xmb_push_animations (xmb_node_t *node, uintptr_t tag, float ia, float ix)
 
static void xmb_list_switch_old (xmb_handle_t *xmb, file_list_t *list, int dir, size_t current)
 
static void xmb_list_switch_new (xmb_handle_t *xmb, file_list_t *list, int dir, size_t current)
 
static void xmb_set_title (xmb_handle_t *xmb)
 
static xmb_node_txmb_get_node (xmb_handle_t *xmb, unsigned i)
 
static void xmb_list_switch_horizontal_list (xmb_handle_t *xmb)
 
static void xmb_list_switch (xmb_handle_t *xmb)
 
static void xmb_list_open_horizontal_list (xmb_handle_t *xmb)
 
static void xmb_context_destroy_horizontal_list (xmb_handle_t *xmb)
 
static void xmb_init_horizontal_list (xmb_handle_t *xmb)
 
static void xmb_toggle_horizontal_list (xmb_handle_t *xmb)
 
static void xmb_context_reset_horizontal_list (xmb_handle_t *xmb)
 
static void xmb_refresh_horizontal_list (xmb_handle_t *xmb)
 
static int xmb_environ (enum menu_environ_cb type, void *data, void *userdata)
 
static void xmb_list_open (xmb_handle_t *xmb)
 
static void xmb_populate_entries (void *data, const char *path, const char *label, unsigned k)
 
static uintptr_t xmb_icon_get_id (xmb_handle_t *xmb, xmb_node_t *core_node, xmb_node_t *node, enum msg_hash_enums enum_idx, unsigned type, bool active, bool checked)
 
static int xmb_draw_item (video_frame_info_t *video_info, menu_entry_t *entry, math_matrix_4x4 *mymat, xmb_handle_t *xmb, xmb_node_t *core_node, file_list_t *list, float *color, const char *thumb_ident, const char *left_thumb_ident, uint64_t frame_count, size_t i, size_t current, unsigned width, unsigned height)
 
static void xmb_draw_items (video_frame_info_t *video_info, xmb_handle_t *xmb, file_list_t *list, size_t current, size_t cat_selection_ptr, float *color, unsigned width, unsigned height)
 
static void xmb_context_reset_internal (xmb_handle_t *xmb, bool is_threaded, bool reinit_textures)
 
static void xmb_render (void *data, bool is_idle)
 
static bool xmb_shader_pipeline_active (video_frame_info_t *video_info)
 
static void xmb_draw_bg (xmb_handle_t *xmb, video_frame_info_t *video_info, unsigned width, unsigned height, float alpha, uintptr_t texture_id, float *coord_black, float *coord_white)
 
static void xmb_draw_dark_layer (xmb_handle_t *xmb, video_frame_info_t *video_info, unsigned width, unsigned height)
 
static void xmb_frame (void *data, video_frame_info_t *video_info)
 
static void xmb_layout_ps3 (xmb_handle_t *xmb, int width)
 
static void xmb_layout_psp (xmb_handle_t *xmb, int width)
 
static void xmb_layout (xmb_handle_t *xmb)
 
static void xmb_ribbon_set_vertex (float *ribbon_verts, unsigned idx, unsigned row, unsigned col)
 
static void xmb_init_ribbon (xmb_handle_t *xmb)
 
static voidxmb_init (void **userdata, bool video_is_threaded)
 
static void xmb_free (void *data)
 
static void xmb_context_bg_destroy (xmb_handle_t *xmb)
 
static bool xmb_load_image (void *userdata, void *data, enum menu_image_type type)
 
static const char * xmb_texture_path (unsigned id)
 
static void xmb_context_reset_textures (xmb_handle_t *xmb, const char *iconpath)
 
static void xmb_context_reset_background (const char *iconpath)
 
static void xmb_context_reset (void *data, bool is_threaded)
 
static void xmb_navigation_clear (void *data, bool pending_push)
 
static void xmb_navigation_pointer_changed (void *data)
 
static void xmb_navigation_set (void *data, bool scroll)
 
static void xmb_navigation_alphabet (void *data, size_t *unused)
 
static void xmb_list_insert (void *userdata, file_list_t *list, const char *path, const char *fullpath, const char *unused, size_t list_size, unsigned entry_type)
 
static void xmb_list_clear (file_list_t *list)
 
static void xmb_list_free (file_list_t *list, size_t a, size_t b)
 
static void xmb_list_deep_copy (const file_list_t *src, file_list_t *dst, size_t first, size_t last)
 
static void xmb_list_cache (void *data, enum menu_list_type type, unsigned action)
 
static void xmb_context_destroy (void *data)
 
static void xmb_toggle (void *userdata, bool menu_on)
 
static int xmb_deferred_push_content_actions (menu_displaylist_info_t *info)
 
static int xmb_list_bind_init_compare_label (menu_file_list_cbs_t *cbs)
 
static int xmb_list_bind_init (menu_file_list_cbs_t *cbs, const char *path, const char *label, unsigned type, size_t idx)
 
static int xmb_list_push (void *data, void *userdata, menu_displaylist_info_t *info, unsigned type)
 
static bool xmb_menu_init_list (void *data)
 
static int xmb_pointer_tap (void *userdata, unsigned x, unsigned y, unsigned ptr, menu_file_list_cbs_t *cbs, menu_entry_t *entry, unsigned action)
 

Variables

float scale_mod [8]
 
static float coord_shadow []
 
static float coord_black []
 
static float coord_white []
 
static float item_color []
 
float gradient_dark_purple [16]
 
float gradient_midnight_blue [16]
 
float gradient_golden [16]
 
float gradient_legacy_red [16]
 
float gradient_electric_blue [16]
 
float gradient_apple_green [16]
 
float gradient_undersea [16]
 
float gradient_volcanic_red [16]
 
float gradient_dark [16]
 
float gradient_light [16]
 
float gradient_morning_blue [16]
 
menu_ctx_driver_t menu_ctx_xmb
 

Macro Definition Documentation

◆ BATTERY_LEVEL_CHECK_INTERVAL

#define BATTERY_LEVEL_CHECK_INTERVAL   (30 * 1000000)

◆ XMB_DELAY

#define XMB_DELAY   10

◆ XMB_RIBBON_COLS

#define XMB_RIBBON_COLS   64

◆ XMB_RIBBON_ROWS

#define XMB_RIBBON_ROWS   64

◆ XMB_RIBBON_VERTICES

#define XMB_RIBBON_VERTICES   2*XMB_RIBBON_COLS*XMB_RIBBON_ROWS-2*XMB_RIBBON_COLS

Typedef Documentation

◆ xmb_handle_t

typedef struct xmb_handle xmb_handle_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
XMB_TEXTURE_MAIN_MENU 
XMB_TEXTURE_SETTINGS 
XMB_TEXTURE_HISTORY 
XMB_TEXTURE_FAVORITES 
XMB_TEXTURE_MUSICS 
XMB_TEXTURE_SETTING 
XMB_TEXTURE_SUBSETTING 
XMB_TEXTURE_ARROW 
XMB_TEXTURE_RUN 
XMB_TEXTURE_CLOSE 
XMB_TEXTURE_RESUME 
XMB_TEXTURE_SAVESTATE 
XMB_TEXTURE_LOADSTATE 
XMB_TEXTURE_UNDO 
XMB_TEXTURE_CORE_INFO 
XMB_TEXTURE_WIFI 
XMB_TEXTURE_CORE_OPTIONS 
XMB_TEXTURE_INPUT_REMAPPING_OPTIONS 
XMB_TEXTURE_CHEAT_OPTIONS 
XMB_TEXTURE_DISK_OPTIONS 
XMB_TEXTURE_SHADER_OPTIONS 
XMB_TEXTURE_ACHIEVEMENT_LIST 
XMB_TEXTURE_SCREENSHOT 
XMB_TEXTURE_RELOAD 
XMB_TEXTURE_RENAME 
XMB_TEXTURE_FILE 
XMB_TEXTURE_FOLDER 
XMB_TEXTURE_ZIP 
XMB_TEXTURE_FAVORITE 
XMB_TEXTURE_ADD_FAVORITE 
XMB_TEXTURE_MUSIC 
XMB_TEXTURE_IMAGE 
XMB_TEXTURE_MOVIE 
XMB_TEXTURE_CORE 
XMB_TEXTURE_RDB 
XMB_TEXTURE_CURSOR 
XMB_TEXTURE_SWITCH_ON 
XMB_TEXTURE_SWITCH_OFF 
XMB_TEXTURE_CLOCK 
XMB_TEXTURE_BATTERY_FULL 
XMB_TEXTURE_BATTERY_CHARGING 
XMB_TEXTURE_POINTER 
XMB_TEXTURE_ADD 
XMB_TEXTURE_KEY 
XMB_TEXTURE_KEY_HOVER 
XMB_TEXTURE_DIALOG_SLICE 
XMB_TEXTURE_ACHIEVEMENTS 
XMB_TEXTURE_AUDIO 
XMB_TEXTURE_EXIT 
XMB_TEXTURE_FRAMESKIP 
XMB_TEXTURE_INFO 
XMB_TEXTURE_HELP 
XMB_TEXTURE_NETWORK 
XMB_TEXTURE_POWER 
XMB_TEXTURE_SAVING 
XMB_TEXTURE_UPDATER 
XMB_TEXTURE_VIDEO 
XMB_TEXTURE_RECORD 
XMB_TEXTURE_INPUT_SETTINGS 
XMB_TEXTURE_MIXER 
XMB_TEXTURE_LOG 
XMB_TEXTURE_OSD 
XMB_TEXTURE_UI 
XMB_TEXTURE_USER 
XMB_TEXTURE_PRIVACY 
XMB_TEXTURE_LATENCY 
XMB_TEXTURE_DRIVERS 
XMB_TEXTURE_PLAYLIST 
XMB_TEXTURE_QUICKMENU 
XMB_TEXTURE_REWIND 
XMB_TEXTURE_OVERLAY 
XMB_TEXTURE_OVERRIDE 
XMB_TEXTURE_NOTIFICATIONS 
XMB_TEXTURE_STREAM 
XMB_TEXTURE_SHUTDOWN 
XMB_TEXTURE_INPUT_DPAD_U 
XMB_TEXTURE_INPUT_DPAD_D 
XMB_TEXTURE_INPUT_DPAD_L 
XMB_TEXTURE_INPUT_DPAD_R 
XMB_TEXTURE_INPUT_STCK_U 
XMB_TEXTURE_INPUT_STCK_D 
XMB_TEXTURE_INPUT_STCK_L 
XMB_TEXTURE_INPUT_STCK_R 
XMB_TEXTURE_INPUT_STCK_P 
XMB_TEXTURE_INPUT_SELECT 
XMB_TEXTURE_INPUT_START 
XMB_TEXTURE_INPUT_BTN_U 
XMB_TEXTURE_INPUT_BTN_D 
XMB_TEXTURE_INPUT_BTN_L 
XMB_TEXTURE_INPUT_BTN_R 
XMB_TEXTURE_INPUT_LB 
XMB_TEXTURE_INPUT_RB 
XMB_TEXTURE_INPUT_LT 
XMB_TEXTURE_INPUT_RT 
XMB_TEXTURE_CHECKMARK 
XMB_TEXTURE_MENU_ADD 
XMB_TEXTURE_BRIGHTNESS 
XMB_TEXTURE_PAUSE 
XMB_TEXTURE_DEFAULT 
XMB_TEXTURE_DEFAULT_CONTENT 
XMB_TEXTURE_MENU_APPLY_TOGGLE 
XMB_TEXTURE_MENU_APPLY_COG 
XMB_TEXTURE_LAST 

◆ anonymous enum

anonymous enum
Enumerator
XMB_SYSTEM_TAB_MAIN 
XMB_SYSTEM_TAB_SETTINGS 
XMB_SYSTEM_TAB_HISTORY 
XMB_SYSTEM_TAB_FAVORITES 
XMB_SYSTEM_TAB_MUSIC 
XMB_SYSTEM_TAB_ADD 
XMB_SYSTEM_TAB_MAX_LENGTH 

Function Documentation

◆ xmb_alloc_node()

static xmb_node_t* xmb_alloc_node ( void  )
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_calculate_visible_range()

static void xmb_calculate_visible_range ( const xmb_handle_t xmb,
unsigned  height,
size_t  list_size,
unsigned  current,
unsigned *  first,
unsigned *  last 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_context_bg_destroy()

static void xmb_context_bg_destroy ( xmb_handle_t xmb)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_context_destroy()

static void xmb_context_destroy ( void data)
static
Here is the call graph for this function:

◆ xmb_context_destroy_horizontal_list()

static void xmb_context_destroy_horizontal_list ( xmb_handle_t xmb)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_context_reset()

static void xmb_context_reset ( void data,
bool  is_threaded 
)
static
Here is the call graph for this function:

◆ xmb_context_reset_background()

static void xmb_context_reset_background ( const char *  iconpath)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_context_reset_horizontal_list()

static void xmb_context_reset_horizontal_list ( xmb_handle_t xmb)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_context_reset_internal()

static void xmb_context_reset_internal ( xmb_handle_t xmb,
bool  is_threaded,
bool  reinit_textures 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_context_reset_textures()

static void xmb_context_reset_textures ( xmb_handle_t xmb,
const char *  iconpath 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_copy_node()

static xmb_node_t* xmb_copy_node ( const xmb_node_t old_node)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_deferred_push_content_actions()

static int xmb_deferred_push_content_actions ( menu_displaylist_info_t info)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_draw_bg()

static void xmb_draw_bg ( xmb_handle_t xmb,
video_frame_info_t video_info,
unsigned  width,
unsigned  height,
float  alpha,
uintptr_t  texture_id,
float *  coord_black,
float *  coord_white 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_draw_dark_layer()

static void xmb_draw_dark_layer ( xmb_handle_t xmb,
video_frame_info_t video_info,
unsigned  width,
unsigned  height 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_draw_icon()

static void xmb_draw_icon ( video_frame_info_t video_info,
int  icon_size,
math_matrix_4x4 mymat,
uintptr_t  texture,
float  x,
float  y,
unsigned  width,
unsigned  height,
float  alpha,
float  rotation,
float  scale_factor,
float *  color,
float  shadow_offset 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_draw_item()

static int xmb_draw_item ( video_frame_info_t video_info,
menu_entry_t entry,
math_matrix_4x4 mymat,
xmb_handle_t xmb,
xmb_node_t core_node,
file_list_t list,
float *  color,
const char *  thumb_ident,
const char *  left_thumb_ident,
uint64_t  frame_count,
size_t  i,
size_t  current,
unsigned  width,
unsigned  height 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_draw_items()

static void xmb_draw_items ( video_frame_info_t video_info,
xmb_handle_t xmb,
file_list_t list,
size_t  current,
size_t  cat_selection_ptr,
float *  color,
unsigned  width,
unsigned  height 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_draw_text()

static void xmb_draw_text ( video_frame_info_t video_info,
xmb_handle_t xmb,
const char *  str,
float  x,
float  y,
float  scale_factor,
float  alpha,
enum text_alignment  text_align,
unsigned  width,
unsigned  height,
font_data_t font 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_draw_thumbnail()

static void xmb_draw_thumbnail ( video_frame_info_t video_info,
xmb_handle_t xmb,
float *  color,
unsigned  width,
unsigned  height,
float  x,
float  y,
float  w,
float  h,
uintptr_t  texture 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_environ()

static int xmb_environ ( enum menu_environ_cb  type,
void data,
void userdata 
)
static
Here is the call graph for this function:

◆ xmb_frame()

static void xmb_frame ( void data,
video_frame_info_t video_info 
)
static
Here is the call graph for this function:

◆ xmb_free()

static void xmb_free ( void data)
static
Here is the call graph for this function:

◆ xmb_free_list_nodes()

static void xmb_free_list_nodes ( file_list_t list,
bool  actiondata 
)
static

frees all xmb_node_t in a file_list_t

file_list_t asumes userdata holds a simple structure and free()'s it. Can't change this at the time because other code depends on this behavior.

Parameters
list
actiondatawhether to free actiondata too
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_free_node()

static void xmb_free_node ( xmb_node_t node)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_get_node()

static xmb_node_t* xmb_get_node ( xmb_handle_t xmb,
unsigned  i 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_get_system_tab()

static unsigned xmb_get_system_tab ( xmb_handle_t xmb,
unsigned  i 
)
static
Here is the caller graph for this function:

◆ xmb_get_userdata_from_horizontal_list()

static xmb_node_t* xmb_get_userdata_from_horizontal_list ( xmb_handle_t xmb,
unsigned  i 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_gradient_ident()

static float* xmb_gradient_ident ( video_frame_info_t video_info)
static
Here is the caller graph for this function:

◆ xmb_icon_get_id()

static uintptr_t xmb_icon_get_id ( xmb_handle_t xmb,
xmb_node_t core_node,
xmb_node_t node,
enum msg_hash_enums  enum_idx,
unsigned  type,
bool  active,
bool  checked 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_init()

static void* xmb_init ( void **  userdata,
bool  video_is_threaded 
)
static
Here is the call graph for this function:

◆ xmb_init_horizontal_list()

static void xmb_init_horizontal_list ( xmb_handle_t xmb)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_init_ribbon()

static void xmb_init_ribbon ( xmb_handle_t xmb)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_item_y()

static INLINE float xmb_item_y ( const xmb_handle_t xmb,
int  i,
size_t  current 
)
static
Here is the caller graph for this function:

◆ xmb_layout()

static void xmb_layout ( xmb_handle_t xmb)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_layout_ps3()

static void xmb_layout_ps3 ( xmb_handle_t xmb,
int  width 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_layout_psp()

static void xmb_layout_psp ( xmb_handle_t xmb,
int  width 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_list_bind_init()

static int xmb_list_bind_init ( menu_file_list_cbs_t cbs,
const char *  path,
const char *  label,
unsigned  type,
size_t  idx 
)
static
Here is the call graph for this function:

◆ xmb_list_bind_init_compare_label()

static int xmb_list_bind_init_compare_label ( menu_file_list_cbs_t cbs)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_list_cache()

static void xmb_list_cache ( void data,
enum menu_list_type  type,
unsigned  action 
)
static
Here is the call graph for this function:

◆ xmb_list_clear()

static void xmb_list_clear ( file_list_t list)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_list_deep_copy()

static void xmb_list_deep_copy ( const file_list_t src,
file_list_t dst,
size_t  first,
size_t  last 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_list_free()

static void xmb_list_free ( file_list_t list,
size_t  a,
size_t  b 
)
static
Here is the call graph for this function:

◆ xmb_list_get_entry()

static void* xmb_list_get_entry ( void data,
enum menu_list_type  type,
unsigned  i 
)
static
Here is the call graph for this function:

◆ xmb_list_get_selection()

static size_t xmb_list_get_selection ( void data)
static

◆ xmb_list_get_size()

static size_t xmb_list_get_size ( void data,
enum menu_list_type  type 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_list_insert()

static void xmb_list_insert ( void userdata,
file_list_t list,
const char *  path,
const char *  fullpath,
const char *  unused,
size_t  list_size,
unsigned  entry_type 
)
static
Here is the call graph for this function:

◆ xmb_list_open()

static void xmb_list_open ( xmb_handle_t xmb)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_list_open_horizontal_list()

static void xmb_list_open_horizontal_list ( xmb_handle_t xmb)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_list_open_new()

static void xmb_list_open_new ( xmb_handle_t xmb,
file_list_t list,
int  dir,
size_t  current 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_list_open_old()

static void xmb_list_open_old ( xmb_handle_t xmb,
file_list_t list,
int  dir,
size_t  current 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_list_push()

static int xmb_list_push ( void data,
void userdata,
menu_displaylist_info_t info,
unsigned  type 
)
static
Here is the call graph for this function:

◆ xmb_list_switch()

static void xmb_list_switch ( xmb_handle_t xmb)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_list_switch_horizontal_list()

static void xmb_list_switch_horizontal_list ( xmb_handle_t xmb)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_list_switch_new()

static void xmb_list_switch_new ( xmb_handle_t xmb,
file_list_t list,
int  dir,
size_t  current 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_list_switch_old()

static void xmb_list_switch_old ( xmb_handle_t xmb,
file_list_t list,
int  dir,
size_t  current 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_load_image()

static bool xmb_load_image ( void userdata,
void data,
enum menu_image_type  type 
)
static
Here is the call graph for this function:

◆ xmb_menu_init_list()

static bool xmb_menu_init_list ( void data)
static
Here is the call graph for this function:

◆ xmb_messagebox()

static void xmb_messagebox ( void data,
const char *  message 
)
static
Here is the call graph for this function:

◆ xmb_navigation_alphabet()

static void xmb_navigation_alphabet ( void data,
size_t *  unused 
)
static
Here is the call graph for this function:

◆ xmb_navigation_clear()

static void xmb_navigation_clear ( void data,
bool  pending_push 
)
static
Here is the call graph for this function:

◆ xmb_navigation_pointer_changed()

static void xmb_navigation_pointer_changed ( void data)
static
Here is the call graph for this function:

◆ xmb_navigation_set()

static void xmb_navigation_set ( void data,
bool  scroll 
)
static
Here is the call graph for this function:

◆ xmb_node_allocate_userdata()

static xmb_node_t* xmb_node_allocate_userdata ( xmb_handle_t xmb,
unsigned  i 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_pointer_tap()

static int xmb_pointer_tap ( void userdata,
unsigned  x,
unsigned  y,
unsigned  ptr,
menu_file_list_cbs_t cbs,
menu_entry_t entry,
unsigned  action 
)
static
Here is the call graph for this function:

◆ xmb_populate_entries()

static void xmb_populate_entries ( void data,
const char *  path,
const char *  label,
unsigned  k 
)
static
Here is the call graph for this function:

◆ xmb_push_animations()

static void xmb_push_animations ( xmb_node_t node,
uintptr_t  tag,
float  ia,
float  ix 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_refresh_horizontal_list()

static void xmb_refresh_horizontal_list ( xmb_handle_t xmb)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_render()

static void xmb_render ( void data,
bool  is_idle 
)
static
Here is the call graph for this function:

◆ xmb_render_messagebox_internal()

static void xmb_render_messagebox_internal ( video_frame_info_t video_info,
xmb_handle_t xmb,
const char *  message 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_reset_thumbnail_content()

static void xmb_reset_thumbnail_content ( void data)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_ribbon_set_vertex()

static void xmb_ribbon_set_vertex ( float *  ribbon_verts,
unsigned  idx,
unsigned  row,
unsigned  col 
)
static
Here is the caller graph for this function:

◆ xmb_selection_pointer_changed()

static void xmb_selection_pointer_changed ( xmb_handle_t xmb,
bool  allow_animations 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_set_thumbnail_content()

static void xmb_set_thumbnail_content ( void data,
char *  s,
size_t  len 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_set_thumbnail_system()

static void xmb_set_thumbnail_system ( void data,
char *  s,
size_t  len 
)
static
Here is the call graph for this function:

◆ xmb_set_title()

static void xmb_set_title ( xmb_handle_t xmb)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_shader_pipeline_active()

static bool xmb_shader_pipeline_active ( video_frame_info_t video_info)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_texture_path()

static const char* xmb_texture_path ( unsigned  id)
static
Here is the caller graph for this function:

◆ xmb_theme_ident()

const char* xmb_theme_ident ( void  )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_thumbnails_ident()

static const char* xmb_thumbnails_ident ( char  pos)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_toggle()

static void xmb_toggle ( void userdata,
bool  menu_on 
)
static
Here is the call graph for this function:

◆ xmb_toggle_horizontal_list()

static void xmb_toggle_horizontal_list ( xmb_handle_t xmb)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_update_savestate_thumbnail_image()

static void xmb_update_savestate_thumbnail_image ( void data)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_update_savestate_thumbnail_path()

static void xmb_update_savestate_thumbnail_path ( void data,
unsigned  i 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_update_thumbnail_image()

static void xmb_update_thumbnail_image ( void data)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ xmb_update_thumbnail_path()

static void xmb_update_thumbnail_path ( void data,
unsigned  i,
char  pos 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ coord_black

float coord_black[]
static
Initial value:
= {
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0
}

◆ coord_shadow

float coord_shadow[]
static
Initial value:
= {
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0
}

◆ coord_white

float coord_white[]
static
Initial value:
= {
1, 1, 1, 1,
1, 1, 1, 1,
1, 1, 1, 1,
1, 1, 1, 1
}

◆ gradient_apple_green

float gradient_apple_green[16]
Initial value:
= {
102/255.0, 134/255.0, 58/255.0, 1.0,
122/255.0, 131/255.0, 52/255.0, 1.0,
82/255.0, 101/255.0, 35/255.0, 1.0,
63/255.0, 95/255.0, 30/255.0, 1.0,
}

◆ gradient_dark

float gradient_dark[16]
Initial value:
= {
0.1, 0.1, 0.1, 1.00,
0.1, 0.1, 0.1, 1.00,
0.0, 0.0, 0.0, 1.00,
0.0, 0.0, 0.0, 1.00,
}

◆ gradient_dark_purple

float gradient_dark_purple[16]
Initial value:
= {
20/255.0, 13/255.0, 20/255.0, 1.0,
20/255.0, 13/255.0, 20/255.0, 1.0,
92/255.0, 44/255.0, 92/255.0, 1.0,
148/255.0, 90/255.0, 148/255.0, 1.0,
}

◆ gradient_electric_blue

float gradient_electric_blue[16]
Initial value:
= {
1/255.0, 2/255.0, 67/255.0, 1.0,
1/255.0, 73/255.0, 183/255.0, 1.0,
1/255.0, 93/255.0, 194/255.0, 1.0,
3/255.0, 162/255.0, 254/255.0, 1.0,
}

◆ gradient_golden

float gradient_golden[16]
Initial value:
= {
174/255.0, 123/255.0, 44/255.0, 1.0,
205/255.0, 174/255.0, 84/255.0, 1.0,
58/255.0, 43/255.0, 24/255.0, 1.0,
58/255.0, 43/255.0, 24/255.0, 1.0,
}

◆ gradient_legacy_red

float gradient_legacy_red[16]
Initial value:
= {
171/255.0, 70/255.0, 59/255.0, 1.0,
171/255.0, 70/255.0, 59/255.0, 1.0,
190/255.0, 80/255.0, 69/255.0, 1.0,
190/255.0, 80/255.0, 69/255.0, 1.0,
}

◆ gradient_light

float gradient_light[16]
Initial value:
= {
1.0, 1.0, 1.0, 1.00,
1.0, 1.0, 1.0, 1.00,
1.0, 1.0, 1.0, 1.00,
1.0, 1.0, 1.0, 1.00,
}

◆ gradient_midnight_blue

float gradient_midnight_blue[16]
Initial value:
= {
44/255.0, 62/255.0, 80/255.0, 1.0,
44/255.0, 62/255.0, 80/255.0, 1.0,
44/255.0, 62/255.0, 80/255.0, 1.0,
44/255.0, 62/255.0, 80/255.0, 1.0,
}

◆ gradient_morning_blue

float gradient_morning_blue[16]
Initial value:
= {
221/255.0, 241/255.0, 254/255.0, 1.00,
135/255.0, 206/255.0, 250/255.0, 1.00,
1.0, 1.0, 1.0, 1.00,
170/255.0, 200/255.0, 252/255.0, 1.00,
}

◆ gradient_undersea

float gradient_undersea[16]
Initial value:
= {
23/255.0, 18/255.0, 41/255.0, 1.0,
30/255.0, 72/255.0, 114/255.0, 1.0,
52/255.0, 88/255.0, 110/255.0, 1.0,
69/255.0, 125/255.0, 140/255.0, 1.0,
}

◆ gradient_volcanic_red

float gradient_volcanic_red[16]
Initial value:
= {
1.0, 0.0, 0.1, 1.00,
1.0, 0.1, 0.0, 1.00,
0.1, 0.0, 0.1, 1.00,
0.1, 0.0, 0.1, 1.00,
}

◆ item_color

float item_color[]
static
Initial value:
= {
1, 1, 1, 1,
1, 1, 1, 1,
1, 1, 1, 1,
1, 1, 1, 1
}

◆ menu_ctx_xmb

menu_ctx_driver_t menu_ctx_xmb

◆ scale_mod

float scale_mod[8]
Initial value:
= {
1, 1, 1, 1, 1, 1, 1, 1
}