From 83edfab974c66fe6a5d5199072ed3ab5976c24bb Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 20 Jun 2014 05:00:30 +0200 Subject: [PATCH] (Menu) Expose HW Shared Context in menu --- frontend/menu/backend/menu_common_backend.c | 21 +++++++++++++++++++++ frontend/menu/backend/menu_common_backend.h | 1 + retroarch.cfg | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/frontend/menu/backend/menu_common_backend.c b/frontend/menu/backend/menu_common_backend.c index 7f9f29e4b8..5f7cf96358 100644 --- a/frontend/menu/backend/menu_common_backend.c +++ b/frontend/menu/backend/menu_common_backend.c @@ -157,6 +157,7 @@ static void menu_common_entries_init(void *data, unsigned menu_type) break; case MENU_SETTINGS_VIDEO_OPTIONS: file_list_clear(menu->selection_buf); + file_list_push(menu->selection_buf, "HW Shared Context", MENU_SETTINGS_VIDEO_HW_SHARED_CONTEXT, 0); #if defined(GEKKO) || defined(__CELLOS_LV2__) file_list_push(menu->selection_buf, "Screen Resolution", MENU_SETTINGS_VIDEO_RESOLUTION, 0); #endif @@ -4478,6 +4479,23 @@ static int menu_common_setting_set(unsigned setting, unsigned action) break; #endif + case MENU_SETTINGS_VIDEO_HW_SHARED_CONTEXT: + switch (action) + { + case MENU_ACTION_START: + g_settings.video.shared_context = video_shared_context; + break; + + case MENU_ACTION_LEFT: + case MENU_ACTION_RIGHT: + case MENU_ACTION_OK: + g_settings.video.shared_context = !g_settings.video.shared_context; + break; + + default: + break; + } + break; case MENU_SETTINGS_VIDEO_VSYNC: switch (action) { @@ -5031,6 +5049,9 @@ static void menu_common_setting_set_label(char *type_str, size_t type_str_size, case MENU_SETTINGS_VIDEO_VSYNC: strlcpy(type_str, g_settings.video.vsync ? "ON" : "OFF", type_str_size); break; + case MENU_SETTINGS_VIDEO_HW_SHARED_CONTEXT: + strlcpy(type_str, g_settings.video.shared_context ? "ON" : "OFF", type_str_size); + break; case MENU_SETTINGS_VIDEO_HARD_SYNC: strlcpy(type_str, g_settings.video.hard_sync ? "ON" : "OFF", type_str_size); break; diff --git a/frontend/menu/backend/menu_common_backend.h b/frontend/menu/backend/menu_common_backend.h index 40dab6013b..5b22f37f12 100644 --- a/frontend/menu/backend/menu_common_backend.h +++ b/frontend/menu/backend/menu_common_backend.h @@ -33,6 +33,7 @@ typedef enum MENU_SETTINGS_GENERAL_OPTIONS = MENU_START_SCREEN + 1, MENU_SETTINGS_VIDEO_OPTIONS, MENU_SETTINGS_VIDEO_OPTIONS_FIRST, + MENU_SETTINGS_VIDEO_HW_SHARED_CONTEXT, MENU_SETTINGS_VIDEO_RESOLUTION, MENU_SETTINGS_VIDEO_PAL60, MENU_SETTINGS_VIDEO_FILTER, diff --git a/retroarch.cfg b/retroarch.cfg index ea7b9570b2..c9d27d1dcf 100644 --- a/retroarch.cfg +++ b/retroarch.cfg @@ -134,7 +134,7 @@ # video_threaded = false # Use a shared context for HW rendered libretro cores. -# Avoids having to assume GL state changes inbetween frames. +# Avoids having to assume HW state changes inbetween frames. # video_shared_context = false # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.