mirror of
https://github.com/libretro/RetroArch
synced 2025-03-06 04:13:52 +00:00
commit
2489313d28
@ -38,7 +38,7 @@ matrix:
|
||||
- clang-3.8
|
||||
env: COMPILER_NAME=clang-3.8 CXX=clang++-3.8 CC=clang-3.8
|
||||
- os: osx
|
||||
osx_image: xcode7.3
|
||||
osx_image: xcode8
|
||||
script:
|
||||
- xcodebuild -target RetroArch -configuration Release -project pkg/apple/RetroArch.xcodeproj
|
||||
- os: osx
|
||||
|
9
.vscode/settings.json
vendored
9
.vscode/settings.json
vendored
@ -33,7 +33,14 @@
|
||||
"hash_set": "c",
|
||||
"initializer_list": "c",
|
||||
"string_view": "c",
|
||||
"utility": "c"
|
||||
"utility": "c",
|
||||
"menu_input.h": "c",
|
||||
"tasks_internal.h": "c",
|
||||
"ozone.h": "c",
|
||||
"ozone_theme.h": "c",
|
||||
"ozone_texture.h": "c",
|
||||
"string_list.h": "c",
|
||||
"core_info.h": "c"
|
||||
},
|
||||
"C_Cpp.dimInactiveRegions": false,
|
||||
}
|
96
10bpc-gl.diff
Normal file
96
10bpc-gl.diff
Normal file
@ -0,0 +1,96 @@
|
||||
diff --git a/gfx/drivers_context/wgl_ctx.c b/gfx/drivers_context/wgl_ctx.c
|
||||
index b90a8e40c3..e57c4df194 100644
|
||||
--- a/gfx/drivers_context/wgl_ctx.c
|
||||
+++ b/gfx/drivers_context/wgl_ctx.c
|
||||
@@ -78,6 +78,47 @@
|
||||
#ifndef WGL_CONTEXT_DEBUG_BIT_ARB
|
||||
#define WGL_CONTEXT_DEBUG_BIT_ARB 0x0001
|
||||
#endif
|
||||
+
|
||||
+#ifndef WGL_ACCELERATION_ARB
|
||||
+#define WGL_ACCELERATION_ARB 0x2003
|
||||
+#endif
|
||||
+
|
||||
+#ifndef WGL_FULL_ACCELERATION_ARB
|
||||
+#define WGL_FULL_ACCELERATION_ARB 0x2027
|
||||
+#endif
|
||||
+
|
||||
+#ifndef WGL_DRAW_TO_WINDOW_ARB
|
||||
+#define WGL_DRAW_TO_WINDOW_ARB 0x2001
|
||||
+#endif
|
||||
+
|
||||
+#ifndef WGL_DOUBLE_BUFFER_ARB
|
||||
+#define WGL_DOUBLE_BUFFER_ARB 0x2011
|
||||
+#endif
|
||||
+
|
||||
+#ifndef WGL_RED_BITS_ARB
|
||||
+#define WGL_RED_BITS_ARB 0x2015
|
||||
+#endif
|
||||
+
|
||||
+#ifndef WGL_GREEN_BITS_ARB
|
||||
+#define WGL_GREEN_BITS_ARB 0x2017
|
||||
+#endif
|
||||
+
|
||||
+#ifndef WGL_BLUE_BITS_ARB
|
||||
+#define WGL_BLUE_BITS_ARB 0x2019
|
||||
+#endif
|
||||
+
|
||||
+#ifndef WGL_ALPHA_BITS_ARB
|
||||
+#define WGL_ALPHA_BITS_ARB 0x201B
|
||||
+#endif
|
||||
+
|
||||
+#ifndef WGL_PIXEL_TYPE_ARB
|
||||
+#define WGL_PIXEL_TYPE_ARB 0x2013
|
||||
+#endif
|
||||
+
|
||||
+#ifndef WGL_TYPE_RGBA_ARB
|
||||
+#define WGL_TYPE_RGBA_ARB 0x202B
|
||||
+#endif
|
||||
+
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_OPENGL)
|
||||
@@ -313,6 +354,43 @@ static void create_gl_context(HWND hwnd, bool *quit)
|
||||
RARCH_LOG("[WGL]: Adaptive VSync supported.\n");
|
||||
wgl_adaptive_vsync = true;
|
||||
}
|
||||
+ if (wgl_has_extension("WGL_ARB_pixel_format", extensions))
|
||||
+ {
|
||||
+ BOOL (WINAPI * wglChoosePixelFormatARB)
|
||||
+ (HDC hdc,
|
||||
+ const int *piAttribIList,
|
||||
+ const FLOAT *pfAttribFList,
|
||||
+ UINT nMaxFormats,
|
||||
+ int *piFormats,
|
||||
+ UINT *nNumFormats);
|
||||
+ UINT nMatchingFormats;
|
||||
+ int index = 0;
|
||||
+ int attribsDesired[] = {
|
||||
+ WGL_DRAW_TO_WINDOW_ARB, 1,
|
||||
+ WGL_ACCELERATION_ARB, WGL_FULL_ACCELERATION_ARB,
|
||||
+ WGL_PIXEL_TYPE_ARB, WGL_TYPE_RGBA_ARB,
|
||||
+ WGL_RED_BITS_ARB, 10,
|
||||
+ WGL_GREEN_BITS_ARB, 10,
|
||||
+ WGL_BLUE_BITS_ARB, 10,
|
||||
+ WGL_ALPHA_BITS_ARB, 2,
|
||||
+ WGL_DOUBLE_BUFFER_ARB, 1,
|
||||
+ 0,0
|
||||
+ };
|
||||
+ wglChoosePixelFormatARB = (BOOL (WINAPI *) (HDC, const int *,
|
||||
+ const FLOAT*, UINT, int*, UINT*))
|
||||
+ gfx_ctx_wgl_get_proc_address("wglChoosePixelFormatARB");
|
||||
+
|
||||
+ RARCH_LOG("[WGL]: ARB pixel format supported.\n");
|
||||
+
|
||||
+ if (wglChoosePixelFormatARB(win32_hdc, attribsDesired,
|
||||
+ NULL, 1, &index, &nMatchingFormats))
|
||||
+ {
|
||||
+ if (nMatchingFormats == 0)
|
||||
+ {
|
||||
+ RARCH_WARN("No 10bpc WGL_ARB_pixel_formats found!\n");
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
}
|
||||
#endif
|
@ -716,7 +716,12 @@ ifeq ($(HAVE_XMB), 1)
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_OZONE), 1)
|
||||
OBJ += menu/drivers/ozone.o
|
||||
OBJ += menu/drivers/ozone/ozone.o
|
||||
OBJ += menu/drivers/ozone/ozone_entries.o
|
||||
OBJ += menu/drivers/ozone/ozone_display.o
|
||||
OBJ += menu/drivers/ozone/ozone_texture.o
|
||||
OBJ += menu/drivers/ozone/ozone_theme.o
|
||||
OBJ += menu/drivers/ozone/ozone_sidebar.o
|
||||
DEFINES += -DHAVE_OZONE
|
||||
HAVE_MENU_COMMON = 1
|
||||
endif
|
||||
|
@ -222,7 +222,8 @@ ifneq ($(ROMFS),)
|
||||
export NROFLAGS += --romfsdir=$(CURDIR)/$(ROMFS)
|
||||
endif
|
||||
|
||||
DEPENDS := $(OFILES:.o=.d)
|
||||
DEPENDS_TMP := $(OFILES:.o=.d)
|
||||
DEPENDS := $(filter-out libretro_libnx.a,$(DEPENDS_TMP))
|
||||
|
||||
.PHONY: clean all
|
||||
|
||||
@ -244,7 +245,7 @@ endif
|
||||
$(OUTPUT).elf : $(OBJ)
|
||||
|
||||
clean:
|
||||
rm -f $(OBJ) $(OUTPUT).pfs0 $(OUTPUT).nro $(OUTPUT).elf
|
||||
rm -f $(DEPENDS) $(OBJ) $(OUTPUT).pfs0 $(OUTPUT).nro $(OUTPUT).elf
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# you need a rule like this for each extension you use as binary data
|
||||
|
34
README.md
34
README.md
@ -189,46 +189,46 @@ The default super resolution is 2560. It is displayed just under the CRT switch
|
||||
|
||||
If native resolutions are activated you will need a whole new set of modelines:
|
||||
|
||||
- 512 x 240 @ 50.006977 SNESpal
|
||||
- 256 x 240 @ 50.006977 SNESpal
|
||||
- 256 x 448 @ 50.006977 SNESpal
|
||||
- 512 x 224 @ 50.006977 SNESpal
|
||||
- 512 x 240 @ 50.006977 SNESpal
|
||||
- 512 x 448 @ 50.006977 SNESpal
|
||||
- 256 x 240 @ 60.098812 SNESntsc
|
||||
- 256 x 448 @ 60.098812 SNESntsc
|
||||
- 512 x 240 @ 60.098812 SNESntsc
|
||||
- 512 x 224 @ 60.098812 SNESntsc
|
||||
- 512 x 448 @ 60.098812 SNESntsc
|
||||
- 256 x 240 @ 50.006977 SNESpal
|
||||
- 256 x 448 @ 50.006977 SNESpal
|
||||
- 256 x 240 @ 60.098812 SNESntsc
|
||||
- 256 x 448 @ 60.098812 SNESntsc
|
||||
- 320 x 240 @ 59.922745 MDntsc
|
||||
- 320 x 448 @ 59.922745 MDntp
|
||||
- 320 x 480 @ 59.922745 MDntsc
|
||||
- 256 x 192 @ 59.922745 MDntsc
|
||||
- 320 x 224 @ 59.922745 MDntsc
|
||||
- 256 x 224 @ 59.922745 MDntsc
|
||||
- 320 x 288 @ 49.701458 MDpal
|
||||
- 320 x 576 @ 49.701458 MDpal
|
||||
- 320 x 224 @ 59.922745 MDntsc
|
||||
- 320 x 240 @ 59.922745 MDntsc
|
||||
- 320 x 448 @ 59.922745 MDntsc
|
||||
- 320 x 480 @ 59.922745 MDntsc
|
||||
- 256 x 192 @ 49.701458 MDpal
|
||||
- 256 x 224 @ 49.701458 MDpal
|
||||
- 320 x 224 @ 49.701458 MDpal
|
||||
- 320 x 240 @ 49.701458 MDpal
|
||||
- 320 x 288 @ 49.701458 MDpal
|
||||
- 320 x 448 @ 49.701458 MDpal
|
||||
- 320 x 480 @ 49.701458 MDpal
|
||||
- 256 x 224 @ 49.701458 MDpal
|
||||
- 320 x 576 @ 49.701458 MDpal
|
||||
- 256 x 288 @ 49.701458 MSYSpal
|
||||
- 256 x 240 @ 60.098812 NESntsc
|
||||
- 256 x 240 @ 50.006977 NESpal
|
||||
|
||||
- 640 x 480 @ 60.130001 N64ntsc
|
||||
- 640 x 237 @ 60.130001 N64ntsc
|
||||
- 640 x 240 @ 60.130001 N64ntsc
|
||||
- 640 x 480 @ 60.130001 N64ntsc
|
||||
- 640 x 288 @ 50.000000 N64pal
|
||||
- 640 x 480 @ 50.000000 N64pal
|
||||
- 640 x 576 @ 50.000000 n64pal
|
||||
- 640 x 288 @ 50.000000 n64pal
|
||||
- 640 x 576 @ 50.000000 N64pal
|
||||
|
||||
- 256 x 252 @ 49.759998 PSXpal
|
||||
- 384 x 252 @ 49.759998 PSXpal
|
||||
- 640 x 540 @ 49.759998 PSXpal
|
||||
- 320 x 252 @ 49.759998 PSXpal
|
||||
- 384 x 252 @ 49.759998 PSXpal
|
||||
- 640 x 252 @ 49.759998 PSXpal
|
||||
- 640 x 540 @ 49.759998 PSXpal
|
||||
|
||||
- 384 x 240 @ 59.941002 PSXntsc
|
||||
- 256 x 480 @ 59.941002 PSXntsc
|
||||
|
@ -29,6 +29,19 @@
|
||||
#include <mmreg.h>
|
||||
#include <audioclient.h>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
/* IID_IAudioClient 1CB9AD4C-DBFA-4c32-B178-C2F568A703B2 */
|
||||
static const GUID IID_IAudioClient = { 0x1CB9AD4C, 0xDBFA, 0xB178, 0xC2, 0xF5, 0x68, 0xA7, 0x03, 0xB2 };
|
||||
/* IID_IAudioRenderClient F294ACFC-3146-4483-A7BF-ADDCA7C260E2 */
|
||||
static const GUID IID_IAudioRenderClient = { 0xF294ACFC, 0x3146, 0x4483, 0xA7BF, 0xAD, 0xDC, 0xA7, 0xC2, 0x60, 0xE2 };
|
||||
/* IID_IMMDeviceEnumerator A95664D2-9614-4F35-A746-DE8DB63617E6 */
|
||||
static const GUID IID_IMMDeviceEnumerator = { 0xA95664D2, 0x9614, 0x4F35, 0xA746, 0xDE, 0x8D, 0xB6, 0x36, 0x17, 0xE6 };
|
||||
/* CLSID_MMDeviceEnumerator BCDE0395-E52F-467C-8E3D-C4579291692E */
|
||||
static const GUID CLSID_MMDeviceEnumerator = { 0xBCDE0395, 0xE52F, 0x467C, 0x8E3D, 0xC4, 0x57, 0x92, 0x91, 0x69, 0x2E };
|
||||
/* KSDATAFORMAT_SUBTYPE_IEEE_FLOAT 00000003-0000-0010-8000-00aa00389b71 */
|
||||
static const GUID KSDATAFORMAT_SUBTYPE_IEEE_FLOAT = { 0x00000003, 0x0000, 0x0010, 0x8000, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 };
|
||||
#endif
|
||||
|
||||
#include <lists/string_list.h>
|
||||
#include <queues/fifo_queue.h>
|
||||
|
||||
|
@ -1745,7 +1745,7 @@ found:
|
||||
settings_t *settings = config_get_ptr();
|
||||
if (!(
|
||||
string_is_equal(settings->arrays.menu_driver, "xmb") ||
|
||||
!string_is_equal(settings->arrays.menu_driver, "ozone")
|
||||
string_is_equal(settings->arrays.menu_driver, "ozone")
|
||||
) ||
|
||||
!settings->bools.cheevos_badges_enable)
|
||||
CORO_RET();
|
||||
|
7476
cheevos/cheevos.c
7476
cheevos/cheevos.c
File diff suppressed because it is too large
Load Diff
@ -117,8 +117,8 @@ static const unsigned monitor_index = 0;
|
||||
/* Window */
|
||||
/* Window size. A value of 0 uses window scale
|
||||
* multiplied by the core framebuffer size. */
|
||||
static const unsigned window_x = 0;
|
||||
static const unsigned window_y = 0;
|
||||
static const unsigned window_width = 1280;
|
||||
static const unsigned window_height = 720;
|
||||
|
||||
/* Fullscreen resolution. A value of 0 uses the desktop
|
||||
* resolution. */
|
||||
|
@ -1514,6 +1514,7 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
|
||||
SETTING_BOOL("video_msg_bgcolor_enable", &settings->bools.video_msg_bgcolor_enable, true, message_bgcolor_enable, false);
|
||||
SETTING_BOOL("video_window_show_decorations", &settings->bools.video_window_show_decorations, true, window_decorations, false);
|
||||
SETTING_BOOL("video_window_save_positions", &settings->bools.video_window_save_positions, true, false, false);
|
||||
|
||||
SETTING_BOOL("sustained_performance_mode", &settings->bools.sustained_performance_mode, true, sustained_performance_mode, false);
|
||||
|
||||
@ -1589,8 +1590,6 @@ static struct config_uint_setting *populate_settings_uint(settings_t *settings,
|
||||
SETTING_UINT("video_monitor_index", &settings->uints.video_monitor_index, true, monitor_index, false);
|
||||
SETTING_UINT("video_fullscreen_x", &settings->uints.video_fullscreen_x, true, fullscreen_x, false);
|
||||
SETTING_UINT("video_fullscreen_y", &settings->uints.video_fullscreen_y, true, fullscreen_y, false);
|
||||
SETTING_UINT("video_window_x", &settings->uints.video_window_x, true, fullscreen_x, false);
|
||||
SETTING_UINT("video_window_y", &settings->uints.video_window_y, true, fullscreen_y, false);
|
||||
SETTING_UINT("video_window_opacity", &settings->uints.video_window_opacity, true, window_opacity, false);
|
||||
#ifdef HAVE_COMMAND
|
||||
SETTING_UINT("network_cmd_port", &settings->uints.network_cmd_port, true, network_cmd_port, false);
|
||||
@ -1672,6 +1671,10 @@ static struct config_uint_setting *populate_settings_uint(settings_t *settings,
|
||||
SETTING_UINT("video_stream_quality", &settings->uints.video_stream_quality, true, RECORD_CONFIG_TYPE_STREAMING_LOW_QUALITY, false);
|
||||
SETTING_UINT("video_record_scale_factor", &settings->uints.video_record_scale_factor, true, 1, false);
|
||||
SETTING_UINT("video_stream_scale_factor", &settings->uints.video_stream_scale_factor, true, 1, false);
|
||||
SETTING_UINT("video_windowed_position_x", &settings->uints.window_position_x, true, 0, false);
|
||||
SETTING_UINT("video_windowed_position_y", &settings->uints.window_position_y, true, 0, false);
|
||||
SETTING_UINT("video_windowed_position_width", &settings->uints.window_position_width, true, window_width, false);
|
||||
SETTING_UINT("video_windowed_position_height", &settings->uints.window_position_height, true, window_height, false);
|
||||
|
||||
*size = count;
|
||||
|
||||
|
@ -293,6 +293,7 @@ typedef struct settings
|
||||
|
||||
bool automatically_add_content_to_playlist;
|
||||
bool video_window_show_decorations;
|
||||
bool video_window_save_positions;
|
||||
|
||||
bool sustained_performance_mode;
|
||||
} bools;
|
||||
@ -372,8 +373,6 @@ typedef struct settings
|
||||
unsigned network_cmd_port;
|
||||
unsigned network_remote_base_port;
|
||||
unsigned keymapper_port;
|
||||
unsigned video_window_x;
|
||||
unsigned video_window_y;
|
||||
unsigned video_window_opacity;
|
||||
unsigned crt_switch_resolution;
|
||||
unsigned crt_switch_resolution_super;
|
||||
@ -439,6 +438,11 @@ typedef struct settings
|
||||
|
||||
unsigned midi_volume;
|
||||
unsigned streaming_mode;
|
||||
|
||||
unsigned window_position_x;
|
||||
unsigned window_position_y;
|
||||
unsigned window_position_width;
|
||||
unsigned window_position_height;
|
||||
} uints;
|
||||
|
||||
struct
|
||||
|
@ -565,6 +565,9 @@ static bool device_is_xperia_play(const char *name)
|
||||
strstr(name, "R800at") ||
|
||||
strstr(name, "R800i") ||
|
||||
strstr(name, "R800a") ||
|
||||
strstr(name, "R800") ||
|
||||
strstr(name, "Xperia Play") ||
|
||||
strstr(name, "Play") ||
|
||||
strstr(name, "SO-01D")
|
||||
)
|
||||
return true;
|
||||
|
@ -200,6 +200,8 @@ static bool g_win32_quit = false;
|
||||
|
||||
static int g_win32_pos_x = CW_USEDEFAULT;
|
||||
static int g_win32_pos_y = CW_USEDEFAULT;
|
||||
static unsigned g_win32_pos_width = 0;
|
||||
static unsigned g_win32_pos_height = 0;
|
||||
|
||||
unsigned g_win32_resize_width = 0;
|
||||
unsigned g_win32_resize_height = 0;
|
||||
@ -617,6 +619,48 @@ static LRESULT win32_handle_keyboard_event(HWND hwnd, UINT message,
|
||||
}
|
||||
#endif
|
||||
|
||||
static void win32_set_position_from_config(void)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
if (!settings->bools.video_window_save_positions)
|
||||
return;
|
||||
|
||||
g_win32_pos_x = settings->uints.window_position_x;
|
||||
g_win32_pos_y = settings->uints.window_position_y;
|
||||
g_win32_pos_width = settings->uints.window_position_width;
|
||||
g_win32_pos_height= settings->uints.window_position_height;
|
||||
}
|
||||
|
||||
static void win32_save_position(void)
|
||||
{
|
||||
RECT rect;
|
||||
WINDOWPLACEMENT placement;
|
||||
settings_t *settings = config_get_ptr();
|
||||
memset(&placement, 0, sizeof(placement));
|
||||
placement.length = sizeof(placement);
|
||||
|
||||
GetWindowPlacement(main_window.hwnd, &placement);
|
||||
|
||||
g_win32_pos_x = placement.rcNormalPosition.left;
|
||||
g_win32_pos_y = placement.rcNormalPosition.top;
|
||||
|
||||
if (GetWindowRect(main_window.hwnd, &rect))
|
||||
{
|
||||
g_win32_pos_width = rect.right - rect.left;
|
||||
g_win32_pos_height = rect.bottom - rect.top;
|
||||
}
|
||||
if (settings && settings->bools.video_window_save_positions)
|
||||
{
|
||||
if (!settings->bools.video_fullscreen && !retroarch_is_forced_fullscreen())
|
||||
{
|
||||
settings->uints.window_position_x = g_win32_pos_x;
|
||||
settings->uints.window_position_y = g_win32_pos_y;
|
||||
settings->uints.window_position_width = g_win32_pos_width;
|
||||
settings->uints.window_position_height = g_win32_pos_height;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static LRESULT CALLBACK WndProcCommon(bool *quit, HWND hwnd, UINT message,
|
||||
WPARAM wparam, LPARAM lparam)
|
||||
{
|
||||
@ -634,6 +678,7 @@ static LRESULT CALLBACK WndProcCommon(bool *quit, HWND hwnd, UINT message,
|
||||
*quit = true;
|
||||
break;
|
||||
}
|
||||
win32_save_position();
|
||||
break;
|
||||
case WM_DROPFILES:
|
||||
{
|
||||
@ -649,21 +694,16 @@ static LRESULT CALLBACK WndProcCommon(bool *quit, HWND hwnd, UINT message,
|
||||
*quit = true;
|
||||
return win32_handle_keyboard_event(hwnd, message, wparam, lparam);
|
||||
|
||||
case WM_MOVE:
|
||||
win32_save_position();
|
||||
break;
|
||||
case WM_CLOSE:
|
||||
case WM_DESTROY:
|
||||
case WM_QUIT:
|
||||
{
|
||||
WINDOWPLACEMENT placement;
|
||||
memset(&placement, 0, sizeof(placement));
|
||||
placement.length = sizeof(placement);
|
||||
win32_save_position();
|
||||
|
||||
GetWindowPlacement(main_window.hwnd, &placement);
|
||||
|
||||
g_win32_pos_x = placement.rcNormalPosition.left;
|
||||
g_win32_pos_y = placement.rcNormalPosition.top;
|
||||
g_win32_quit = true;
|
||||
*quit = true;
|
||||
}
|
||||
g_win32_quit = true;
|
||||
*quit = true;
|
||||
break;
|
||||
case WM_SIZE:
|
||||
/* Do not send resize message if we minimize. */
|
||||
@ -678,6 +718,7 @@ static LRESULT CALLBACK WndProcCommon(bool *quit, HWND hwnd, UINT message,
|
||||
g_win32_resized = true;
|
||||
}
|
||||
}
|
||||
win32_save_position();
|
||||
*quit = true;
|
||||
break;
|
||||
case WM_COMMAND:
|
||||
@ -719,6 +760,7 @@ LRESULT CALLBACK WndProcD3D(HWND hwnd, UINT message,
|
||||
case WM_CLOSE:
|
||||
case WM_DESTROY:
|
||||
case WM_QUIT:
|
||||
case WM_MOVE:
|
||||
case WM_SIZE:
|
||||
case WM_COMMAND:
|
||||
ret = WndProcCommon(&quit, hwnd, message, wparam, lparam);
|
||||
@ -779,6 +821,7 @@ LRESULT CALLBACK WndProcGL(HWND hwnd, UINT message,
|
||||
case WM_CLOSE:
|
||||
case WM_DESTROY:
|
||||
case WM_QUIT:
|
||||
case WM_MOVE:
|
||||
case WM_SIZE:
|
||||
case WM_COMMAND:
|
||||
ret = WndProcCommon(&quit,
|
||||
@ -878,6 +921,7 @@ LRESULT CALLBACK WndProcGDI(HWND hwnd, UINT message,
|
||||
case WM_CLOSE:
|
||||
case WM_DESTROY:
|
||||
case WM_QUIT:
|
||||
case WM_MOVE:
|
||||
case WM_SIZE:
|
||||
case WM_COMMAND:
|
||||
ret = WndProcCommon(&quit, hwnd, message, wparam, lparam);
|
||||
@ -918,12 +962,23 @@ bool win32_window_create(void *data, unsigned style,
|
||||
#endif
|
||||
settings_t *settings = config_get_ptr();
|
||||
#ifndef _XBOX
|
||||
unsigned user_width = width;
|
||||
unsigned user_height = height;
|
||||
win32_set_position_from_config();
|
||||
|
||||
if (settings->bools.video_window_save_positions
|
||||
&& !fullscreen)
|
||||
{
|
||||
user_width = g_win32_pos_width;
|
||||
user_height= g_win32_pos_height;
|
||||
}
|
||||
main_window.hwnd = CreateWindowEx(0,
|
||||
"RetroArch", "RetroArch",
|
||||
style,
|
||||
fullscreen ? mon_rect->left : g_win32_pos_x,
|
||||
fullscreen ? mon_rect->top : g_win32_pos_y,
|
||||
width, height,
|
||||
user_width,
|
||||
user_height,
|
||||
NULL, NULL, NULL, data);
|
||||
if (!main_window.hwnd)
|
||||
return false;
|
||||
@ -1139,9 +1194,10 @@ void win32_set_style(MONITORINFOEX *current_mon, HMONITOR *hm_to_use,
|
||||
RECT *rect, RECT *mon_rect, DWORD *style)
|
||||
{
|
||||
#if !defined(_XBOX)
|
||||
bool position_set_from_config = false;
|
||||
settings_t *settings = config_get_ptr();
|
||||
if (fullscreen)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
/* Windows only reports the refresh rates for modelines as
|
||||
* an integer, so video_refresh_rate needs to be rounded. Also, account
|
||||
* for black frame insertion using video_refresh_rate set to half
|
||||
@ -1176,8 +1232,23 @@ void win32_set_style(MONITORINFOEX *current_mon, HMONITOR *hm_to_use,
|
||||
|
||||
AdjustWindowRect(rect, *style, FALSE);
|
||||
|
||||
g_win32_resize_width = *width = rect->right - rect->left;
|
||||
g_win32_resize_height = *height = rect->bottom - rect->top;
|
||||
if (settings->bools.video_window_save_positions)
|
||||
{
|
||||
win32_set_position_from_config();
|
||||
if (g_win32_pos_width != 0 && g_win32_pos_height != 0)
|
||||
position_set_from_config = true;
|
||||
}
|
||||
|
||||
if (position_set_from_config)
|
||||
{
|
||||
g_win32_resize_width = *width = g_win32_pos_width;
|
||||
g_win32_resize_height = *height = g_win32_pos_height;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_win32_resize_width = *width = rect->right - rect->left;
|
||||
g_win32_resize_height = *height = rect->bottom - rect->top;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@ -1256,6 +1327,7 @@ bool win32_set_video_mode(void *data,
|
||||
&mon_rect, width, height, fullscreen))
|
||||
return false;
|
||||
|
||||
|
||||
win32_set_window(&width, &height,
|
||||
fullscreen, windowed_full, &rect);
|
||||
|
||||
@ -1353,15 +1425,13 @@ void win32_get_video_output_prev(
|
||||
unsigned curr_width = 0;
|
||||
unsigned curr_height = 0;
|
||||
|
||||
memset(&dm, 0, sizeof(dm));
|
||||
if (win32_get_video_output(&dm, -1, sizeof(dm)))
|
||||
{
|
||||
curr_width = dm.dmPelsWidth;
|
||||
curr_height = dm.dmPelsHeight;
|
||||
}
|
||||
|
||||
dm.dmSize = sizeof(dm);
|
||||
|
||||
win32_get_video_output_size(&curr_width, &curr_height);
|
||||
|
||||
for (i = 0;
|
||||
EnumDisplaySettings(NULL, i, &dm) != 0;
|
||||
i++)
|
||||
for (i = 0; win32_get_video_output(&dm, i, sizeof(dm)); i++)
|
||||
{
|
||||
if ( dm.dmPelsWidth == curr_width
|
||||
&& dm.dmPelsHeight == curr_height)
|
||||
@ -1458,14 +1528,13 @@ void win32_get_video_output_next(
|
||||
unsigned curr_width = 0;
|
||||
unsigned curr_height = 0;
|
||||
|
||||
memset(&dm, 0, sizeof(dm));
|
||||
dm.dmSize = sizeof(dm);
|
||||
if (win32_get_video_output(&dm, -1, sizeof(dm)))
|
||||
{
|
||||
curr_width = dm.dmPelsWidth;
|
||||
curr_height = dm.dmPelsHeight;
|
||||
}
|
||||
|
||||
win32_get_video_output_size(&curr_width, &curr_height);
|
||||
|
||||
for (i = 0;
|
||||
EnumDisplaySettings(NULL, i, &dm) != 0;
|
||||
i++)
|
||||
for (i = 0; win32_get_video_output(&dm, i, sizeof(dm)); i++)
|
||||
{
|
||||
if (found)
|
||||
{
|
||||
@ -1480,13 +1549,23 @@ void win32_get_video_output_next(
|
||||
}
|
||||
}
|
||||
|
||||
bool win32_get_video_output(DEVMODE *dm, int mode, size_t len)
|
||||
{
|
||||
memset(dm, 0, len);
|
||||
dm->dmSize = len;
|
||||
|
||||
if (EnumDisplaySettings(NULL,
|
||||
(mode == -1) ? ENUM_CURRENT_SETTINGS : mode, dm) == 0)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void win32_get_video_output_size(unsigned *width, unsigned *height)
|
||||
{
|
||||
DEVMODE dm;
|
||||
memset(&dm, 0, sizeof(dm));
|
||||
dm.dmSize = sizeof(dm);
|
||||
|
||||
if (EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &dm) != 0)
|
||||
if (win32_get_video_output(&dm, -1, sizeof(dm)))
|
||||
{
|
||||
*width = dm.dmPelsWidth;
|
||||
*height = dm.dmPelsHeight;
|
||||
|
@ -101,6 +101,8 @@ void win32_check_window(bool *quit,
|
||||
void win32_set_window(unsigned *width, unsigned *height,
|
||||
bool fullscreen, bool windowed_full, void *rect_data);
|
||||
|
||||
bool win32_get_video_output(DEVMODE *dm, int mode, size_t len);
|
||||
|
||||
void win32_get_video_output_size(
|
||||
unsigned *width, unsigned *height);
|
||||
|
||||
|
@ -48,9 +48,10 @@ const video_display_server_t dispserv_null = {
|
||||
null_display_server_destroy,
|
||||
null_display_server_set_window_opacity,
|
||||
null_display_server_set_window_progress,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL, /* set_window_decorations */
|
||||
NULL, /* set_resolution */
|
||||
NULL, /* get_resolution_list */
|
||||
NULL, /* get_output_options */
|
||||
"null"
|
||||
};
|
||||
|
||||
|
@ -107,7 +107,7 @@ static void win32_display_server_destroy(void *data)
|
||||
dispserv_win32_t *dispserv = (dispserv_win32_t*)data;
|
||||
|
||||
if (win32_orig_width > 0 && win32_orig_height > 0)
|
||||
video_display_server_switch_resolution(win32_orig_width, win32_orig_height,
|
||||
video_display_server_set_resolution(win32_orig_width, win32_orig_height,
|
||||
win32_orig_refresh, (float)win32_orig_refresh, crt_center );
|
||||
|
||||
#ifdef HAS_TASKBAR_EXT
|
||||
@ -204,20 +204,16 @@ static bool win32_display_server_set_window_decorations(void *data, bool on)
|
||||
static bool win32_display_server_set_resolution(void *data,
|
||||
unsigned width, unsigned height, int int_hz, float hz, int center)
|
||||
{
|
||||
LONG res;
|
||||
DEVMODE curDevmode;
|
||||
DEVMODE devmode;
|
||||
|
||||
int iModeNum;
|
||||
int freq = int_hz;
|
||||
DWORD flags = 0;
|
||||
int depth = 0;
|
||||
dispserv_win32_t *serv = (dispserv_win32_t*)data;
|
||||
|
||||
if (!serv)
|
||||
return false;
|
||||
|
||||
EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &curDevmode);
|
||||
win32_get_video_output(&curDevmode, -1, sizeof(curDevmode));
|
||||
|
||||
if (win32_orig_width == 0)
|
||||
win32_orig_width = GetSystemMetrics(SM_CXSCREEN);
|
||||
@ -239,7 +235,10 @@ static bool win32_display_server_set_resolution(void *data,
|
||||
|
||||
for (iModeNum = 0;; iModeNum++)
|
||||
{
|
||||
if (!EnumDisplaySettings(NULL, iModeNum, &devmode))
|
||||
LONG res;
|
||||
DEVMODE devmode;
|
||||
|
||||
if (!win32_get_video_output(&devmode, iModeNum, sizeof(devmode)))
|
||||
break;
|
||||
|
||||
if (devmode.dmPelsWidth != width)
|
||||
@ -262,15 +261,15 @@ static bool win32_display_server_set_resolution(void *data,
|
||||
switch (res)
|
||||
{
|
||||
case DISP_CHANGE_SUCCESSFUL:
|
||||
res = win32_change_display_settings(NULL, &devmode, flags);
|
||||
res = win32_change_display_settings(NULL, &devmode, 0);
|
||||
switch (res)
|
||||
{
|
||||
case DISP_CHANGE_SUCCESSFUL:
|
||||
return true;
|
||||
case DISP_CHANGE_NOTUPDATED:
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
case DISP_CHANGE_SUCCESSFUL:
|
||||
return true;
|
||||
case DISP_CHANGE_NOTUPDATED:
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case DISP_CHANGE_RESTART:
|
||||
@ -283,6 +282,62 @@ static bool win32_display_server_set_resolution(void *data,
|
||||
return true;
|
||||
}
|
||||
|
||||
void *win32_display_server_get_resolution_list(void *data,
|
||||
unsigned *len)
|
||||
{
|
||||
DEVMODE dm;
|
||||
unsigned i, count = 0;
|
||||
unsigned curr_width = 0;
|
||||
unsigned curr_height = 0;
|
||||
unsigned curr_bpp = 0;
|
||||
unsigned curr_refreshrate = 0;
|
||||
struct video_display_config *conf = NULL;
|
||||
|
||||
for (i = 0;; i++)
|
||||
{
|
||||
if (!win32_get_video_output(&dm, i, sizeof(dm)))
|
||||
break;
|
||||
|
||||
count++;
|
||||
}
|
||||
|
||||
if (win32_get_video_output(&dm, -1, sizeof(dm)))
|
||||
{
|
||||
curr_width = dm.dmPelsWidth;
|
||||
curr_height = dm.dmPelsHeight;
|
||||
curr_bpp = dm.dmBitsPerPel;
|
||||
curr_refreshrate = dm.dmDisplayFrequency;
|
||||
}
|
||||
|
||||
*len = count;
|
||||
conf = (struct video_display_config*)calloc(*len, sizeof(struct video_display_config));
|
||||
|
||||
if (!conf)
|
||||
return NULL;
|
||||
|
||||
for (i = 0;; i++)
|
||||
{
|
||||
if (!win32_get_video_output(&dm, i, sizeof(dm)))
|
||||
break;
|
||||
|
||||
conf[i].width = dm.dmPelsWidth;
|
||||
conf[i].height = dm.dmPelsHeight;
|
||||
conf[i].bpp = dm.dmBitsPerPel;
|
||||
conf[i].refreshrate = dm.dmDisplayFrequency;
|
||||
conf[i].idx = i;
|
||||
conf[i].current = false;
|
||||
|
||||
if ( (conf[i].width == curr_width)
|
||||
&& (conf[i].height == curr_height)
|
||||
&& (conf[i].refreshrate == curr_refreshrate)
|
||||
&& (conf[i].bpp == curr_bpp)
|
||||
)
|
||||
conf[i].current = true;
|
||||
}
|
||||
|
||||
return conf;
|
||||
}
|
||||
|
||||
const video_display_server_t dispserv_win32 = {
|
||||
win32_display_server_init,
|
||||
win32_display_server_destroy,
|
||||
@ -290,6 +345,7 @@ const video_display_server_t dispserv_win32 = {
|
||||
win32_display_server_set_window_progress,
|
||||
win32_display_server_set_window_decorations,
|
||||
win32_display_server_set_resolution,
|
||||
win32_display_server_get_resolution_list,
|
||||
NULL, /* get_output_options */
|
||||
"win32"
|
||||
};
|
||||
|
@ -29,7 +29,7 @@ static char old_mode[250] = {0};
|
||||
static char new_mode[250] = {0};
|
||||
static char xrandr[250] = {0};
|
||||
static char fbset[150] = {0};
|
||||
static char output[250] = {0};
|
||||
static char output[500] = {0};
|
||||
static bool crt_en = false;
|
||||
|
||||
typedef struct
|
||||
@ -55,23 +55,28 @@ static void x11_display_server_destroy(void *data)
|
||||
|
||||
if (crt_en)
|
||||
{
|
||||
sprintf(output, "xrandr -s %dx%d", orig_width, orig_height);
|
||||
snprintf(output, sizeof(output),
|
||||
"xrandr -s %dx%d", orig_width, orig_height);
|
||||
system(output);
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
sprintf(output, "xrandr --delmode %s%d %s", "VGA", i, old_mode);
|
||||
snprintf(output, sizeof(output),
|
||||
"xrandr --delmode %s%d %s", "VGA", i, old_mode);
|
||||
system(output);
|
||||
sprintf(output, "xrandr --delmode %s-%d %s", "VGA", i, old_mode);
|
||||
snprintf(output, sizeof(output),
|
||||
"xrandr --delmode %s-%d %s", "VGA", i, old_mode);
|
||||
system(output);
|
||||
|
||||
sprintf(output, "xrandr --delmode %s%d %s", "DVI", i, old_mode);
|
||||
snprintf(output, sizeof(output),
|
||||
"xrandr --delmode %s%d %s", "DVI", i, old_mode);
|
||||
system(output);
|
||||
sprintf(output, "xrandr --delmode %s-%d %s", "DVI", i, old_mode);
|
||||
snprintf(output, sizeof(output),
|
||||
"xrandr --delmode %s-%d %s", "DVI", i, old_mode);
|
||||
system(output);
|
||||
}
|
||||
|
||||
sprintf(output, "xrandr --rmmode %s", old_mode);
|
||||
snprintf(output, sizeof(output), "xrandr --rmmode %s", old_mode);
|
||||
system(output);
|
||||
}
|
||||
|
||||
@ -92,7 +97,8 @@ static bool x11_display_server_set_window_opacity(void *data, unsigned opacity)
|
||||
if (opacity == (unsigned)-1)
|
||||
XDeleteProperty(g_x11_dpy, g_x11_win, net_wm_opacity);
|
||||
else
|
||||
XChangeProperty(g_x11_dpy, g_x11_win, net_wm_opacity, cardinal, 32, PropModeReplace, (const unsigned char*)&opacity, 1);
|
||||
XChangeProperty(g_x11_dpy, g_x11_win, net_wm_opacity, cardinal,
|
||||
32, PropModeReplace, (const unsigned char*)&opacity, 1);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -101,9 +107,11 @@ static bool x11_display_server_set_window_decorations(void *data, bool on)
|
||||
{
|
||||
dispserv_x11_t *serv = (dispserv_x11_t*)data;
|
||||
|
||||
serv->decorations = on;
|
||||
if (serv)
|
||||
serv->decorations = on;
|
||||
|
||||
/* menu_setting performs a reinit instead to properly apply decoration changes */
|
||||
/* menu_setting performs a reinit instead to properly apply
|
||||
* decoration changes */
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -131,7 +139,7 @@ static bool x11_display_server_set_resolution(void *data,
|
||||
/* set core refresh from hz */
|
||||
video_monitor_set_refresh_rate(hz);
|
||||
|
||||
/* following code is the mode line genorator */
|
||||
/* following code is the mode line generator */
|
||||
|
||||
hsp = width * 1.140;
|
||||
hfp = width * 1.055;
|
||||
@ -144,9 +152,7 @@ static bool x11_display_server_set_resolution(void *data,
|
||||
roundw = roundf((float)pwidth / (float)height * 100) / 100;
|
||||
|
||||
if (height > width)
|
||||
{
|
||||
roundw = roundf((float)height / (float)width * 100) / 100;
|
||||
}
|
||||
|
||||
if (roundw > 1.35)
|
||||
roundw = 1.25;
|
||||
@ -158,111 +164,88 @@ static bool x11_display_server_set_resolution(void *data,
|
||||
hmax = hbp;
|
||||
|
||||
if (height < 241)
|
||||
{
|
||||
vmax = 261;
|
||||
}
|
||||
if (height < 241 && hz > 56 && hz < 58)
|
||||
{
|
||||
vmax = 280;
|
||||
}
|
||||
if (height < 241 && hz < 55)
|
||||
{
|
||||
vmax = 313;
|
||||
}
|
||||
if (height > 250 && height < 260 && hz > 54)
|
||||
{
|
||||
vmax = 296;
|
||||
}
|
||||
if (height > 250 && height < 260 && hz > 52 && hz < 54)
|
||||
{
|
||||
vmax = 285;
|
||||
}
|
||||
if (height > 250 && height < 260 && hz < 52)
|
||||
{
|
||||
vmax = 313;
|
||||
}
|
||||
if (height > 260 && height < 300)
|
||||
{
|
||||
vmax = 318;
|
||||
}
|
||||
|
||||
if (height > 400 && hz > 56)
|
||||
{
|
||||
vmax = 533;
|
||||
}
|
||||
if (height > 520 && hz < 57)
|
||||
{
|
||||
vmax = 580;
|
||||
}
|
||||
|
||||
if (height > 300 && hz < 56)
|
||||
{
|
||||
vmax = 615;
|
||||
}
|
||||
if (height > 500 && hz < 56)
|
||||
{
|
||||
vmax = 624;
|
||||
}
|
||||
if (height > 300)
|
||||
{
|
||||
pdefault = pdefault * 2;
|
||||
}
|
||||
|
||||
vfp = height + ((vmax - height) / 2) - pdefault;
|
||||
|
||||
if (height < 300)
|
||||
{
|
||||
vsp = vfp + 3; /* needs to me 3 for progressive */
|
||||
}
|
||||
vsp = vfp + 3; /* needs to be 3 for progressive */
|
||||
if (height > 300)
|
||||
{
|
||||
vsp = vfp + 6; /* needs to me 6 for interlaced */
|
||||
}
|
||||
vsp = vfp + 6; /* needs to be 6 for interlaced */
|
||||
|
||||
vbp = vmax;
|
||||
|
||||
if (height < 300)
|
||||
{
|
||||
pixel_clock = (hmax * vmax * hz) / 1000000;
|
||||
}
|
||||
|
||||
if (height > 300)
|
||||
{
|
||||
pixel_clock = ((hmax * vmax * hz) / 1000000) / 2;
|
||||
}
|
||||
/* above code is the modeline genorator */
|
||||
/* above code is the modeline generator */
|
||||
|
||||
/* create interlaced newmode from modline variables */
|
||||
if (height < 300)
|
||||
{
|
||||
snprintf(xrandr, sizeof(xrandr), "xrandr --newmode \"%dx%d_%0.2f\" %lf %d %d %d %d %d %d %d %d -hsync -vsync", width, height, hz, pixel_clock, width, hfp, hsp, hbp, height, vfp, vsp, vbp);
|
||||
snprintf(xrandr, sizeof(xrandr), "xrandr --newmode \"%dx%d_%0.2f\" %lf %d %d %d %d %d %d %d %d -hsync -vsync", width, height, hz, pixel_clock,
|
||||
width, hfp, hsp, hbp, height, vfp, vsp, vbp);
|
||||
system(xrandr);
|
||||
}
|
||||
/* create interlaced newmode from modline variables */
|
||||
if (height > 300)
|
||||
{
|
||||
snprintf(xrandr, sizeof(xrandr), "xrandr --newmode \"%dx%d_%0.2f\" %lf %d %d %d %d %d %d %d %d interlace -hsync -vsync", width, height, hz, pixel_clock, width, hfp, hsp, hbp, height, vfp, vsp, vbp);
|
||||
snprintf(xrandr, sizeof(xrandr), "xrandr --newmode \"%dx%d_%0.2f\" %lf %d %d %d %d %d %d %d %d interlace -hsync -vsync", width, height, hz, pixel_clock,
|
||||
width, hfp, hsp, hbp, height, vfp, vsp, vbp);
|
||||
system(xrandr);
|
||||
}
|
||||
|
||||
/* variable for new mode */
|
||||
snprintf(new_mode, sizeof(new_mode), "%dx%d_%0.2f", width, height, hz);
|
||||
|
||||
/* need to run loops for DVI0 - DVI-2 and VGA0 - VGA-2 outputs to add and delete modes */
|
||||
/* need to run loops for DVI0 - DVI-2 and VGA0 - VGA-2 outputs to
|
||||
* add and delete modes */
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
snprintf(output, sizeof(output), "xrandr --addmode %s%d %s", "DVI", i, new_mode);
|
||||
snprintf(output, sizeof(output), "xrandr --addmode %s%d %s", "DVI", i,
|
||||
new_mode);
|
||||
system(output);
|
||||
snprintf(output, sizeof(output), "xrandr --delmode %s%d %s", "DVI", i, old_mode);
|
||||
snprintf(output, sizeof(output), "xrandr --delmode %s%d %s", "DVI", i,
|
||||
old_mode);
|
||||
system(output);
|
||||
}
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
snprintf(output, sizeof(output), "xrandr --addmode %s-%d %s", "DVI", i, new_mode);
|
||||
snprintf(output, sizeof(output), "xrandr --addmode %s-%d %s", "DVI", i,
|
||||
new_mode);
|
||||
system(output);
|
||||
snprintf(output, sizeof(output), "xrandr --delmode %s-%d %s", "DVI", i, old_mode);
|
||||
snprintf(output, sizeof(output), "xrandr --delmode %s-%d %s", "DVI", i,
|
||||
old_mode);
|
||||
system(output);
|
||||
}
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
snprintf(output, sizeof(output), "xrandr --addmode %s%d %s", "VGA", i, new_mode);
|
||||
@ -270,6 +253,7 @@ static bool x11_display_server_set_resolution(void *data,
|
||||
snprintf(output, sizeof(output), "xrandr --delmode %s%d %s", "VGA", i, old_mode);
|
||||
system(output);
|
||||
}
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
snprintf(output, sizeof(output), "xrandr --addmode %s-%d %s", "VGA", i, new_mode);
|
||||
@ -285,18 +269,20 @@ static bool x11_display_server_set_resolution(void *data,
|
||||
snprintf(output, sizeof(output), "xrandr --rmmode %s", old_mode);
|
||||
system(output);
|
||||
|
||||
system("xdotool windowactivate $(xdotool search --class RetroArch)"); /* needs xdotool installed. needed to recapture window. */
|
||||
/* needs xdotool installed. needed to recapture window. */
|
||||
system("xdotool windowactivate $(xdotool search --class RetroArch)");
|
||||
|
||||
/* variable for old mode */
|
||||
snprintf(old_mode, sizeof(old_mode), "%s", new_mode);
|
||||
|
||||
system("xdotool windowactivate $(xdotool search --class RetroArch)"); /* needs xdotool installed. needed to recapture window. */
|
||||
/* needs xdotool installed. needed to recapture window. */
|
||||
system("xdotool windowactivate $(xdotool search --class RetroArch)");
|
||||
/* Second run needed as some times it runs to fast to capture first time */
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
const char *x11_display_server_get_output_options(void)
|
||||
const char *x11_display_server_get_output_options(void *data)
|
||||
{
|
||||
/* TODO/FIXME - hardcoded for now; list should be built up dynamically later */
|
||||
return "HDMI-0|HDMI-1|HDMI-2|HDMI-3|DVI-0|DVI-1|DVI-2|DVI-3|VGA-0|VGA-1|VGA-2|VGA-3|Config";
|
||||
@ -306,9 +292,10 @@ const video_display_server_t dispserv_x11 = {
|
||||
x11_display_server_init,
|
||||
x11_display_server_destroy,
|
||||
x11_display_server_set_window_opacity,
|
||||
NULL,
|
||||
NULL, /* set_window_progress */
|
||||
x11_display_server_set_window_decorations,
|
||||
x11_display_server_set_resolution,
|
||||
NULL, /* get_resolution_list */
|
||||
x11_display_server_get_output_options,
|
||||
"x11"
|
||||
};
|
||||
|
@ -51,7 +51,7 @@
|
||||
#include "../../input/input_driver.h"
|
||||
#include "../../input/input_keymaps.h"
|
||||
|
||||
// Generated from xdg-shell.xml
|
||||
/* Generated from xdg-shell.xml */
|
||||
#include "../common/wayland/xdg-shell.h"
|
||||
|
||||
|
||||
@ -350,7 +350,7 @@ static const struct wl_pointer_listener pointer_listener = {
|
||||
pointer_handle_axis,
|
||||
};
|
||||
|
||||
// TODO: implement check for resize
|
||||
/* TODO: implement check for resize */
|
||||
|
||||
static void touch_handle_down(void *data,
|
||||
struct wl_touch *wl_touch,
|
||||
@ -574,14 +574,12 @@ static void handle_toplevel_config(void *data, struct xdg_toplevel *toplevel,
|
||||
{
|
||||
gfx_ctx_wayland_data_t *wl = (gfx_ctx_wayland_data_t*)data;
|
||||
|
||||
// TODO: implement resizing
|
||||
/* TODO: implement resizing */
|
||||
|
||||
wl->configured = false;
|
||||
}
|
||||
|
||||
// TODO: implement xdg_toplevel close
|
||||
|
||||
|
||||
/* TODO: implement xdg_toplevel close */
|
||||
static const struct xdg_toplevel_listener xdg_toplevel_listener = {
|
||||
handle_toplevel_config,
|
||||
};
|
||||
@ -1310,14 +1308,14 @@ static bool gfx_ctx_wl_set_video_mode(void *data,
|
||||
xdg_toplevel_set_app_id (wl->xdg_toplevel, "RetroArch");
|
||||
xdg_toplevel_set_title (wl->xdg_toplevel, "RetroArch");
|
||||
|
||||
// Waiting for xdg_toplevel to be configured before starting to draw
|
||||
/* Waiting for xdg_toplevel to be configured before starting to draw */
|
||||
wl_surface_commit(wl->surface);
|
||||
wl->configured = true;
|
||||
|
||||
while (wl->configured)
|
||||
wl_display_dispatch(wl->input.dpy);
|
||||
|
||||
// Waiting for the "initial" set of globals to appear
|
||||
/* Waiting for the "initial" set of globals to appear */
|
||||
wl_display_roundtrip(wl->input.dpy);
|
||||
xdg_wm_base_add_listener(wl->shell, &xdg_shell_listener, NULL);
|
||||
|
||||
|
@ -480,11 +480,11 @@ error:
|
||||
return false;
|
||||
}
|
||||
|
||||
static void gl_glsl_strip_parameter_pragmas(char *source)
|
||||
static void gl_glsl_strip_parameter_pragmas(char *source, const char *str)
|
||||
{
|
||||
/* #pragma parameter lines tend to have " characters in them,
|
||||
* which is not legal GLSL. */
|
||||
char *s = strstr(source, "#pragma parameter");
|
||||
char *s = strstr(source, str);
|
||||
|
||||
while (s)
|
||||
{
|
||||
@ -492,7 +492,7 @@ static void gl_glsl_strip_parameter_pragmas(char *source)
|
||||
* so we can just replace the entire line with spaces. */
|
||||
while (*s != '\0' && *s != '\n')
|
||||
*s++ = ' ';
|
||||
s = strstr(s, "#pragma parameter");
|
||||
s = strstr(s, str);
|
||||
}
|
||||
}
|
||||
|
||||
@ -506,7 +506,7 @@ static bool gl_glsl_load_source_path(struct video_shader_pass *pass,
|
||||
if (nitems <= 0 || len <= 0)
|
||||
return false;
|
||||
|
||||
gl_glsl_strip_parameter_pragmas(pass->source.string.vertex);
|
||||
gl_glsl_strip_parameter_pragmas(pass->source.string.vertex, "#pragma parameter");
|
||||
pass->source.string.fragment = strdup(pass->source.string.vertex);
|
||||
return pass->source.string.fragment && pass->source.string.vertex;
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ static void switch_res_crt(unsigned width, unsigned height)
|
||||
{
|
||||
if (height > 100)
|
||||
{
|
||||
video_display_server_switch_resolution(width, height,
|
||||
video_display_server_set_resolution(width, height,
|
||||
ra_set_core_hz, ra_core_hz, crt_center_adjust);
|
||||
video_driver_apply_state_changes();
|
||||
}
|
||||
|
@ -90,14 +90,21 @@ bool video_display_server_set_window_decorations(bool on)
|
||||
}
|
||||
|
||||
|
||||
bool video_display_server_switch_resolution(unsigned width, unsigned height,
|
||||
bool video_display_server_set_resolution(unsigned width, unsigned height,
|
||||
int int_hz, float hz, int center)
|
||||
{
|
||||
if (current_display_server && current_display_server->switch_resolution)
|
||||
return current_display_server->switch_resolution(current_display_server_data, width, height, int_hz, hz, center);
|
||||
if (current_display_server && current_display_server->set_resolution)
|
||||
return current_display_server->set_resolution(current_display_server_data, width, height, int_hz, hz, center);
|
||||
return false;
|
||||
}
|
||||
|
||||
void *video_display_server_get_resolution_list(unsigned *size)
|
||||
{
|
||||
if (current_display_server && current_display_server->get_resolution_list)
|
||||
return current_display_server->get_resolution_list(current_display_server_data, size);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const char *video_display_server_get_output_options(void)
|
||||
{
|
||||
if (current_display_server && current_display_server->get_output_options)
|
||||
|
@ -23,6 +23,16 @@
|
||||
|
||||
RETRO_BEGIN_DECLS
|
||||
|
||||
typedef struct video_display_config
|
||||
{
|
||||
unsigned width;
|
||||
unsigned height;
|
||||
unsigned bpp;
|
||||
unsigned refreshrate;
|
||||
unsigned idx;
|
||||
bool current;
|
||||
} video_display_config_t;
|
||||
|
||||
typedef struct video_display_server
|
||||
{
|
||||
void *(*init)(void);
|
||||
@ -30,8 +40,10 @@ typedef struct video_display_server
|
||||
bool (*set_window_opacity)(void *data, unsigned opacity);
|
||||
bool (*set_window_progress)(void *data, int progress, bool finished);
|
||||
bool (*set_window_decorations)(void *data, bool on);
|
||||
bool (*switch_resolution)(void *data, unsigned width,
|
||||
bool (*set_resolution)(void *data, unsigned width,
|
||||
unsigned height, int int_hz, float hz, int center);
|
||||
void *(*get_resolution_list)(void *data,
|
||||
unsigned *size);
|
||||
const char *(*get_output_options)(void *data);
|
||||
const char *ident;
|
||||
} video_display_server_t;
|
||||
@ -46,10 +58,12 @@ bool video_display_server_set_window_progress(int progress, bool finished);
|
||||
|
||||
bool video_display_server_set_window_decorations(bool on);
|
||||
|
||||
bool video_display_server_switch_resolution(
|
||||
bool video_display_server_set_resolution(
|
||||
unsigned width, unsigned height,
|
||||
int int_hz, float hz, int center);
|
||||
|
||||
void *video_display_server_get_resolution_list(unsigned *size);
|
||||
|
||||
const char *video_display_server_get_output_options(void);
|
||||
|
||||
const char *video_display_server_get_ident(void);
|
||||
|
@ -985,24 +985,16 @@ static bool video_driver_init_internal(bool *video_is_threaded)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (settings->uints.video_window_x || settings->uints.video_window_y)
|
||||
if (settings->bools.video_force_aspect)
|
||||
{
|
||||
width = settings->uints.video_window_x;
|
||||
height = settings->uints.video_window_y;
|
||||
/* Do rounding here to simplify integer scale correctness. */
|
||||
unsigned base_width =
|
||||
roundf(geom->base_height * video_driver_get_aspect_ratio());
|
||||
width = roundf(base_width * settings->floats.video_scale);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (settings->bools.video_force_aspect)
|
||||
{
|
||||
/* Do rounding here to simplify integer scale correctness. */
|
||||
unsigned base_width =
|
||||
roundf(geom->base_height * video_driver_get_aspect_ratio());
|
||||
width = roundf(base_width * settings->floats.video_scale);
|
||||
}
|
||||
else
|
||||
width = roundf(geom->base_width * settings->floats.video_scale);
|
||||
height = roundf(geom->base_height * settings->floats.video_scale);
|
||||
}
|
||||
width = roundf(geom->base_width * settings->floats.video_scale);
|
||||
height = roundf(geom->base_height * settings->floats.video_scale);
|
||||
}
|
||||
|
||||
if (width && height)
|
||||
@ -1491,15 +1483,6 @@ void video_driver_menu_settings(void **list_data, void *list_info_data,
|
||||
(void)subgroup_info;
|
||||
(void)global;
|
||||
|
||||
#if defined(GEKKO) || defined(__CELLOS_LV2__)
|
||||
CONFIG_ACTION(
|
||||
list, list_info,
|
||||
MENU_ENUM_LABEL_SCREEN_RESOLUTION,
|
||||
MENU_ENUM_LABEL_VALUE_SCREEN_RESOLUTION,
|
||||
group_info,
|
||||
subgroup_info,
|
||||
parent_group);
|
||||
#endif
|
||||
#if defined(__CELLOS_LV2__)
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
|
@ -1275,7 +1275,12 @@ MENU
|
||||
#include "../menu/drivers/xmb.c"
|
||||
#endif
|
||||
#ifdef HAVE_OZONE
|
||||
#include "../menu/drivers/ozone.c"
|
||||
#include "../menu/drivers/ozone/ozone.c"
|
||||
#include "../menu/drivers/ozone/ozone_display.c"
|
||||
#include "../menu/drivers/ozone/ozone_entries.c"
|
||||
#include "../menu/drivers/ozone/ozone_sidebar.c"
|
||||
#include "../menu/drivers/ozone/ozone_texture.c"
|
||||
#include "../menu/drivers/ozone/ozone_theme.c"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_STRIPES
|
||||
|
@ -1057,11 +1057,21 @@ static void handle_hotplug(android_input_t *android,
|
||||
* This device is composed of two hid devices
|
||||
* We make it look like one device
|
||||
*/
|
||||
else if(strstr(device_model, "R800") &&
|
||||
(
|
||||
strstr(device_name, "keypad-game-zeus") ||
|
||||
strstr(device_name, "keypad-zeus")
|
||||
)
|
||||
else if(
|
||||
(
|
||||
strstr(device_model, "R800x") ||
|
||||
strstr(device_model, "R800at") ||
|
||||
strstr(device_model, "R800i") ||
|
||||
strstr(device_model, "R800a") ||
|
||||
strstr(device_model, "R800") ||
|
||||
strstr(device_model, "Xperia Play") ||
|
||||
strstr(device_model, "Play") ||
|
||||
strstr(device_model, "SO-01D")
|
||||
) && (
|
||||
strstr(device_name, "keypad-game-zeus") ||
|
||||
strstr(device_name, "keypad-zeus") ||
|
||||
strstr(device_name, "Android Gamepad")
|
||||
)
|
||||
)
|
||||
{
|
||||
/* only use the hack if the device is one of the built-in devices */
|
||||
|
@ -2669,9 +2669,9 @@ MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_WINDOW_WIDTH,
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_WINDOW_HEIGHT,
|
||||
"Set the custom height size for the display window. Leaving it at 0 will attempt to scale the window as large as possible.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_X,
|
||||
"Set the custom width size for the non-windowed fullscreen mode. Leaving it at 0 will use the desktop resolution.")
|
||||
"Set the custom width size for the non-windowed fullscreen mode. Leaving it unset will use the desktop resolution.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_Y,
|
||||
"Set the custom height size for the non-windowed fullscreen mode. Leaving it at 0 will use the desktop resolution")
|
||||
"Set the custom height size for the non-windowed fullscreen mode. Leaving it unset will use the desktop resolution.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_X,
|
||||
"Specify custom X axis position for onscreen text.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_Y,
|
||||
@ -3722,3 +3722,5 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
|
||||
"No favorites available."
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember Window Position and Size")
|
||||
|
@ -210,7 +210,7 @@ MSG_HASH(
|
||||
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_ACHIEVEMENT_LIST_HARDCORE,
|
||||
"成就列表(硬核)" /*FIXME:"Achievement List (Hardcore)"*/
|
||||
"成就列表(硬核模式)"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_ADD_CONTENT_LIST,
|
||||
@ -650,9 +650,11 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_ENTRY_HOVER_COLOR,
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_ENTRY_NORMAL_COLOR,
|
||||
"菜单项正常颜色")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_FALSE,
|
||||
"假")
|
||||
"否")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_FASTFORWARD_RATIO,
|
||||
"最大运行速度")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_FAVORITES_TAB,
|
||||
"收藏夹")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_FPS_SHOW,
|
||||
"显示帧率")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_FRAME_THROTTLE_ENABLE,
|
||||
@ -1707,7 +1709,7 @@ MSG_HASH(
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_TITLE_COLOR,
|
||||
"菜单标题颜色")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_TRUE,
|
||||
"真")
|
||||
"是")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_UI_COMPANION_ENABLE,
|
||||
"UI Companion Enable")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_UI_COMPANION_START_ON_BOOT,
|
||||
@ -4613,7 +4615,7 @@ MSG_HASH(
|
||||
"Output Display ID")
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_QUICK_MENU_START_RECORDING,
|
||||
"Start Recording"
|
||||
"开始录制"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_QUICK_MENU_START_RECORDING,
|
||||
@ -4621,7 +4623,7 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_QUICK_MENU_STOP_RECORDING,
|
||||
"Stop Recording"
|
||||
"停止录制"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_QUICK_MENU_STOP_RECORDING,
|
||||
@ -4676,11 +4678,11 @@ MSG_HASH(
|
||||
"YouTube"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_TWITCH_STREAM_KEY,
|
||||
"Twitch Stream Key")
|
||||
"Twitch 直播密钥")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_YOUTUBE_STREAM_KEY,
|
||||
"YouTube Stream Key")
|
||||
"YouTube 直播密钥")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_STREAMING_MODE,
|
||||
"Streaming Mode")
|
||||
"直播模式")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_STREAMING_TITLE,
|
||||
"直播标题")
|
||||
MSG_HASH(
|
||||
@ -4700,46 +4702,52 @@ MSG_HASH(
|
||||
"OK"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_OZONE_MENU_COLOR_THEME,
|
||||
"菜单颜色主题")
|
||||
"菜单主题颜色")
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE,
|
||||
"Basic White"
|
||||
"白色"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK,
|
||||
"Basic Black"
|
||||
"黑色"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME,
|
||||
"Select a different color theme."
|
||||
"选择不同的主题颜色。"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME,
|
||||
"Use preferred system color theme")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME,
|
||||
"Use your operating system's color theme (if any) - overrides theme settings.")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_LOWEST,
|
||||
"Lowest")
|
||||
"最低")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_LOWER,
|
||||
"Lower")
|
||||
"较低")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_NORMAL,
|
||||
"Normal")
|
||||
"一般")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_HIGHER,
|
||||
"Higher")
|
||||
"较高")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_HIGHEST,
|
||||
"Highest")
|
||||
"最高")
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_MUSIC_AVAILABLE,
|
||||
"No music available."
|
||||
"没有音乐。"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_VIDEOS_AVAILABLE,
|
||||
"No videos available."
|
||||
"没有视频。"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_IMAGES_AVAILABLE,
|
||||
"No images available."
|
||||
"没有图片。"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
|
||||
"No favorites available."
|
||||
"没有收藏。"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_MISSING_ASSETS,
|
||||
"Warning: Missing assets, use the Online Updater if available"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember Window Position and Size")
|
||||
|
@ -2499,9 +2499,9 @@ MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_WINDOW_WIDTH,
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_WINDOW_HEIGHT,
|
||||
"Set the custom height size for the display window. Leaving it at 0 will attempt to scale the window as large as possible.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_X,
|
||||
"Set the custom width size for the non-windowed fullscreen mode. Leaving it at 0 will use the desktop resolution.")
|
||||
"Set the custom width size for the non-windowed fullscreen mode. Leaving it unset will use the desktop resolution.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_Y,
|
||||
"Set the custom height size for the non-windowed fullscreen mode. Leaving it at 0 will use the desktop resolution")
|
||||
"Set the custom height size for the non-windowed fullscreen mode. Leaving it unset will use the desktop resolution.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_X,
|
||||
"Specify custom X axis position for onscreen text.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_Y,
|
||||
@ -3500,3 +3500,5 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
|
||||
"No favorites available."
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember Window Position and Size")
|
||||
|
@ -3636,3 +3636,5 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
|
||||
"No favorites available."
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember Window Position and Size")
|
||||
|
@ -4862,11 +4862,11 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_X,
|
||||
"Set the custom width size for the non-windowed fullscreen mode. Leaving it at 0 will use the desktop resolution."
|
||||
"Set the custom width size for the non-windowed fullscreen mode. Leaving it unset will use the desktop resolution."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_Y,
|
||||
"Set the custom height size for the non-windowed fullscreen mode. Leaving it at 0 will use the desktop resolution"
|
||||
"Set the custom height size for the non-windowed fullscreen mode. Leaving it unset will use the desktop resolution."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_X,
|
||||
@ -7730,3 +7730,5 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
|
||||
"No favorites available."
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember Window Position and Size")
|
||||
|
@ -2372,9 +2372,9 @@ MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_WINDOW_WIDTH,
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_WINDOW_HEIGHT,
|
||||
"Set the custom height size for the display window. Leaving it at 0 will attempt to scale the window as large as possible.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_X,
|
||||
"Set the custom width size for the non-windowed fullscreen mode. Leaving it at 0 will use the desktop resolution.")
|
||||
"Set the custom width size for the non-windowed fullscreen mode. Leaving it unset will use the desktop resolution.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_Y,
|
||||
"Set the custom height size for the non-windowed fullscreen mode. Leaving it at 0 will use the desktop resolution")
|
||||
"Set the custom height size for the non-windowed fullscreen mode. Leaving it unset will use the desktop resolution.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_X,
|
||||
"Specify custom X axis position for onscreen text.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_Y,
|
||||
@ -3375,3 +3375,5 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
|
||||
"No favorites available."
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember Window Position and Size")
|
||||
|
@ -1,3 +1,29 @@
|
||||
#ifdef HAVE_LAKKA_SWITCH
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_SWITCH_GPU_PROFILE,
|
||||
"GPU Overclock"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_SWITCH_GPU_PROFILE,
|
||||
"Acelera el procesador de video"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_SWITCH_BACKLIGHT_CONTROL,
|
||||
"Brillo de pantalla"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_SWITCH_BACKLIGHT_CONTROL,
|
||||
"Ajusta el brillo de la pantalla"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_SWITCH_CPU_PROFILE,
|
||||
"CPU Overclock"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_SWITCH_CPU_PROFILE,
|
||||
"Acelera el procesador"
|
||||
)
|
||||
#endif
|
||||
MSG_HASH(
|
||||
MSG_COMPILER,
|
||||
"Compilador"
|
||||
@ -8,7 +34,7 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_NATIVE,
|
||||
"Native")
|
||||
"Nativo")
|
||||
MSG_HASH(
|
||||
MSG_DEVICE_DISCONNECTED_FROM_PORT,
|
||||
"Dispositivo desconectado del puerto"
|
||||
@ -1489,6 +1515,10 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_LANG_ARABIC,
|
||||
"Árabe"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_LANG_GREEK,
|
||||
"Griego"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_LEFT_ANALOG,
|
||||
"Analógico izquierdo"
|
||||
@ -2880,6 +2910,14 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_ENABLE,
|
||||
"Mostrar fecha y hora"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE,
|
||||
"Estilo de fecha y hora"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_TIMEDATE_STYLE,
|
||||
"Cambia la forma en que se muestra la fecha y hora"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TITLE_COLOR,
|
||||
"Color de títulos del menú"
|
||||
@ -4930,6 +4968,19 @@ MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CHEAT_APPLY_AFTER_LOAD,
|
||||
"Auto-aplicar los trucos después que el juego cargue"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CHEAT_REPEAT_COUNT,
|
||||
"La cantidad de veces que el truco será aplicado.\n"
|
||||
"Usar junto a las otras dos optionces de iteración para afectar regiones grandes de memoria"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CHEAT_REPEAT_ADD_TO_ADDRESS,
|
||||
"Después de cada 'Número de iteraciones' la dirección de memoria será incrementada este número multiplicado por 'Tamaño de búsqueda de memoria'"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CHEAT_REPEAT_ADD_TO_VALUE,
|
||||
"Después de cada 'Número de iteraciones' el Valor será incrementado esta cantidad"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_REWIND_GRANULARITY,
|
||||
"Rebobinar un determinado número de frames a la vez, para aumentar la velocidad del rebobinado"
|
||||
@ -6378,7 +6429,7 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_THEME_SYSTEM_DEFAULT,
|
||||
"<Por defeco>"
|
||||
"<Por defecto>"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_THEME_DARK,
|
||||
@ -6837,6 +6888,18 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_SECONDARY_DURATION,
|
||||
"Duración (ms) de la vibración secundaria"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEAT_REPEAT_COUNT,
|
||||
"Número de iteraciones"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEAT_REPEAT_ADD_TO_VALUE,
|
||||
"Incrementar Valor cada iteración"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEAT_REPEAT_ADD_TO_ADDRESS,
|
||||
"Incrementar Dirección cada iteración"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEAT_ADD_NEW_AFTER,
|
||||
"Agregar nuevo truco después de este"
|
||||
@ -7607,15 +7670,15 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_SPLIT_JOYCON,
|
||||
"Split Joy-Con"
|
||||
"Joy-Con separados"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_RESET_TO_DEFAULT_CONFIG,
|
||||
"Reset To Defaults"
|
||||
"Restablecer configuraciones"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_RESET_TO_DEFAULT_CONFIG,
|
||||
"Reset the current configuration to default values."
|
||||
"Cambia la configuración acutal a los valores por defecto"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_BASIC_MENU_CONTROLS_OK,
|
||||
@ -7627,43 +7690,63 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE,
|
||||
"Basic White"
|
||||
"Blanco Básico"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK,
|
||||
"Basic Black"
|
||||
"Negro Básico"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME,
|
||||
"Select a different color theme."
|
||||
"Seleccione un color diferente"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME,
|
||||
"Usar los colores del sistema"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME,
|
||||
"Preferir los colores del sistema operativo si están disponibles"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RESAMPLER_QUALITY_LOWEST,
|
||||
"Muy Baja"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RESAMPLER_QUALITY_LOWER,
|
||||
"Baja"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RESAMPLER_QUALITY_NORMAL,
|
||||
"Normal"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RESAMPLER_QUALITY_HIGHER,
|
||||
"Alta"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RESAMPLER_QUALITY_HIGHEST,
|
||||
"Ultra"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME,
|
||||
"Use preferred system color theme")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME,
|
||||
"Use your operating system's color theme (if any) - overrides theme settings.")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_LOWEST,
|
||||
"Lowest")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_LOWER,
|
||||
"Lower")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_NORMAL,
|
||||
"Normal")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_HIGHER,
|
||||
"Higher")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_HIGHEST,
|
||||
"Highest")
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_MUSIC_AVAILABLE,
|
||||
"No music available."
|
||||
"No hay música disponibles"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_VIDEOS_AVAILABLE,
|
||||
"No videos available."
|
||||
"No hay videos disponibles"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_IMAGES_AVAILABLE,
|
||||
"No images available."
|
||||
"No hay imágenes disponibles"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
|
||||
"No favorites available."
|
||||
"No hay favoritos disponibles"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_MISSING_ASSETS,
|
||||
"ADVERTENCIA: Faltan recursos, use el Actualizador si está disponible"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember Window Position and Size")
|
||||
|
@ -3534,3 +3534,5 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
|
||||
"No favorites available."
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember Window Position and Size")
|
||||
|
@ -3594,3 +3594,5 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
|
||||
"Nessun preferito disponibile."
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember Window Position and Size")
|
||||
|
@ -4043,3 +4043,5 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
|
||||
"No favorites available."
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember Window Position and Size")
|
||||
|
@ -3495,3 +3495,5 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
|
||||
"No favorites available."
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember Window Position and Size")
|
||||
|
@ -259,6 +259,8 @@ MSG_HASH(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST,
|
||||
"deferred_dropdown_box_list")
|
||||
MSG_HASH(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_SPECIAL,
|
||||
"deferred_dropdown_box_list_special")
|
||||
MSG_HASH(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_RESOLUTION,
|
||||
"deferred_dropdown_box_list_resolution")
|
||||
MSG_HASH(MENU_ENUM_LABEL_DEFERRED_CONFIGURATIONS_LIST,
|
||||
"deferred_configurations_list")
|
||||
MSG_HASH(MENU_ENUM_LABEL_DEFERRED_PLAYLIST_LIST,
|
||||
@ -1565,6 +1567,8 @@ MSG_HASH(MENU_ENUM_LABEL_INPUT_DRIVER_LINUXRAW,
|
||||
"linuxraw")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VIDEO_WINDOW_SHOW_DECORATIONS,
|
||||
"video_window_show_decorations")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"video_window_save_position")
|
||||
MSG_HASH(MENU_ENUM_LABEL_MENU_RGUI_BORDER_FILLER_ENABLE,
|
||||
"menu_rgui_border_filler_enable")
|
||||
MSG_HASH(MENU_ENUM_LABEL_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE,
|
||||
|
@ -2388,9 +2388,9 @@ MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_WINDOW_WIDTH,
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_WINDOW_HEIGHT,
|
||||
"Set the custom height size for the display window. Leaving it at 0 will attempt to scale the window as large as possible.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_X,
|
||||
"Set the custom width size for the non-windowed fullscreen mode. Leaving it at 0 will use the desktop resolution.")
|
||||
"Set the custom width size for the non-windowed fullscreen mode. Leaving it unset will use the desktop resolution.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_Y,
|
||||
"Set the custom height size for the non-windowed fullscreen mode. Leaving it at 0 will use the desktop resolution")
|
||||
"Set the custom height size for the non-windowed fullscreen mode. Leaving it unset will use the desktop resolution.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_X,
|
||||
"Specify custom X axis position for onscreen text.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_Y,
|
||||
@ -3381,3 +3381,5 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
|
||||
"Geen favorieten beschikbaar."
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember Window Position and Size")
|
||||
|
@ -3797,3 +3797,5 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
|
||||
"Brak ulubionych."
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember Window Position and Size")
|
||||
|
@ -261,7 +261,7 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CONFIGURATIONS_LIST,
|
||||
"Configurações"
|
||||
"Arquivo de Configuração"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_ADD_TAB,
|
||||
@ -2910,45 +2910,45 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_ENABLE,
|
||||
"Exibir data e hora"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE,
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE,
|
||||
"Estilo da data / hora"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_TIMEDATE_STYLE,
|
||||
"Altera o estilo da data atual ou como a hora é mostrada dentro do menu."
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_TIMEDATE_STYLE,
|
||||
"Altera o estilo da data atual ou como a hora é mostrada dentro do menu."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HMS,
|
||||
"YYYY-MM-DD HH:MM:SS"
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HMS,
|
||||
"YYYY-MM-DD HH:MM:SS"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HM,
|
||||
"YYYY-MM-DD HH:MM"
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HM,
|
||||
"YYYY-MM-DD HH:MM"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MDYYYY,
|
||||
"MM-DD-YYYY HH:MM"
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MDYYYY,
|
||||
"MM-DD-YYYY HH:MM"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HMS,
|
||||
"HH:MM:SS"
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HMS,
|
||||
"HH:MM:SS"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HM,
|
||||
"HH:MM"
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HM,
|
||||
"HH:MM"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_DM_HM,
|
||||
"DD/MM HH:MM"
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_DM_HM,
|
||||
"DD/MM HH:MM"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MD_HM,
|
||||
"MM/DD HH:MM"
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MD_HM,
|
||||
"MM/DD HH:MM"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_AM_PM,
|
||||
"HH:MM:SS (AM/PM)"
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_AM_PM,
|
||||
"HH:MM:SS (AM/PM)"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TITLE_COLOR,
|
||||
@ -5002,7 +5002,8 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CHEAT_REPEAT_COUNT,
|
||||
"O número de vezes que a trapaça será aplicada. Use com as outras duas opções de iteração para afetar grandes áreas da memória."
|
||||
"O número de vezes que a trapaça será aplicada.\n"
|
||||
"Use com as outras duas opções de iteração para afetar grandes áreas da memória."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CHEAT_REPEAT_ADD_TO_ADDRESS,
|
||||
@ -6052,11 +6053,11 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_MENU_SHOW_CONFIGURATIONS,
|
||||
"Exibir Configurações"
|
||||
"Exibir Arquivo de Configuração"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_MENU_SHOW_CONFIGURATIONS,
|
||||
"Exibir/ocultar a opção 'Configurações'."
|
||||
"Exibir/ocultar a opção 'Arquivo de Configuração'."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_MENU_SHOW_HELP,
|
||||
@ -7721,43 +7722,63 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_WHITE,
|
||||
"Basic White"
|
||||
"Branco Básico"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_OZONE_COLOR_THEME_BASIC_BLACK,
|
||||
"Basic Black"
|
||||
"Preto Básico"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME,
|
||||
"Select a different color theme."
|
||||
"Selecione um tema de cor diferente"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME,
|
||||
"Use a cor preferida do tema do sistema"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME,
|
||||
"Usar a cor do tema do seu sistema operacional (se houver) - substitui as configurações do tema."
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RESAMPLER_QUALITY_LOWEST,
|
||||
"Muito baixa"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RESAMPLER_QUALITY_LOWER,
|
||||
"Baixa"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RESAMPLER_QUALITY_NORMAL,
|
||||
"Normal"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RESAMPLER_QUALITY_HIGHER,
|
||||
"Alta"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RESAMPLER_QUALITY_HIGHEST,
|
||||
"Muito alta"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME,
|
||||
"Use preferred system color theme")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME,
|
||||
"Use your operating system's color theme (if any) - overrides theme settings.")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_LOWEST,
|
||||
"Lowest")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_LOWER,
|
||||
"Lower")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_NORMAL,
|
||||
"Normal")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_HIGHER,
|
||||
"Higher")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_HIGHEST,
|
||||
"Highest")
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_MUSIC_AVAILABLE,
|
||||
"No music available."
|
||||
"Nenhuma música disponível."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_VIDEOS_AVAILABLE,
|
||||
"No videos available."
|
||||
"Nenhum vídeo disponível."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_IMAGES_AVAILABLE,
|
||||
"No images available."
|
||||
"Nenhuma imagem disponível."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
|
||||
"No favorites available."
|
||||
"Não há favoritos disponíveis."
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_MISSING_ASSETS,
|
||||
"Aviso: Recursos ausentes, use o Atualizador Online se disponível"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember Window Position and Size")
|
||||
|
@ -3461,3 +3461,5 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
|
||||
"No favorites available."
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember Window Position and Size")
|
||||
|
@ -3664,3 +3664,5 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
|
||||
"No favorites available."
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember Window Position and Size")
|
||||
|
@ -2910,45 +2910,45 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_ENABLE,
|
||||
"Show date / time"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE,
|
||||
"Style of date / time"
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE,
|
||||
"Style of date / time"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_TIMEDATE_STYLE,
|
||||
"Changes the style current date and/or time is shown inside the menu."
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_TIMEDATE_STYLE,
|
||||
"Changes the style current date and/or time is shown inside the menu."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HMS,
|
||||
"YYYY-MM-DD HH:MM:SS"
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HMS,
|
||||
"YYYY-MM-DD HH:MM:SS"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HM,
|
||||
"YYYY-MM-DD HH:MM"
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_YMD_HM,
|
||||
"YYYY-MM-DD HH:MM"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MDYYYY,
|
||||
"MM-DD-YYYY HH:MM"
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MDYYYY,
|
||||
"MM-DD-YYYY HH:MM"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HMS,
|
||||
"HH:MM:SS"
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HMS,
|
||||
"HH:MM:SS"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HM,
|
||||
"HH:MM"
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_HM,
|
||||
"HH:MM"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_DM_HM,
|
||||
"DD/MM HH:MM"
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_DM_HM,
|
||||
"DD/MM HH:MM"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MD_HM,
|
||||
"MM/DD HH:MM"
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_MD_HM,
|
||||
"MM/DD HH:MM"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_AM_PM,
|
||||
"HH:MM:SS (AM/PM)"
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TIMEDATE_STYLE_AM_PM,
|
||||
"HH:MM:SS (AM/PM)"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_TITLE_COLOR,
|
||||
@ -4886,19 +4886,23 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_WINDOW_WIDTH,
|
||||
"Set the custom width size for the display window. Leaving it at 0 will attempt to scale the window as large as possible."
|
||||
"Set the custom width for the display window."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_WINDOW_HEIGHT,
|
||||
"Set the custom height size for the display window. Leaving it at 0 will attempt to scale the window as large as possible."
|
||||
"Set the custom height for the display window."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember window size and position, enabling this has precedence over Windowed Scale"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_X,
|
||||
"Set the custom width size for the non-windowed fullscreen mode. Leaving it at 0 will use the desktop resolution."
|
||||
"Set the custom width size for the non-windowed fullscreen mode. Leaving it unset will use the desktop resolution."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_Y,
|
||||
"Set the custom height size for the non-windowed fullscreen mode. Leaving it at 0 will use the desktop resolution"
|
||||
"Set the custom height size for the non-windowed fullscreen mode. Leaving it unset will use the desktop resolution."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_X,
|
||||
@ -4995,19 +4999,20 @@ MSG_HASH(
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CHEAT_APPLY_AFTER_TOGGLE,
|
||||
"Apply cheat immediately after toggling."
|
||||
)
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CHEAT_APPLY_AFTER_LOAD,
|
||||
"Auto-apply cheats when game loads."
|
||||
)
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CHEAT_REPEAT_COUNT,
|
||||
"The number of times the cheat will be applied. Use with the other two Iteration options to affect large areas of memory."
|
||||
"The number of times the cheat will be applied.\n"
|
||||
"Use with the other two Iteration options to affect large areas of memory."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CHEAT_REPEAT_ADD_TO_ADDRESS,
|
||||
"After each 'Number of Iterations' the Memory Address will be increased by this number times the 'Memory Search Size'."
|
||||
)
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_CHEAT_REPEAT_ADD_TO_VALUE,
|
||||
"After each 'Number of Iterations' the Value will be increased by this amount."
|
||||
@ -6922,15 +6927,15 @@ MSG_HASH(
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEAT_REPEAT_COUNT,
|
||||
"Number of Iterations"
|
||||
)
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEAT_REPEAT_ADD_TO_VALUE,
|
||||
"Value Increase Each Iteration"
|
||||
)
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEAT_REPEAT_ADD_TO_ADDRESS,
|
||||
"Address Increase Each Iteration"
|
||||
)
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_CHEAT_ADD_NEW_AFTER,
|
||||
"Add New Cheat After This One"
|
||||
@ -7731,20 +7736,34 @@ MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_OZONE_MENU_COLOR_THEME,
|
||||
"Select a different color theme."
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME,
|
||||
"Use preferred system color theme")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME,
|
||||
"Use your operating system's color theme (if any) - overrides theme settings.")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_LOWEST,
|
||||
"Lowest")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_LOWER,
|
||||
"Lower")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_NORMAL,
|
||||
"Normal")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_HIGHER,
|
||||
"Higher")
|
||||
MSG_HASH(MSG_RESAMPLER_QUALITY_HIGHEST,
|
||||
"Highest")
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME,
|
||||
"Use preferred system color theme"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_MENU_USE_PREFERRED_SYSTEM_COLOR_THEME,
|
||||
"Use your operating system's color theme (if any) - overrides theme settings."
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RESAMPLER_QUALITY_LOWEST,
|
||||
"Lowest"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RESAMPLER_QUALITY_LOWER,
|
||||
"Lower"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RESAMPLER_QUALITY_NORMAL,
|
||||
"Normal"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RESAMPLER_QUALITY_HIGHER,
|
||||
"Higher"
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_RESAMPLER_QUALITY_HIGHEST,
|
||||
"Highest"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_MUSIC_AVAILABLE,
|
||||
"No music available."
|
||||
@ -7761,3 +7780,9 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
|
||||
"No favorites available."
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_MISSING_ASSETS,
|
||||
"Warning: Missing assets, use the Online Updater if available"
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember Window Positions")
|
||||
|
@ -2537,9 +2537,9 @@ MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_WINDOW_WIDTH,
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_WINDOW_HEIGHT,
|
||||
"Set the custom height size for the display window. Leaving it at 0 will attempt to scale the window as large as possible.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_X,
|
||||
"Set the custom width size for the non-windowed fullscreen mode. Leaving it at 0 will use the desktop resolution.")
|
||||
"Set the custom width size for the non-windowed fullscreen mode. Leaving it unset will use the desktop resolution.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_Y,
|
||||
"Set the custom height size for the non-windowed fullscreen mode. Leaving it at 0 will use the desktop resolution")
|
||||
"Set the custom height size for the non-windowed fullscreen mode. Leaving it unset will use the desktop resolution.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_X,
|
||||
"Specify custom X axis position for onscreen text.")
|
||||
MSG_HASH(MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_Y,
|
||||
@ -3534,3 +3534,5 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_NO_FAVORITES_AVAILABLE,
|
||||
"No favorites available."
|
||||
)
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
"Remember Window Position and Size")
|
||||
|
@ -128,7 +128,8 @@ extern "C" {
|
||||
|
||||
/* LIGHTGUN device is similar to Guncon-2 for PlayStation 2.
|
||||
* It reports X/Y coordinates in screen space (similar to the pointer)
|
||||
* in the range [-0x8000, 0x7fff] in both axes, with zero being center.
|
||||
* in the range [-0x8000, 0x7fff] in both axes, with zero being center and
|
||||
* -0x8000 being out of bounds.
|
||||
* As well as reporting on/off screen state. It features a trigger,
|
||||
* start/select buttons, auxiliary action buttons and a
|
||||
* directional pad. A forced off-screen shot can be requested for
|
||||
@ -139,7 +140,8 @@ extern "C" {
|
||||
/* The ANALOG device is an extension to JOYPAD (RetroPad).
|
||||
* Similar to DualShock2 it adds two analog sticks and all buttons can
|
||||
* be analog. This is treated as a separate device type as it returns
|
||||
* axis values in the full analog range of [-0x8000, 0x7fff].
|
||||
* axis values in the full analog range of [-0x7fff, 0x7fff],
|
||||
* although some devices may return -0x8000.
|
||||
* Positive X axis is right. Positive Y axis is down.
|
||||
* Buttons are returned in the range [0, 0x7fff].
|
||||
* Only use ANALOG type when polling for analog values.
|
||||
|
@ -613,6 +613,7 @@ generic_deferred_push_clear_general(deferred_image_history_list, PUSH_DEFAULT, D
|
||||
generic_deferred_push_clear_general(deferred_video_history_list, PUSH_DEFAULT, DISPLAYLIST_VIDEO_HISTORY)
|
||||
generic_deferred_push_clear_general(deferred_push_dropdown_box_list, PUSH_DEFAULT, DISPLAYLIST_DROPDOWN_LIST)
|
||||
generic_deferred_push_clear_general(deferred_push_dropdown_box_list_special, PUSH_DEFAULT, DISPLAYLIST_DROPDOWN_LIST_SPECIAL)
|
||||
generic_deferred_push_clear_general(deferred_push_dropdown_box_list_resolution, PUSH_DEFAULT, DISPLAYLIST_DROPDOWN_LIST_RESOLUTION)
|
||||
|
||||
static int menu_cbs_init_bind_deferred_push_compare_label(
|
||||
menu_file_list_cbs_t *cbs,
|
||||
@ -633,6 +634,11 @@ static int menu_cbs_init_bind_deferred_push_compare_label(
|
||||
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_dropdown_box_list_special);
|
||||
return 0;
|
||||
}
|
||||
else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_RESOLUTION)))
|
||||
{
|
||||
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_dropdown_box_list_resolution);
|
||||
return 0;
|
||||
}
|
||||
else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_BROWSE_URL_LIST)))
|
||||
{
|
||||
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_browse_url_list);
|
||||
|
@ -60,6 +60,7 @@
|
||||
#include "../../verbosity.h"
|
||||
#include "../../lakka.h"
|
||||
#include "../../wifi/wifi_driver.h"
|
||||
#include "../../gfx/video_display_server.h"
|
||||
|
||||
#include <net/net_http.h>
|
||||
|
||||
@ -150,6 +151,8 @@ static enum msg_hash_enums action_ok_dl_to_enum(unsigned lbl)
|
||||
return MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST;
|
||||
case ACTION_OK_DL_DROPDOWN_BOX_LIST_SPECIAL:
|
||||
return MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_SPECIAL;
|
||||
case ACTION_OK_DL_DROPDOWN_BOX_LIST_RESOLUTION:
|
||||
return MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_RESOLUTION;
|
||||
case ACTION_OK_DL_MIXER_STREAM_SETTINGS_LIST:
|
||||
return MENU_ENUM_LABEL_DEFERRED_MIXER_STREAM_SETTINGS_LIST;
|
||||
case ACTION_OK_DL_ACCOUNTS_LIST:
|
||||
@ -323,6 +326,15 @@ int generic_action_ok_displaylist_push(const char *path,
|
||||
info.enum_idx = MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_SPECIAL;
|
||||
dl_type = DISPLAYLIST_GENERIC;
|
||||
break;
|
||||
case ACTION_OK_DL_DROPDOWN_BOX_LIST_RESOLUTION:
|
||||
info.type = type;
|
||||
info.directory_ptr = idx;
|
||||
info_path = path;
|
||||
info_label = msg_hash_to_str(
|
||||
MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_RESOLUTION);
|
||||
info.enum_idx = MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_RESOLUTION;
|
||||
dl_type = DISPLAYLIST_GENERIC;
|
||||
break;
|
||||
case ACTION_OK_DL_USER_BINDS_LIST:
|
||||
info.type = type;
|
||||
info.directory_ptr = idx;
|
||||
@ -4449,6 +4461,45 @@ static int action_ok_push_dropdown_item(const char *path,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int action_ok_push_dropdown_item_resolution(const char *path,
|
||||
const char *label, unsigned type, size_t idx, size_t entry_idx)
|
||||
{
|
||||
char str[100];
|
||||
char *pch = NULL;
|
||||
unsigned width = 0;
|
||||
unsigned height = 0;
|
||||
unsigned refreshrate = 0;
|
||||
|
||||
snprintf(str, sizeof(str), "%s", path);
|
||||
|
||||
pch = strtok(str, "x");
|
||||
if (pch)
|
||||
width = strtoul(pch, NULL, 0);
|
||||
pch = strtok(NULL, " ");
|
||||
if (pch)
|
||||
height = strtoul(pch, NULL, 0);
|
||||
pch = strtok(NULL, "(");
|
||||
if (pch)
|
||||
refreshrate = strtoul(pch, NULL, 0);
|
||||
|
||||
if (video_display_server_set_resolution(width, height,
|
||||
refreshrate, (float)refreshrate, 0))
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
video_monitor_set_refresh_rate((float)refreshrate);
|
||||
|
||||
settings->uints.video_fullscreen_x = width;
|
||||
settings->uints.video_fullscreen_y = height;
|
||||
|
||||
/* TODO/FIXME - menu drivers like XMB don't rescale
|
||||
* automatically */
|
||||
return menu_cbs_exit();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int action_ok_push_default(const char *path,
|
||||
const char *label, unsigned type, size_t idx, size_t entry_idx)
|
||||
{
|
||||
@ -4587,6 +4638,7 @@ default_action_ok_help(action_ok_help_load_content, MENU_ENUM_LABEL_HELP_LOADING
|
||||
static int action_ok_video_resolution(const char *path,
|
||||
const char *label, unsigned type, size_t idx, size_t entry_idx)
|
||||
{
|
||||
#if defined(__CELLOS_LV2__) || defined(GEKKO)
|
||||
unsigned width = 0;
|
||||
unsigned height = 0;
|
||||
|
||||
@ -4610,6 +4662,12 @@ static int action_ok_video_resolution(const char *path,
|
||||
width, height);
|
||||
runloop_msg_queue_push(msg, 1, 100, true);
|
||||
}
|
||||
#else
|
||||
generic_action_ok_displaylist_push(
|
||||
NULL,
|
||||
NULL, NULL, 0, 0, 0,
|
||||
ACTION_OK_DL_DROPDOWN_BOX_LIST_RESOLUTION);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -5555,6 +5613,9 @@ static int menu_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs,
|
||||
case MENU_SETTING_DROPDOWN_ITEM:
|
||||
BIND_ACTION_OK(cbs, action_ok_push_dropdown_item);
|
||||
break;
|
||||
case MENU_SETTING_DROPDOWN_ITEM_RESOLUTION:
|
||||
BIND_ACTION_OK(cbs, action_ok_push_dropdown_item_resolution);
|
||||
break;
|
||||
case MENU_SETTING_ACTION_CORE_DISK_OPTIONS:
|
||||
BIND_ACTION_OK(cbs, action_ok_push_default);
|
||||
break;
|
||||
|
@ -194,6 +194,7 @@ default_sublabel_macro(action_bind_sublabel_video_window_width, MENU_
|
||||
default_sublabel_macro(action_bind_sublabel_video_window_height, MENU_ENUM_SUBLABEL_VIDEO_WINDOW_HEIGHT)
|
||||
default_sublabel_macro(action_bind_sublabel_video_fullscreen_x, MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_X)
|
||||
default_sublabel_macro(action_bind_sublabel_video_fullscreen_y, MENU_ENUM_SUBLABEL_VIDEO_FULLSCREEN_Y)
|
||||
default_sublabel_macro(action_bind_sublabel_video_save_window_position, MENU_ENUM_SUBLABEL_VIDEO_WINDOW_SAVE_POSITION)
|
||||
default_sublabel_macro(action_bind_sublabel_video_message_pos_x, MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_X)
|
||||
default_sublabel_macro(action_bind_sublabel_video_message_pos_y, MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_Y)
|
||||
default_sublabel_macro(action_bind_sublabel_video_font_size, MENU_ENUM_SUBLABEL_VIDEO_FONT_SIZE)
|
||||
@ -1624,6 +1625,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
|
||||
case MENU_ENUM_LABEL_VIDEO_FULLSCREEN_Y:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_fullscreen_y);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_VIDEO_WINDOW_SAVE_POSITION:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_save_window_position);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_QUIT_RETROARCH:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_quit_retroarch);
|
||||
break;
|
||||
|
@ -1251,6 +1251,12 @@ int menu_cbs_init_bind_title(menu_file_list_cbs_t *cbs,
|
||||
BIND_ACTION_GET_TITLE(cbs, action_get_title_dropdown_item);
|
||||
return 0;
|
||||
}
|
||||
if (string_is_equal(label,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_RESOLUTION)))
|
||||
{
|
||||
BIND_ACTION_GET_TITLE(cbs, action_get_title_dropdown_item);
|
||||
return 0;
|
||||
}
|
||||
if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_RPL_ENTRY_ACTIONS)))
|
||||
{
|
||||
BIND_ACTION_GET_TITLE(cbs, action_get_quick_menu_views_settings_list);
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* RetroArch - A frontend for libretro.
|
||||
* Copyright (C) 2011-2017 - Daniel De Matteis
|
||||
* Copyright (C) 2014-2017 - Jean-Andr<EFBFBD> Santoni
|
||||
* Copyright (C) 2016-2017 - Andr<EFBFBD>s Su<EFBFBD>rez
|
||||
* Copyright (C) 2014-2017 - Jean-André Santoni
|
||||
* Copyright (C) 2016-2017 - Andrés Suárez
|
||||
*
|
||||
* RetroArch is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU General Public License as published by the Free Software Found-
|
||||
|
4500
menu/drivers/ozone.c
4500
menu/drivers/ozone.c
File diff suppressed because it is too large
Load Diff
1856
menu/drivers/ozone/ozone.c
Normal file
1856
menu/drivers/ozone/ozone.c
Normal file
File diff suppressed because it is too large
Load Diff
210
menu/drivers/ozone/ozone.h
Normal file
210
menu/drivers/ozone/ozone.h
Normal file
@ -0,0 +1,210 @@
|
||||
/* RetroArch - A frontend for libretro.
|
||||
* Copyright (C) 2018 - natinusala
|
||||
*
|
||||
* RetroArch is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU General Public License as published by the Free Software Found-
|
||||
* ation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with RetroArch.
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef _OZONE_H
|
||||
#define _OZONE_H
|
||||
|
||||
typedef struct ozone_handle ozone_handle_t;
|
||||
|
||||
#include "ozone_theme.h"
|
||||
#include "ozone_sidebar.h"
|
||||
|
||||
#include <retro_miscellaneous.h>
|
||||
|
||||
#include "../../menu_driver.h"
|
||||
#include "../../../retroarch.h"
|
||||
|
||||
#define FONT_SIZE_FOOTER 18
|
||||
#define FONT_SIZE_TITLE 36
|
||||
#define FONT_SIZE_TIME 22
|
||||
#define FONT_SIZE_ENTRIES_LABEL 24
|
||||
#define FONT_SIZE_ENTRIES_SUBLABEL 18
|
||||
#define FONT_SIZE_SIDEBAR 24
|
||||
|
||||
#define ANIMATION_PUSH_ENTRY_DURATION 10
|
||||
#define ANIMATION_CURSOR_DURATION 8
|
||||
#define ANIMATION_CURSOR_PULSE 30
|
||||
|
||||
#define ENTRIES_START_Y 127
|
||||
|
||||
#define INTERVAL_BATTERY_LEVEL_CHECK (30 * 1000000)
|
||||
#define INTERVAL_OSK_CURSOR (0.5f * 1000000)
|
||||
|
||||
typedef struct ozone_handle
|
||||
{
|
||||
uint64_t frame_count;
|
||||
|
||||
struct
|
||||
{
|
||||
font_data_t *footer;
|
||||
font_data_t *title;
|
||||
font_data_t *time;
|
||||
font_data_t *entries_label;
|
||||
font_data_t *entries_sublabel;
|
||||
font_data_t *sidebar;
|
||||
} fonts;
|
||||
|
||||
struct
|
||||
{
|
||||
video_font_raster_block_t footer;
|
||||
video_font_raster_block_t title;
|
||||
video_font_raster_block_t time;
|
||||
video_font_raster_block_t entries_label;
|
||||
video_font_raster_block_t entries_sublabel;
|
||||
video_font_raster_block_t sidebar;
|
||||
} raster_blocks;
|
||||
|
||||
menu_texture_item textures[OZONE_THEME_TEXTURE_LAST];
|
||||
menu_texture_item icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_LAST];
|
||||
menu_texture_item tab_textures[OZONE_TAB_TEXTURE_LAST];
|
||||
|
||||
char title[PATH_MAX_LENGTH];
|
||||
|
||||
char assets_path[PATH_MAX_LENGTH];
|
||||
char png_path[PATH_MAX_LENGTH];
|
||||
char icons_path[PATH_MAX_LENGTH];
|
||||
char tab_path[PATH_MAX_LENGTH];
|
||||
|
||||
uint8_t system_tab_end;
|
||||
uint8_t tabs[OZONE_SYSTEM_TAB_LAST];
|
||||
|
||||
size_t categories_selection_ptr; /* active tab id */
|
||||
size_t categories_active_idx_old;
|
||||
|
||||
bool cursor_in_sidebar;
|
||||
bool cursor_in_sidebar_old;
|
||||
|
||||
struct
|
||||
{
|
||||
float cursor_alpha;
|
||||
float scroll_y;
|
||||
float scroll_y_sidebar;
|
||||
|
||||
float list_alpha;
|
||||
|
||||
float messagebox_alpha;
|
||||
} animations;
|
||||
|
||||
bool fade_direction; /* false = left to right, true = right to left */
|
||||
|
||||
size_t selection; /* currently selected entry */
|
||||
size_t selection_old; /* previously selected entry (for fancy animation) */
|
||||
size_t selection_old_list;
|
||||
|
||||
unsigned entries_height;
|
||||
|
||||
int depth;
|
||||
|
||||
bool draw_sidebar;
|
||||
float sidebar_offset;
|
||||
|
||||
unsigned title_font_glyph_width;
|
||||
unsigned entry_font_glyph_width;
|
||||
unsigned sublabel_font_glyph_width;
|
||||
|
||||
ozone_theme_t *theme;
|
||||
|
||||
struct {
|
||||
float selection_border[16];
|
||||
float selection[16];
|
||||
float entries_border[16];
|
||||
float entries_icon[16];
|
||||
float entries_checkmark[16];
|
||||
float cursor_alpha[16];
|
||||
|
||||
unsigned cursor_state; /* 0 -> 1 -> 0 -> 1 [...] */
|
||||
float cursor_border[16];
|
||||
float message_background[16];
|
||||
} theme_dynamic;
|
||||
|
||||
bool need_compute;
|
||||
|
||||
file_list_t *selection_buf_old;
|
||||
|
||||
bool draw_old_list;
|
||||
float scroll_old;
|
||||
|
||||
char *pending_message;
|
||||
bool has_all_assets;
|
||||
|
||||
bool is_playlist;
|
||||
bool is_playlist_old;
|
||||
|
||||
bool empty_playlist;
|
||||
|
||||
bool osk_cursor; /* true = display it, false = don't */
|
||||
bool messagebox_state;
|
||||
bool messagebox_state_old;
|
||||
bool should_draw_messagebox;
|
||||
|
||||
unsigned old_list_offset_y;
|
||||
|
||||
file_list_t *horizontal_list; /* console tabs */
|
||||
} ozone_handle_t;
|
||||
|
||||
/* If you change this struct, also
|
||||
change ozone_alloc_node and
|
||||
ozone_copy_node */
|
||||
typedef struct ozone_node
|
||||
{
|
||||
/* Entries */
|
||||
unsigned height;
|
||||
unsigned position_y;
|
||||
bool wrap;
|
||||
|
||||
/* Console tabs */
|
||||
char *console_name;
|
||||
uintptr_t icon;
|
||||
uintptr_t content_icon;
|
||||
} ozone_node_t;
|
||||
|
||||
void ozone_draw_entries(ozone_handle_t *ozone, video_frame_info_t *video_info,
|
||||
unsigned selection, unsigned selection_old,
|
||||
file_list_t *selection_buf, float alpha, float scroll_y,
|
||||
bool is_playlist);
|
||||
|
||||
void ozone_draw_sidebar(ozone_handle_t *ozone, video_frame_info_t *video_info);
|
||||
|
||||
void ozone_change_tab(ozone_handle_t *ozone,
|
||||
enum msg_hash_enums tab,
|
||||
enum menu_settings_type type);
|
||||
|
||||
void ozone_sidebar_goto(ozone_handle_t *ozone, unsigned new_selection);
|
||||
|
||||
unsigned ozone_get_sidebar_height(ozone_handle_t *ozone);
|
||||
|
||||
unsigned ozone_get_selected_sidebar_y_position(ozone_handle_t *ozone);
|
||||
|
||||
void ozone_leave_sidebar(ozone_handle_t *ozone, uintptr_t tag);
|
||||
|
||||
void ozone_go_to_sidebar(ozone_handle_t *ozone, uintptr_t tag);
|
||||
|
||||
void ozone_refresh_horizontal_list(ozone_handle_t *ozone);
|
||||
|
||||
void ozone_init_horizontal_list(ozone_handle_t *ozone);
|
||||
|
||||
void ozone_context_destroy_horizontal_list(ozone_handle_t *ozone);
|
||||
|
||||
void ozone_context_reset_horizontal_list(ozone_handle_t *ozone);
|
||||
|
||||
ozone_node_t *ozone_alloc_node();
|
||||
|
||||
size_t ozone_list_get_size(void *data, enum menu_list_type type);
|
||||
|
||||
void ozone_free_list_nodes(file_list_t *list, bool actiondata);
|
||||
|
||||
bool ozone_is_playlist(ozone_handle_t *ozone);
|
||||
|
||||
#endif
|
430
menu/drivers/ozone/ozone_display.c
Normal file
430
menu/drivers/ozone/ozone_display.c
Normal file
@ -0,0 +1,430 @@
|
||||
/* RetroArch - A frontend for libretro.
|
||||
* Copyright (C) 2011-2017 - Daniel De Matteis
|
||||
* Copyright (C) 2014-2017 - Jean-André Santoni
|
||||
* Copyright (C) 2016-2017 - Brad Parker
|
||||
* Copyright (C) 2018 - Alfredo Monclús
|
||||
* Copyright (C) 2018 - natinusala
|
||||
*
|
||||
* RetroArch is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU General Public License as published by the Free Software Found-
|
||||
* ation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with RetroArch.
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "ozone.h"
|
||||
#include "ozone_display.h"
|
||||
#include "ozone_theme.h"
|
||||
|
||||
#include <string/stdstring.h>
|
||||
#include <file/file_path.h>
|
||||
#include <encodings/utf.h>
|
||||
#include <lists/string_list.h>
|
||||
#include <features/features_cpu.h>
|
||||
|
||||
#include "../../menu_input.h"
|
||||
#include "../../menu_animation.h"
|
||||
|
||||
#include "../../widgets/menu_input_dialog.h"
|
||||
#include "../../widgets/menu_osk.h"
|
||||
|
||||
static void ozone_cursor_animation_cb(void *userdata);
|
||||
|
||||
static void ozone_animate_cursor(ozone_handle_t *ozone, float *dst, float *target)
|
||||
{
|
||||
menu_animation_ctx_entry_t entry;
|
||||
int i;
|
||||
|
||||
entry.easing_enum = EASING_OUT_QUAD;
|
||||
entry.tag = (uintptr_t) &ozone_default_theme;
|
||||
entry.duration = ANIMATION_CURSOR_PULSE;
|
||||
entry.userdata = ozone;
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
if (i == 3 || i == 7 || i == 11 || i == 15)
|
||||
continue;
|
||||
|
||||
if (i == 14)
|
||||
entry.cb = ozone_cursor_animation_cb;
|
||||
else
|
||||
entry.cb = NULL;
|
||||
|
||||
entry.subject = &dst[i];
|
||||
entry.target_value = target[i];
|
||||
|
||||
menu_animation_push(&entry);
|
||||
}
|
||||
}
|
||||
|
||||
static void ozone_cursor_animation_cb(void *userdata)
|
||||
{
|
||||
ozone_handle_t *ozone = (ozone_handle_t*) userdata;
|
||||
|
||||
float *target = NULL;
|
||||
|
||||
switch (ozone->theme_dynamic.cursor_state)
|
||||
{
|
||||
case 0:
|
||||
target = ozone->theme->cursor_border_1;
|
||||
break;
|
||||
case 1:
|
||||
target = ozone->theme->cursor_border_0;
|
||||
break;
|
||||
}
|
||||
|
||||
ozone->theme_dynamic.cursor_state = (ozone->theme_dynamic.cursor_state + 1) % 2;
|
||||
|
||||
ozone_animate_cursor(ozone, ozone->theme_dynamic.cursor_border, target);
|
||||
}
|
||||
|
||||
void ozone_restart_cursor_animation(ozone_handle_t *ozone)
|
||||
{
|
||||
menu_animation_ctx_tag tag = (uintptr_t) &ozone_default_theme;
|
||||
|
||||
if (!ozone->has_all_assets)
|
||||
return;
|
||||
|
||||
ozone->theme_dynamic.cursor_state = 1;
|
||||
memcpy(ozone->theme_dynamic.cursor_border, ozone->theme->cursor_border_0, sizeof(ozone->theme_dynamic.cursor_border));
|
||||
menu_animation_kill_by_tag(&tag);
|
||||
|
||||
ozone_animate_cursor(ozone, ozone->theme_dynamic.cursor_border, ozone->theme->cursor_border_1);
|
||||
}
|
||||
|
||||
void ozone_draw_text(
|
||||
video_frame_info_t *video_info,
|
||||
ozone_handle_t *ozone,
|
||||
const char *str, float x,
|
||||
float y,
|
||||
enum text_alignment text_align,
|
||||
unsigned width, unsigned height, font_data_t* font,
|
||||
uint32_t color,
|
||||
bool draw_outside)
|
||||
{
|
||||
if ((color & 0x000000FF) == 0)
|
||||
return;
|
||||
|
||||
menu_display_draw_text(font, str, x, y,
|
||||
width, height, color, text_align, 1.0f,
|
||||
false,
|
||||
1.0, draw_outside);
|
||||
}
|
||||
|
||||
static void ozone_draw_cursor_slice(ozone_handle_t *ozone,
|
||||
video_frame_info_t *video_info,
|
||||
int x_offset,
|
||||
unsigned width, unsigned height,
|
||||
size_t y, float alpha)
|
||||
{
|
||||
ozone_color_alpha(ozone->theme_dynamic.cursor_alpha, alpha);
|
||||
ozone_color_alpha(ozone->theme_dynamic.cursor_border, alpha);
|
||||
|
||||
menu_display_blend_begin(video_info);
|
||||
|
||||
/* Cursor without border */
|
||||
menu_display_draw_texture_slice(
|
||||
video_info,
|
||||
x_offset - 14,
|
||||
y + 8,
|
||||
80, 80,
|
||||
width + 3 + 28 - 4,
|
||||
height + 20,
|
||||
video_info->width, video_info->height,
|
||||
ozone->theme_dynamic.cursor_alpha,
|
||||
20, 1.0,
|
||||
ozone->theme->textures[OZONE_THEME_TEXTURE_CURSOR_NO_BORDER]
|
||||
);
|
||||
|
||||
/* Tainted border */
|
||||
menu_display_draw_texture_slice(
|
||||
video_info,
|
||||
x_offset - 14,
|
||||
y + 8,
|
||||
80, 80,
|
||||
width + 3 + 28 - 4,
|
||||
height + 20,
|
||||
video_info->width, video_info->height,
|
||||
ozone->theme_dynamic.cursor_border,
|
||||
20, 1.0,
|
||||
ozone->textures[OZONE_TEXTURE_CURSOR_BORDER]
|
||||
);
|
||||
|
||||
menu_display_blend_end(video_info);
|
||||
}
|
||||
|
||||
static void ozone_draw_cursor_fallback(ozone_handle_t *ozone,
|
||||
video_frame_info_t *video_info,
|
||||
int x_offset,
|
||||
unsigned width, unsigned height,
|
||||
size_t y, float alpha)
|
||||
{
|
||||
ozone_color_alpha(ozone->theme_dynamic.selection_border, alpha);
|
||||
ozone_color_alpha(ozone->theme_dynamic.selection, alpha);
|
||||
|
||||
/* Fill */
|
||||
menu_display_draw_quad(video_info, x_offset, y, width, height - 5, video_info->width, video_info->height, ozone->theme_dynamic.selection);
|
||||
|
||||
/* Borders (can't do one single quad because of alpha) */
|
||||
|
||||
/* Top */
|
||||
menu_display_draw_quad(video_info, x_offset - 3, y - 3, width + 6, 3, video_info->width, video_info->height, ozone->theme_dynamic.selection_border);
|
||||
|
||||
/* Bottom */
|
||||
menu_display_draw_quad(video_info, x_offset - 3, y + height - 5, width + 6, 3, video_info->width, video_info->height, ozone->theme_dynamic.selection_border);
|
||||
|
||||
/* Left */
|
||||
menu_display_draw_quad(video_info, x_offset - 3, y, 3, height - 5, video_info->width, video_info->height, ozone->theme_dynamic.selection_border);
|
||||
|
||||
/* Right */
|
||||
menu_display_draw_quad(video_info, x_offset + width, y, 3, height - 5, video_info->width, video_info->height, ozone->theme_dynamic.selection_border);
|
||||
}
|
||||
|
||||
void ozone_draw_cursor(ozone_handle_t *ozone,
|
||||
video_frame_info_t *video_info,
|
||||
int x_offset,
|
||||
unsigned width, unsigned height,
|
||||
size_t y, float alpha)
|
||||
{
|
||||
if (ozone->has_all_assets)
|
||||
ozone_draw_cursor_slice(ozone, video_info, x_offset, width, height, y, alpha);
|
||||
else
|
||||
ozone_draw_cursor_fallback(ozone, video_info, x_offset, width, height, y, alpha);
|
||||
}
|
||||
|
||||
void ozone_color_alpha(float *color, float alpha)
|
||||
{
|
||||
color[3] = color[7] = color[11] = color[15] = alpha;
|
||||
}
|
||||
|
||||
void ozone_draw_icon(
|
||||
video_frame_info_t *video_info,
|
||||
unsigned icon_width,
|
||||
unsigned icon_height,
|
||||
uintptr_t texture,
|
||||
float x, float y,
|
||||
unsigned width, unsigned height,
|
||||
float rotation, float scale_factor,
|
||||
float *color)
|
||||
{
|
||||
menu_display_ctx_rotate_draw_t rotate_draw;
|
||||
menu_display_ctx_draw_t draw;
|
||||
struct video_coords coords;
|
||||
math_matrix_4x4 mymat;
|
||||
|
||||
rotate_draw.matrix = &mymat;
|
||||
rotate_draw.rotation = rotation;
|
||||
rotate_draw.scale_x = scale_factor;
|
||||
rotate_draw.scale_y = scale_factor;
|
||||
rotate_draw.scale_z = 1;
|
||||
rotate_draw.scale_enable = true;
|
||||
|
||||
menu_display_rotate_z(&rotate_draw, video_info);
|
||||
|
||||
coords.vertices = 4;
|
||||
coords.vertex = NULL;
|
||||
coords.tex_coord = NULL;
|
||||
coords.lut_tex_coord = NULL;
|
||||
coords.color = color ? (const float*)color : ozone_pure_white;
|
||||
|
||||
draw.x = x;
|
||||
draw.y = height - y - icon_height;
|
||||
draw.width = icon_width;
|
||||
draw.height = icon_height;
|
||||
draw.scale_factor = scale_factor;
|
||||
draw.rotation = rotation;
|
||||
draw.coords = &coords;
|
||||
draw.matrix_data = &mymat;
|
||||
draw.texture = texture;
|
||||
draw.prim_type = MENU_DISPLAY_PRIM_TRIANGLESTRIP;
|
||||
draw.pipeline.id = 0;
|
||||
|
||||
menu_display_draw(&draw, video_info);
|
||||
}
|
||||
|
||||
void ozone_draw_backdrop(video_frame_info_t *video_info, float alpha)
|
||||
{
|
||||
/* TODO Replace this backdrop by a blur shader on the whole screen if available */
|
||||
ozone_color_alpha(ozone_backdrop, alpha);
|
||||
menu_display_draw_quad(video_info, 0, 0, video_info->width, video_info->height, video_info->width, video_info->height, ozone_backdrop);
|
||||
}
|
||||
|
||||
void ozone_draw_osk(ozone_handle_t *ozone,
|
||||
video_frame_info_t *video_info,
|
||||
const char *label, const char *str)
|
||||
{
|
||||
int i;
|
||||
const char *text;
|
||||
char message[2048];
|
||||
unsigned text_color;
|
||||
struct string_list *list;
|
||||
|
||||
unsigned margin = 75;
|
||||
unsigned padding = 10;
|
||||
unsigned bottom_end = video_info->height/2;
|
||||
unsigned y_offset = 0;
|
||||
bool draw_placeholder = string_is_empty(str);
|
||||
|
||||
retro_time_t current_time = cpu_features_get_time_usec();
|
||||
static retro_time_t last_time = 0;
|
||||
|
||||
if (current_time - last_time >= INTERVAL_OSK_CURSOR)
|
||||
{
|
||||
ozone->osk_cursor = !ozone->osk_cursor;
|
||||
last_time = current_time;
|
||||
}
|
||||
|
||||
/* Border */
|
||||
/* Top */
|
||||
menu_display_draw_quad(video_info, margin, margin, video_info->width - margin*2, 1, video_info->width, video_info->height, ozone->theme->entries_border);
|
||||
|
||||
/* Bottom */
|
||||
menu_display_draw_quad(video_info, margin, bottom_end - margin, video_info->width - margin*2, 1, video_info->width, video_info->height, ozone->theme->entries_border);
|
||||
|
||||
/* Left */
|
||||
menu_display_draw_quad(video_info, margin, margin, 1, bottom_end - margin*2, video_info->width, video_info->height, ozone->theme->entries_border);
|
||||
|
||||
/* Right */
|
||||
menu_display_draw_quad(video_info, video_info->width - margin, margin, 1, bottom_end - margin*2, video_info->width, video_info->height, ozone->theme->entries_border);
|
||||
|
||||
/* Backdrop */
|
||||
/* TODO Remove the backdrop if blur shader is available */
|
||||
menu_display_draw_quad(video_info, margin + 1, margin + 1, video_info->width - margin*2 - 2, bottom_end - margin*2 - 2, video_info->width, video_info->height, ozone_osk_backdrop);
|
||||
|
||||
/* Placeholder & text*/
|
||||
if (!draw_placeholder)
|
||||
{
|
||||
text = str;
|
||||
text_color = 0xffffffff;
|
||||
}
|
||||
else
|
||||
{
|
||||
text = label;
|
||||
text_color = ozone_theme_light.text_sublabel_rgba;
|
||||
}
|
||||
|
||||
word_wrap(message, text, (video_info->width - margin*2 - padding*2) / ozone->entry_font_glyph_width, true);
|
||||
|
||||
list = string_split(message, "\n");
|
||||
|
||||
for (i = 0; i < list->size; i++)
|
||||
{
|
||||
const char *msg = list->elems[i].data;
|
||||
|
||||
ozone_draw_text(video_info, ozone, msg, margin + padding * 2, margin + padding + FONT_SIZE_ENTRIES_LABEL + y_offset, TEXT_ALIGN_LEFT, video_info->width, video_info->height, ozone->fonts.entries_label, text_color, false);
|
||||
|
||||
/* Cursor */
|
||||
if (i == list->size - 1)
|
||||
{
|
||||
if (ozone->osk_cursor)
|
||||
{
|
||||
unsigned cursor_x = draw_placeholder ? 0 : font_driver_get_message_width(ozone->fonts.entries_label, msg, (unsigned)strlen(msg), 1);
|
||||
menu_display_draw_quad(video_info, margin + padding*2 + cursor_x, margin + padding + y_offset + 3, 1, 25, video_info->width, video_info->height, ozone_pure_white);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
y_offset += 25;
|
||||
}
|
||||
}
|
||||
|
||||
/* Keyboard */
|
||||
menu_display_draw_keyboard(
|
||||
ozone->theme->textures[OZONE_THEME_TEXTURE_CURSOR_STATIC],
|
||||
ozone->fonts.entries_label,
|
||||
video_info,
|
||||
menu_event_get_osk_grid(),
|
||||
menu_event_get_osk_ptr(),
|
||||
ozone->theme->text_rgba);
|
||||
|
||||
string_list_free(list);
|
||||
}
|
||||
|
||||
void ozone_draw_messagebox(ozone_handle_t *ozone,
|
||||
video_frame_info_t *video_info,
|
||||
const char *message)
|
||||
{
|
||||
unsigned i, y_position;
|
||||
int x, y, longest = 0, longest_width = 0;
|
||||
float line_height = 0;
|
||||
unsigned width = video_info->width;
|
||||
unsigned height = video_info->height;
|
||||
struct string_list *list = !string_is_empty(message)
|
||||
? string_split(message, "\n") : NULL;
|
||||
|
||||
if (!list || !ozone || !ozone->fonts.footer)
|
||||
{
|
||||
if (list)
|
||||
string_list_free(list);
|
||||
return;
|
||||
}
|
||||
|
||||
if (list->elems == 0)
|
||||
goto end;
|
||||
|
||||
line_height = 25;
|
||||
|
||||
y_position = height / 2;
|
||||
if (menu_input_dialog_get_display_kb())
|
||||
y_position = height / 4;
|
||||
|
||||
x = width / 2;
|
||||
y = y_position - (list->size-1) * line_height / 2;
|
||||
|
||||
/* find the longest line width */
|
||||
for (i = 0; i < list->size; i++)
|
||||
{
|
||||
const char *msg = list->elems[i].data;
|
||||
int len = (int)utf8len(msg);
|
||||
|
||||
if (len > longest)
|
||||
{
|
||||
longest = len;
|
||||
longest_width = font_driver_get_message_width(
|
||||
ozone->fonts.footer, msg, (unsigned)strlen(msg), 1);
|
||||
}
|
||||
}
|
||||
|
||||
ozone_color_alpha(ozone->theme_dynamic.message_background, ozone->animations.messagebox_alpha);
|
||||
|
||||
menu_display_blend_begin(video_info);
|
||||
|
||||
if (ozone->has_all_assets) /* avoid drawing a black box if there's no assets */
|
||||
menu_display_draw_texture_slice(
|
||||
video_info,
|
||||
x - longest_width/2 - 48,
|
||||
y + 16 - 48,
|
||||
256, 256,
|
||||
longest_width + 48 * 2,
|
||||
line_height * list->size + 48 * 2,
|
||||
width, height,
|
||||
ozone->theme_dynamic.message_background,
|
||||
16, 1.0,
|
||||
ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_DIALOG_SLICE]
|
||||
);
|
||||
|
||||
for (i = 0; i < list->size; i++)
|
||||
{
|
||||
const char *msg = list->elems[i].data;
|
||||
|
||||
if (msg)
|
||||
ozone_draw_text(video_info, ozone,
|
||||
msg,
|
||||
x - longest_width/2.0,
|
||||
y + (i+0.75) * line_height,
|
||||
TEXT_ALIGN_LEFT,
|
||||
width, height,
|
||||
ozone->fonts.footer,
|
||||
COLOR_TEXT_ALPHA(ozone->theme->text_rgba, (uint32_t)(ozone->animations.messagebox_alpha*255.0f)),
|
||||
false
|
||||
);
|
||||
}
|
||||
|
||||
end:
|
||||
string_list_free(list);
|
||||
}
|
62
menu/drivers/ozone/ozone_display.h
Normal file
62
menu/drivers/ozone/ozone_display.h
Normal file
@ -0,0 +1,62 @@
|
||||
/* RetroArch - A frontend for libretro.
|
||||
* Copyright (C) 2011-2017 - Daniel De Matteis
|
||||
* Copyright (C) 2014-2017 - Jean-André Santoni
|
||||
* Copyright (C) 2016-2017 - Brad Parker
|
||||
* Copyright (C) 2018 - Alfredo Monclús
|
||||
* Copyright (C) 2018 - natinusala
|
||||
*
|
||||
* RetroArch is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU General Public License as published by the Free Software Found-
|
||||
* ation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with RetroArch.
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "ozone.h"
|
||||
|
||||
#include "../../menu_driver.h"
|
||||
|
||||
void ozone_draw_text(
|
||||
video_frame_info_t *video_info,
|
||||
ozone_handle_t *ozone,
|
||||
const char *str, float x,
|
||||
float y,
|
||||
enum text_alignment text_align,
|
||||
unsigned width, unsigned height, font_data_t* font,
|
||||
uint32_t color,
|
||||
bool draw_outside);
|
||||
|
||||
void ozone_draw_cursor(ozone_handle_t *ozone,
|
||||
video_frame_info_t *video_info,
|
||||
int x_offset,
|
||||
unsigned width, unsigned height,
|
||||
size_t y, float alpha);
|
||||
|
||||
void ozone_color_alpha(float *color, float alpha);
|
||||
|
||||
void ozone_draw_icon(
|
||||
video_frame_info_t *video_info,
|
||||
unsigned icon_width,
|
||||
unsigned icon_height,
|
||||
uintptr_t texture,
|
||||
float x, float y,
|
||||
unsigned width, unsigned height,
|
||||
float rotation, float scale_factor,
|
||||
float *color);
|
||||
|
||||
void ozone_restart_cursor_animation(ozone_handle_t *ozone);
|
||||
|
||||
void ozone_draw_backdrop(video_frame_info_t *video_info, float alpha);
|
||||
|
||||
void ozone_draw_osk(ozone_handle_t *ozone,
|
||||
video_frame_info_t *video_info,
|
||||
const char *label, const char *str);
|
||||
|
||||
void ozone_draw_messagebox(ozone_handle_t *ozone,
|
||||
video_frame_info_t *video_info,
|
||||
const char *message);
|
320
menu/drivers/ozone/ozone_entries.c
Normal file
320
menu/drivers/ozone/ozone_entries.c
Normal file
@ -0,0 +1,320 @@
|
||||
/* RetroArch - A frontend for libretro.
|
||||
* Copyright (C) 2011-2017 - Daniel De Matteis
|
||||
* Copyright (C) 2014-2017 - Jean-André Santoni
|
||||
* Copyright (C) 2016-2017 - Brad Parker
|
||||
* Copyright (C) 2018 - Alfredo Monclús
|
||||
* Copyright (C) 2018 - natinusala
|
||||
*
|
||||
* RetroArch is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU General Public License as published by the Free Software Found-
|
||||
* ation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with RetroArch.
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "ozone.h"
|
||||
#include "ozone_texture.h"
|
||||
#include "ozone_display.h"
|
||||
|
||||
#include <string/stdstring.h>
|
||||
#include <encodings/utf.h>
|
||||
|
||||
#include "../../menu_driver.h"
|
||||
#include "../../menu_animation.h"
|
||||
|
||||
static void ozone_draw_entry_value(ozone_handle_t *ozone,
|
||||
video_frame_info_t *video_info,
|
||||
char *value,
|
||||
unsigned x, unsigned y,
|
||||
uint32_t alpha_uint32,
|
||||
menu_entry_t *entry)
|
||||
{
|
||||
bool switch_is_on = true;
|
||||
bool do_draw_text = false;
|
||||
|
||||
if (!entry->checked && string_is_empty(value))
|
||||
return;
|
||||
|
||||
/* check icon */
|
||||
if (entry->checked)
|
||||
{
|
||||
menu_display_blend_begin(video_info);
|
||||
ozone_draw_icon(video_info, 30, 30, ozone->theme->textures[OZONE_THEME_TEXTURE_CHECK], x - 20, y - 22, video_info->width, video_info->height, 0, 1, ozone->theme_dynamic.entries_checkmark);
|
||||
menu_display_blend_end(video_info);
|
||||
return;
|
||||
}
|
||||
|
||||
/* text value */
|
||||
if (string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_DISABLED)) ||
|
||||
(string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF))))
|
||||
{
|
||||
switch_is_on = false;
|
||||
do_draw_text = false;
|
||||
}
|
||||
else if (string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_ENABLED)) ||
|
||||
(string_is_equal(value, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ON))))
|
||||
{
|
||||
switch_is_on = true;
|
||||
do_draw_text = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!string_is_empty(entry->value))
|
||||
{
|
||||
if (
|
||||
string_is_equal(entry->value, "...") ||
|
||||
string_is_equal(entry->value, "(PRESET)") ||
|
||||
string_is_equal(entry->value, "(SHADER)") ||
|
||||
string_is_equal(entry->value, "(COMP)") ||
|
||||
string_is_equal(entry->value, "(CORE)") ||
|
||||
string_is_equal(entry->value, "(MOVIE)") ||
|
||||
string_is_equal(entry->value, "(MUSIC)") ||
|
||||
string_is_equal(entry->value, "(DIR)") ||
|
||||
string_is_equal(entry->value, "(RDB)") ||
|
||||
string_is_equal(entry->value, "(CURSOR)")||
|
||||
string_is_equal(entry->value, "(CFILE)") ||
|
||||
string_is_equal(entry->value, "(FILE)") ||
|
||||
string_is_equal(entry->value, "(IMAGE)")
|
||||
)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
do_draw_text = true;
|
||||
}
|
||||
else
|
||||
do_draw_text = true;
|
||||
}
|
||||
|
||||
if (do_draw_text)
|
||||
{
|
||||
ozone_draw_text(video_info, ozone, value, x, y, TEXT_ALIGN_RIGHT, video_info->width, video_info->height, ozone->fonts.entries_label, COLOR_TEXT_ALPHA(ozone->theme->text_selected_rgba, alpha_uint32), false);
|
||||
}
|
||||
else
|
||||
{
|
||||
ozone_draw_text(video_info, ozone, (switch_is_on ? msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ON) : msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OFF)),
|
||||
x, y, TEXT_ALIGN_RIGHT, video_info->width, video_info->height, ozone->fonts.entries_label,
|
||||
COLOR_TEXT_ALPHA(switch_is_on ? ozone->theme->text_selected_rgba : ozone->theme->text_sublabel_rgba, alpha_uint32), false);
|
||||
}
|
||||
}
|
||||
|
||||
void ozone_draw_entries(ozone_handle_t *ozone, video_frame_info_t *video_info,
|
||||
unsigned selection, unsigned selection_old,
|
||||
file_list_t *selection_buf, float alpha, float scroll_y,
|
||||
bool is_playlist)
|
||||
{
|
||||
bool old_list;
|
||||
uint32_t alpha_uint32;
|
||||
size_t i, y, entries_end;
|
||||
float sidebar_offset, bottom_boundary, invert, alpha_anim;
|
||||
unsigned video_info_height, video_info_width, entry_width, button_height;
|
||||
int x_offset = 22;
|
||||
size_t selection_y = 0;
|
||||
size_t old_selection_y = 0;
|
||||
|
||||
menu_entries_ctl(MENU_ENTRIES_CTL_START_GET, &i);
|
||||
|
||||
entries_end = file_list_get_size(selection_buf);
|
||||
old_list = selection_buf == ozone->selection_buf_old;
|
||||
y = ENTRIES_START_Y;
|
||||
sidebar_offset = ozone->sidebar_offset / 2.0f;
|
||||
entry_width = video_info->width - 548;
|
||||
button_height = 52; /* height of the button (entry minus sublabel) */
|
||||
|
||||
video_driver_get_size(&video_info_width, &video_info_height);
|
||||
|
||||
bottom_boundary = video_info_height - 87 - 78;
|
||||
invert = (ozone->fade_direction) ? -1 : 1;
|
||||
alpha_anim = old_list ? alpha : 1.0f - alpha;
|
||||
|
||||
if (old_list)
|
||||
alpha = 1.0f - alpha;
|
||||
|
||||
if (alpha != 1.0f)
|
||||
{
|
||||
if (old_list)
|
||||
x_offset += invert * -(alpha_anim * 120); /* left */
|
||||
else
|
||||
x_offset += invert * (alpha_anim * 120); /* right */
|
||||
}
|
||||
|
||||
x_offset += (int) sidebar_offset;
|
||||
alpha_uint32 = (uint32_t)(alpha*255.0f);
|
||||
|
||||
/* Borders layer */
|
||||
for (i = 0; i < entries_end; i++)
|
||||
{
|
||||
bool entry_selected = selection == i;
|
||||
bool entry_old_selected = selection_old == i;
|
||||
ozone_node_t *node = NULL;
|
||||
if (entry_selected)
|
||||
selection_y = y;
|
||||
|
||||
if (entry_old_selected)
|
||||
old_selection_y = y;
|
||||
|
||||
node = (ozone_node_t*) file_list_get_userdata_at_offset(selection_buf, i);
|
||||
|
||||
if (!node || ozone->empty_playlist)
|
||||
goto border_iterate;
|
||||
|
||||
if (y + scroll_y + node->height + 20 < ENTRIES_START_Y)
|
||||
goto border_iterate;
|
||||
else if (y + scroll_y - node->height - 20 > bottom_boundary)
|
||||
goto border_iterate;
|
||||
|
||||
ozone_color_alpha(ozone->theme_dynamic.entries_border, alpha);
|
||||
ozone_color_alpha(ozone->theme_dynamic.entries_checkmark, alpha);
|
||||
|
||||
/* Borders */
|
||||
menu_display_draw_quad(video_info, x_offset + 456-3, y - 3 + scroll_y, entry_width + 10 - 3 -1, 1, video_info->width, video_info->height, ozone->theme_dynamic.entries_border);
|
||||
menu_display_draw_quad(video_info, x_offset + 456-3, y - 3 + button_height + scroll_y, entry_width + 10 - 3-1, 1, video_info->width, video_info->height, ozone->theme_dynamic.entries_border);
|
||||
|
||||
border_iterate:
|
||||
y += node->height;
|
||||
}
|
||||
|
||||
/* Cursor(s) layer - current */
|
||||
if (!ozone->cursor_in_sidebar)
|
||||
ozone_draw_cursor(ozone, video_info, x_offset + 456, entry_width, button_height, selection_y + scroll_y, ozone->animations.cursor_alpha * alpha);
|
||||
|
||||
/* Old*/
|
||||
if (!ozone->cursor_in_sidebar_old)
|
||||
ozone_draw_cursor(ozone, video_info, x_offset + 456, entry_width, button_height, old_selection_y + scroll_y, (1-ozone->animations.cursor_alpha) * alpha);
|
||||
|
||||
/* Icons + text */
|
||||
y = ENTRIES_START_Y;
|
||||
|
||||
if (old_list)
|
||||
y += ozone->old_list_offset_y;
|
||||
|
||||
for (i = 0; i < entries_end; i++)
|
||||
{
|
||||
menu_texture_item tex;
|
||||
menu_entry_t entry;
|
||||
menu_animation_ctx_ticker_t ticker;
|
||||
char entry_value[255];
|
||||
char rich_label[255];
|
||||
char entry_value_ticker[255];
|
||||
char *sublabel_str;
|
||||
ozone_node_t *node = NULL;
|
||||
char *entry_rich_label = NULL;
|
||||
bool entry_selected = false;
|
||||
int text_offset = -40;
|
||||
float *icon_color = NULL;
|
||||
|
||||
entry_value[0] = '\0';
|
||||
entry_selected = selection == i;
|
||||
node = (ozone_node_t*) file_list_get_userdata_at_offset(selection_buf, i);
|
||||
|
||||
menu_entry_init(&entry);
|
||||
menu_entry_get(&entry, 0, (unsigned)i, selection_buf, true);
|
||||
menu_entry_get_value(&entry, entry_value, sizeof(entry_value));
|
||||
|
||||
if (!node)
|
||||
continue;
|
||||
|
||||
if (y + scroll_y + node->height + 20 < ENTRIES_START_Y)
|
||||
goto icons_iterate;
|
||||
else if (y + scroll_y - node->height - 20 > bottom_boundary)
|
||||
goto icons_iterate;
|
||||
|
||||
/* Prepare text */
|
||||
entry_rich_label = menu_entry_get_rich_label(&entry);
|
||||
|
||||
ticker.idx = ozone->frame_count / 20;
|
||||
ticker.s = rich_label;
|
||||
ticker.str = entry_rich_label;
|
||||
ticker.selected = entry_selected && !ozone->cursor_in_sidebar;
|
||||
ticker.len = (entry_width - 60 - text_offset) / ozone->entry_font_glyph_width;
|
||||
|
||||
menu_animation_ticker(&ticker);
|
||||
|
||||
if (ozone->empty_playlist)
|
||||
{
|
||||
unsigned text_width = font_driver_get_message_width(ozone->fonts.entries_label, rich_label, (unsigned)strlen(rich_label), 1);
|
||||
x_offset = (video_info_width - 408 - 162)/2 - text_width/2;
|
||||
y = video_info_height/2 - 60;
|
||||
}
|
||||
|
||||
sublabel_str = menu_entry_get_sublabel(&entry);
|
||||
|
||||
if (node->wrap && sublabel_str)
|
||||
word_wrap(sublabel_str, sublabel_str, (video_info->width - 548) / ozone->sublabel_font_glyph_width, false);
|
||||
|
||||
/* Icon */
|
||||
tex = ozone_entries_icon_get_texture(ozone, entry.enum_idx, entry.type, entry_selected);
|
||||
if (tex != ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SUBSETTING])
|
||||
{
|
||||
uintptr_t texture = tex;
|
||||
|
||||
/* Console specific icons */
|
||||
if (entry.type == FILE_TYPE_RPL_ENTRY && ozone->horizontal_list && ozone->categories_selection_ptr > ozone->system_tab_end)
|
||||
{
|
||||
ozone_node_t *sidebar_node = (ozone_node_t*) file_list_get_userdata_at_offset(ozone->horizontal_list, ozone->categories_selection_ptr - ozone->system_tab_end-1);
|
||||
|
||||
if (!sidebar_node || !sidebar_node->content_icon)
|
||||
texture = tex;
|
||||
else
|
||||
texture = sidebar_node->content_icon;
|
||||
}
|
||||
|
||||
/* Cheevos badges should not be recolored */
|
||||
if (!(
|
||||
(entry.type >= MENU_SETTINGS_CHEEVOS_START) &&
|
||||
(entry.type < MENU_SETTINGS_NETPLAY_ROOMS_START)
|
||||
))
|
||||
{
|
||||
icon_color = ozone->theme_dynamic.entries_icon;
|
||||
}
|
||||
else
|
||||
{
|
||||
icon_color = ozone_pure_white;
|
||||
}
|
||||
|
||||
ozone_color_alpha(icon_color, alpha);
|
||||
|
||||
menu_display_blend_begin(video_info);
|
||||
ozone_draw_icon(video_info, 46, 46, texture, x_offset + 451+5+10, y + scroll_y, video_info->width, video_info->height, 0, 1, icon_color);
|
||||
menu_display_blend_end(video_info);
|
||||
|
||||
if (icon_color == ozone_pure_white)
|
||||
ozone_color_alpha(icon_color, 1.0f);
|
||||
|
||||
text_offset = 0;
|
||||
}
|
||||
|
||||
/* Draw text */
|
||||
ozone_draw_text(video_info, ozone, rich_label, text_offset + x_offset + 521, y + FONT_SIZE_ENTRIES_LABEL + 8 - 1 + scroll_y, TEXT_ALIGN_LEFT, video_info->width, video_info->height, ozone->fonts.entries_label, COLOR_TEXT_ALPHA(ozone->theme->text_rgba, alpha_uint32), false);
|
||||
if (sublabel_str)
|
||||
ozone_draw_text(video_info, ozone, sublabel_str, x_offset + 470, y + FONT_SIZE_ENTRIES_SUBLABEL + 80 - 20 - 3 + scroll_y, TEXT_ALIGN_LEFT, video_info->width, video_info->height, ozone->fonts.entries_sublabel, COLOR_TEXT_ALPHA(ozone->theme->text_sublabel_rgba, alpha_uint32), false);
|
||||
|
||||
/* Value */
|
||||
ticker.idx = ozone->frame_count / 20;
|
||||
ticker.s = entry_value_ticker;
|
||||
ticker.str = entry_value;
|
||||
ticker.selected = entry_selected && !ozone->cursor_in_sidebar;
|
||||
ticker.len = (entry_width - 60 - ((int)utf8len(entry_rich_label) * ozone->entry_font_glyph_width)) / ozone->entry_font_glyph_width;
|
||||
|
||||
menu_animation_ticker(&ticker);
|
||||
ozone_draw_entry_value(ozone, video_info, entry_value_ticker, x_offset + 426 + entry_width, y + FONT_SIZE_ENTRIES_LABEL + 8 - 1 + scroll_y,alpha_uint32, &entry);
|
||||
|
||||
free(entry_rich_label);
|
||||
|
||||
if (sublabel_str)
|
||||
free(sublabel_str);
|
||||
|
||||
icons_iterate:
|
||||
y += node->height;
|
||||
menu_entry_free(&entry);
|
||||
}
|
||||
|
||||
/* Text layer */
|
||||
font_driver_flush(video_info->width, video_info->height, ozone->fonts.entries_label, video_info);
|
||||
font_driver_flush(video_info->width, video_info->height, ozone->fonts.entries_sublabel, video_info);
|
||||
}
|
654
menu/drivers/ozone/ozone_sidebar.c
Normal file
654
menu/drivers/ozone/ozone_sidebar.c
Normal file
@ -0,0 +1,654 @@
|
||||
/* RetroArch - A frontend for libretro.
|
||||
* Copyright (C) 2011-2017 - Daniel De Matteis
|
||||
* Copyright (C) 2014-2017 - Jean-André Santoni
|
||||
* Copyright (C) 2016-2017 - Brad Parker
|
||||
* Copyright (C) 2018 - Alfredo Monclús
|
||||
* Copyright (C) 2018 - natinusala
|
||||
*
|
||||
* RetroArch is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU General Public License as published by the Free Software Found-
|
||||
* ation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with RetroArch.
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* TODO Fluid sidebar width ? */
|
||||
|
||||
#include "ozone.h"
|
||||
#include "ozone_theme.h"
|
||||
#include "ozone_display.h"
|
||||
#include "ozone_sidebar.h"
|
||||
|
||||
#include <string/stdstring.h>
|
||||
#include <file/file_path.h>
|
||||
#include <streams/file_stream.h>
|
||||
|
||||
#include "../../menu_animation.h"
|
||||
|
||||
#include "../../../configuration.h"
|
||||
|
||||
enum msg_hash_enums ozone_system_tabs_value[OZONE_SYSTEM_TAB_LAST] = {
|
||||
MENU_ENUM_LABEL_VALUE_MAIN_MENU,
|
||||
MENU_ENUM_LABEL_VALUE_SETTINGS_TAB,
|
||||
MENU_ENUM_LABEL_VALUE_HISTORY_TAB,
|
||||
MENU_ENUM_LABEL_VALUE_FAVORITES_TAB,
|
||||
MENU_ENUM_LABEL_VALUE_MUSIC_TAB,
|
||||
#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_TAB,
|
||||
#endif
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
MENU_ENUM_LABEL_VALUE_IMAGES_TAB,
|
||||
#endif
|
||||
#ifdef HAVE_NETWORKING
|
||||
MENU_ENUM_LABEL_VALUE_NETPLAY_TAB,
|
||||
#endif
|
||||
MENU_ENUM_LABEL_VALUE_ADD_TAB
|
||||
};
|
||||
|
||||
enum menu_settings_type ozone_system_tabs_type[OZONE_SYSTEM_TAB_LAST] = {
|
||||
MENU_SETTINGS,
|
||||
MENU_SETTINGS_TAB,
|
||||
MENU_HISTORY_TAB,
|
||||
MENU_FAVORITES_TAB,
|
||||
MENU_MUSIC_TAB,
|
||||
#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
|
||||
MENU_VIDEO_TAB,
|
||||
#endif
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
MENU_IMAGES_TAB,
|
||||
#endif
|
||||
#ifdef HAVE_NETWORKING
|
||||
MENU_NETPLAY_TAB,
|
||||
#endif
|
||||
MENU_ADD_TAB
|
||||
};
|
||||
|
||||
enum msg_hash_enums ozone_system_tabs_idx[OZONE_SYSTEM_TAB_LAST] = {
|
||||
MENU_ENUM_LABEL_MAIN_MENU,
|
||||
MENU_ENUM_LABEL_SETTINGS_TAB,
|
||||
MENU_ENUM_LABEL_HISTORY_TAB,
|
||||
MENU_ENUM_LABEL_FAVORITES_TAB,
|
||||
MENU_ENUM_LABEL_MUSIC_TAB,
|
||||
#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
|
||||
MENU_ENUM_LABEL_VIDEO_TAB,
|
||||
#endif
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
MENU_ENUM_LABEL_IMAGES_TAB,
|
||||
#endif
|
||||
#ifdef HAVE_NETWORKING
|
||||
MENU_ENUM_LABEL_NETPLAY_TAB,
|
||||
#endif
|
||||
MENU_ENUM_LABEL_ADD_TAB
|
||||
};
|
||||
|
||||
unsigned ozone_system_tabs_icons[OZONE_SYSTEM_TAB_LAST] = {
|
||||
OZONE_TAB_TEXTURE_MAIN_MENU,
|
||||
OZONE_TAB_TEXTURE_SETTINGS,
|
||||
OZONE_TAB_TEXTURE_HISTORY,
|
||||
OZONE_TAB_TEXTURE_FAVORITES,
|
||||
OZONE_TAB_TEXTURE_MUSIC,
|
||||
#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
|
||||
OZONE_TAB_TEXTURE_VIDEO,
|
||||
#endif
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
OZONE_TAB_TEXTURE_IMAGE,
|
||||
#endif
|
||||
#ifdef HAVE_NETWORKING
|
||||
OZONE_TAB_TEXTURE_NETWORK,
|
||||
#endif
|
||||
OZONE_TAB_TEXTURE_SCAN_CONTENT
|
||||
};
|
||||
|
||||
void ozone_draw_sidebar(ozone_handle_t *ozone, video_frame_info_t *video_info)
|
||||
{
|
||||
size_t y;
|
||||
unsigned i, sidebar_height;
|
||||
char console_title[255];
|
||||
menu_animation_ctx_ticker_t ticker;
|
||||
|
||||
unsigned selection_y = 0;
|
||||
unsigned selection_old_y = 0;
|
||||
unsigned horizontal_list_size = 0;
|
||||
|
||||
if (!ozone->draw_sidebar)
|
||||
return;
|
||||
|
||||
if (ozone->horizontal_list)
|
||||
horizontal_list_size = ozone->horizontal_list->size;
|
||||
|
||||
menu_display_scissor_begin(video_info, 0, 87, 408, video_info->height - 87 - 78);
|
||||
|
||||
/* Background */
|
||||
sidebar_height = video_info->height - 87 - 55 - 78;
|
||||
|
||||
if (!video_info->libretro_running)
|
||||
{
|
||||
menu_display_draw_quad(video_info, ozone->sidebar_offset, 88, 408, 55/2, video_info->width, video_info->height, ozone->theme->sidebar_top_gradient);
|
||||
menu_display_draw_quad(video_info, ozone->sidebar_offset, 88 + 55/2, 408, sidebar_height, video_info->width, video_info->height, ozone->theme->sidebar_background);
|
||||
menu_display_draw_quad(video_info, ozone->sidebar_offset, 55*2 + sidebar_height, 408, 55/2 + 1, video_info->width, video_info->height, ozone->theme->sidebar_bottom_gradient);
|
||||
}
|
||||
|
||||
/* Tabs */
|
||||
/* y offset computation */
|
||||
y = ENTRIES_START_Y - 10;
|
||||
for (i = 0; i < ozone->system_tab_end + horizontal_list_size + 1; i++)
|
||||
{
|
||||
if (i == ozone->categories_selection_ptr)
|
||||
{
|
||||
selection_y = y;
|
||||
if (ozone->categories_selection_ptr > ozone->system_tab_end)
|
||||
selection_y += 30;
|
||||
}
|
||||
|
||||
if (i == ozone->categories_active_idx_old)
|
||||
{
|
||||
selection_old_y = y;
|
||||
if (ozone->categories_active_idx_old > ozone->system_tab_end)
|
||||
selection_old_y += 30;
|
||||
}
|
||||
|
||||
y += 65;
|
||||
}
|
||||
|
||||
/* Cursor */
|
||||
if (ozone->cursor_in_sidebar)
|
||||
ozone_draw_cursor(ozone, video_info, ozone->sidebar_offset + 41, 408 - 81, 52, selection_y-8 + ozone->animations.scroll_y_sidebar, ozone->animations.cursor_alpha);
|
||||
|
||||
if (ozone->cursor_in_sidebar_old)
|
||||
ozone_draw_cursor(ozone, video_info, ozone->sidebar_offset + 41, 408 - 81, 52, selection_old_y-8 + ozone->animations.scroll_y_sidebar, 1-ozone->animations.cursor_alpha);
|
||||
|
||||
/* Menu tabs */
|
||||
y = ENTRIES_START_Y - 10;
|
||||
menu_display_blend_begin(video_info);
|
||||
|
||||
for (i = 0; i < ozone->system_tab_end+1; i++)
|
||||
{
|
||||
enum msg_hash_enums value_idx;
|
||||
const char *title = NULL;
|
||||
bool selected = (ozone->categories_selection_ptr == i);
|
||||
unsigned icon = ozone_system_tabs_icons[ozone->tabs[i]];
|
||||
|
||||
/* Icon */
|
||||
ozone_draw_icon(video_info, 40, 40, ozone->tab_textures[icon], ozone->sidebar_offset + 41 + 10, y - 5 + ozone->animations.scroll_y_sidebar, video_info->width, video_info->height, 0, 1, (selected ? ozone->theme->text_selected : ozone->theme->entries_icon));
|
||||
|
||||
value_idx = ozone_system_tabs_value[ozone->tabs[i]];
|
||||
title = msg_hash_to_str(value_idx);
|
||||
|
||||
/* Text */
|
||||
ozone_draw_text(video_info, ozone, title, ozone->sidebar_offset + 115 - 10, y + FONT_SIZE_SIDEBAR + ozone->animations.scroll_y_sidebar, TEXT_ALIGN_LEFT, video_info->width, video_info->height, ozone->fonts.sidebar, (selected ? ozone->theme->text_selected_rgba : ozone->theme->text_rgba), true);
|
||||
|
||||
y += 65;
|
||||
}
|
||||
|
||||
menu_display_blend_end(video_info);
|
||||
|
||||
/* Console tabs */
|
||||
if (horizontal_list_size > 0)
|
||||
{
|
||||
menu_display_draw_quad(video_info, ozone->sidebar_offset + 41 + 10, y - 5 + ozone->animations.scroll_y_sidebar, 408-81, 1, video_info->width, video_info->height, ozone->theme->entries_border);
|
||||
|
||||
y += 30;
|
||||
|
||||
menu_display_blend_begin(video_info);
|
||||
|
||||
for (i = 0; i < horizontal_list_size; i++)
|
||||
{
|
||||
bool selected = (ozone->categories_selection_ptr == ozone->system_tab_end + 1 + i);
|
||||
|
||||
ozone_node_t *node = (ozone_node_t*) file_list_get_userdata_at_offset(ozone->horizontal_list, i);
|
||||
|
||||
if (!node)
|
||||
goto console_iterate;
|
||||
|
||||
/* Icon */
|
||||
ozone_draw_icon(video_info, 40, 40, node->icon, ozone->sidebar_offset + 41 + 10, y - 5 + ozone->animations.scroll_y_sidebar, video_info->width, video_info->height, 0, 1, (selected ? ozone->theme->text_selected : ozone->theme->entries_icon));
|
||||
|
||||
/* Text */
|
||||
ticker.idx = ozone->frame_count / 20;
|
||||
ticker.len = 19;
|
||||
ticker.s = console_title;
|
||||
ticker.selected = selected;
|
||||
ticker.str = node->console_name;
|
||||
|
||||
menu_animation_ticker(&ticker);
|
||||
|
||||
ozone_draw_text(video_info, ozone, console_title, ozone->sidebar_offset + 115 - 10, y + FONT_SIZE_SIDEBAR + ozone->animations.scroll_y_sidebar, TEXT_ALIGN_LEFT, video_info->width, video_info->height, ozone->fonts.sidebar, (selected ? ozone->theme->text_selected_rgba : ozone->theme->text_rgba), true);
|
||||
|
||||
console_iterate:
|
||||
y += 65;
|
||||
}
|
||||
|
||||
menu_display_blend_end(video_info);
|
||||
|
||||
}
|
||||
|
||||
font_driver_flush(video_info->width, video_info->height, ozone->fonts.sidebar, video_info);
|
||||
ozone->raster_blocks.sidebar.carr.coords.vertices = 0;
|
||||
|
||||
menu_display_scissor_end(video_info);
|
||||
}
|
||||
|
||||
void ozone_go_to_sidebar(ozone_handle_t *ozone, uintptr_t tag)
|
||||
{
|
||||
struct menu_animation_ctx_entry entry;
|
||||
|
||||
ozone->selection_old = ozone->selection;
|
||||
ozone->cursor_in_sidebar_old = ozone->cursor_in_sidebar;
|
||||
ozone->cursor_in_sidebar = true;
|
||||
|
||||
/* Cursor animation */
|
||||
ozone->animations.cursor_alpha = 0.0f;
|
||||
|
||||
entry.cb = NULL;
|
||||
entry.duration = ANIMATION_CURSOR_DURATION;
|
||||
entry.easing_enum = EASING_OUT_QUAD;
|
||||
entry.subject = &ozone->animations.cursor_alpha;
|
||||
entry.tag = tag;
|
||||
entry.target_value = 1.0f;
|
||||
entry.userdata = NULL;
|
||||
|
||||
menu_animation_push(&entry);
|
||||
}
|
||||
|
||||
void ozone_leave_sidebar(ozone_handle_t *ozone, uintptr_t tag)
|
||||
{
|
||||
struct menu_animation_ctx_entry entry;
|
||||
|
||||
if (ozone->empty_playlist)
|
||||
return;
|
||||
|
||||
ozone->categories_active_idx_old = ozone->categories_selection_ptr;
|
||||
ozone->cursor_in_sidebar_old = ozone->cursor_in_sidebar;
|
||||
ozone->cursor_in_sidebar = false;
|
||||
|
||||
/* Cursor animation */
|
||||
ozone->animations.cursor_alpha = 0.0f;
|
||||
|
||||
entry.cb = NULL;
|
||||
entry.duration = ANIMATION_CURSOR_DURATION;
|
||||
entry.easing_enum = EASING_OUT_QUAD;
|
||||
entry.subject = &ozone->animations.cursor_alpha;
|
||||
entry.tag = tag;
|
||||
entry.target_value = 1.0f;
|
||||
entry.userdata = NULL;
|
||||
|
||||
menu_animation_push(&entry);
|
||||
}
|
||||
|
||||
unsigned ozone_get_selected_sidebar_y_position(ozone_handle_t *ozone)
|
||||
{
|
||||
return ozone->categories_selection_ptr * 65 + (ozone->categories_selection_ptr > ozone->system_tab_end ? 30 : 0);
|
||||
}
|
||||
|
||||
unsigned ozone_get_sidebar_height(ozone_handle_t *ozone)
|
||||
{
|
||||
return (ozone->system_tab_end + 1 + (ozone->horizontal_list ? ozone->horizontal_list->size : 0)) * 65
|
||||
+ (ozone->horizontal_list && ozone->horizontal_list->size > 0 ? 30 : 0);
|
||||
}
|
||||
|
||||
void ozone_sidebar_goto(ozone_handle_t *ozone, unsigned new_selection)
|
||||
{
|
||||
unsigned video_info_height;
|
||||
|
||||
video_driver_get_size(NULL, &video_info_height);
|
||||
|
||||
struct menu_animation_ctx_entry entry;
|
||||
|
||||
menu_animation_ctx_tag tag = (uintptr_t)ozone;
|
||||
|
||||
if (ozone->categories_selection_ptr != new_selection)
|
||||
{
|
||||
ozone->categories_active_idx_old = ozone->categories_selection_ptr;
|
||||
ozone->categories_selection_ptr = new_selection;
|
||||
|
||||
ozone->cursor_in_sidebar_old = ozone->cursor_in_sidebar;
|
||||
|
||||
menu_animation_kill_by_tag(&tag);
|
||||
}
|
||||
|
||||
/* Cursor animation */
|
||||
ozone->animations.cursor_alpha = 0.0f;
|
||||
|
||||
entry.cb = NULL;
|
||||
entry.duration = ANIMATION_CURSOR_DURATION;
|
||||
entry.easing_enum = EASING_OUT_QUAD;
|
||||
entry.subject = &ozone->animations.cursor_alpha;
|
||||
entry.tag = tag;
|
||||
entry.target_value = 1.0f;
|
||||
entry.userdata = NULL;
|
||||
|
||||
menu_animation_push(&entry);
|
||||
|
||||
/* Scroll animation */
|
||||
float new_scroll = 0;
|
||||
float selected_position_y = ozone_get_selected_sidebar_y_position(ozone);
|
||||
float current_selection_middle_onscreen = ENTRIES_START_Y - 10 + ozone->animations.scroll_y_sidebar + selected_position_y + 65 / 2;
|
||||
float bottom_boundary = video_info_height - 87 - 78;
|
||||
float entries_middle = video_info_height/2;
|
||||
float entries_height = ozone_get_sidebar_height(ozone);
|
||||
|
||||
if (current_selection_middle_onscreen != entries_middle)
|
||||
new_scroll = ozone->animations.scroll_y_sidebar - (current_selection_middle_onscreen - entries_middle);
|
||||
|
||||
if (new_scroll + entries_height < bottom_boundary)
|
||||
new_scroll = -(30 + entries_height - bottom_boundary);
|
||||
|
||||
if (new_scroll > 0)
|
||||
new_scroll = 0;
|
||||
|
||||
entry.cb = NULL;
|
||||
entry.duration = ANIMATION_CURSOR_DURATION;
|
||||
entry.easing_enum = EASING_OUT_QUAD;
|
||||
entry.subject = &ozone->animations.scroll_y_sidebar;
|
||||
entry.tag = tag;
|
||||
entry.target_value = new_scroll;
|
||||
entry.userdata = NULL;
|
||||
|
||||
menu_animation_push(&entry);
|
||||
|
||||
if (new_selection > ozone->system_tab_end)
|
||||
{
|
||||
ozone_change_tab(ozone, MENU_ENUM_LABEL_HORIZONTAL_MENU, MENU_SETTING_HORIZONTAL_MENU);
|
||||
}
|
||||
else
|
||||
{
|
||||
ozone_change_tab(ozone, ozone_system_tabs_idx[ozone->tabs[new_selection]], ozone_system_tabs_type[ozone->tabs[new_selection]]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void ozone_change_tab(ozone_handle_t *ozone,
|
||||
enum msg_hash_enums tab,
|
||||
enum menu_settings_type type)
|
||||
{
|
||||
file_list_t *menu_stack = menu_entries_get_menu_stack_ptr(0);
|
||||
size_t stack_size;
|
||||
menu_ctx_list_t list_info;
|
||||
file_list_t *selection_buf = menu_entries_get_selection_buf_ptr(0);
|
||||
size_t selection = menu_navigation_get_selection();
|
||||
menu_file_list_cbs_t *cbs = selection_buf ?
|
||||
(menu_file_list_cbs_t*)file_list_get_actiondata_at_offset(selection_buf,
|
||||
selection) : NULL;
|
||||
|
||||
list_info.type = MENU_LIST_HORIZONTAL;
|
||||
list_info.action = MENU_ACTION_LEFT;
|
||||
|
||||
stack_size = menu_stack->size;
|
||||
|
||||
if (menu_stack->list[stack_size - 1].label)
|
||||
free(menu_stack->list[stack_size - 1].label);
|
||||
menu_stack->list[stack_size - 1].label = NULL;
|
||||
|
||||
menu_stack->list[stack_size - 1].label =
|
||||
strdup(msg_hash_to_str(tab));
|
||||
menu_stack->list[stack_size - 1].type =
|
||||
type;
|
||||
|
||||
menu_driver_list_cache(&list_info);
|
||||
|
||||
if (cbs && cbs->action_content_list_switch)
|
||||
cbs->action_content_list_switch(selection_buf, menu_stack, "", "", 0);
|
||||
}
|
||||
|
||||
void ozone_init_horizontal_list(ozone_handle_t *ozone)
|
||||
{
|
||||
menu_displaylist_info_t info;
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
menu_displaylist_info_init(&info);
|
||||
|
||||
info.list = ozone->horizontal_list;
|
||||
info.path = strdup(
|
||||
settings->paths.directory_playlist);
|
||||
info.label = strdup(
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_CONTENT_COLLECTION_LIST));
|
||||
info.exts = strdup(
|
||||
file_path_str(FILE_PATH_LPL_EXTENSION_NO_DOT));
|
||||
info.type_default = FILE_TYPE_PLAIN;
|
||||
info.enum_idx = MENU_ENUM_LABEL_CONTENT_COLLECTION_LIST;
|
||||
|
||||
if (settings->bools.menu_content_show_playlists && !string_is_empty(info.path))
|
||||
{
|
||||
if (menu_displaylist_ctl(DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL, &info))
|
||||
{
|
||||
size_t i;
|
||||
for (i = 0; i < ozone->horizontal_list->size; i++)
|
||||
{
|
||||
ozone_node_t *node = ozone_alloc_node();
|
||||
file_list_set_userdata(ozone->horizontal_list, i, node);
|
||||
}
|
||||
|
||||
menu_displaylist_process(&info);
|
||||
}
|
||||
}
|
||||
|
||||
menu_displaylist_info_free(&info);
|
||||
}
|
||||
|
||||
void ozone_refresh_horizontal_list(ozone_handle_t *ozone)
|
||||
{
|
||||
ozone_context_destroy_horizontal_list(ozone);
|
||||
if (ozone->horizontal_list)
|
||||
{
|
||||
ozone_free_list_nodes(ozone->horizontal_list, false);
|
||||
file_list_free(ozone->horizontal_list);
|
||||
}
|
||||
ozone->horizontal_list = NULL;
|
||||
|
||||
menu_driver_ctl(RARCH_MENU_CTL_SET_PREVENT_POPULATE, NULL);
|
||||
|
||||
ozone->horizontal_list = (file_list_t*)
|
||||
calloc(1, sizeof(file_list_t));
|
||||
|
||||
if (ozone->horizontal_list)
|
||||
ozone_init_horizontal_list(ozone);
|
||||
|
||||
ozone_context_reset_horizontal_list(ozone);
|
||||
}
|
||||
|
||||
void ozone_context_reset_horizontal_list(ozone_handle_t *ozone)
|
||||
{
|
||||
unsigned i;
|
||||
const char *title;
|
||||
char title_noext[255];
|
||||
|
||||
size_t list_size = ozone_list_get_size(ozone, MENU_LIST_HORIZONTAL);
|
||||
|
||||
for (i = 0; i < list_size; i++)
|
||||
{
|
||||
const char *path = NULL;
|
||||
ozone_node_t *node = (ozone_node_t*)file_list_get_userdata_at_offset(ozone->horizontal_list, i);
|
||||
|
||||
if (!node)
|
||||
{
|
||||
node = ozone_alloc_node();
|
||||
if (!node)
|
||||
continue;
|
||||
}
|
||||
|
||||
file_list_get_at_offset(ozone->horizontal_list, i,
|
||||
&path, NULL, NULL, NULL);
|
||||
|
||||
if (!path)
|
||||
continue;
|
||||
|
||||
if (!strstr(path, file_path_str(FILE_PATH_LPL_EXTENSION)))
|
||||
continue;
|
||||
|
||||
{
|
||||
struct texture_image ti;
|
||||
char *sysname = (char*)
|
||||
malloc(PATH_MAX_LENGTH * sizeof(char));
|
||||
char *texturepath = (char*)
|
||||
malloc(PATH_MAX_LENGTH * sizeof(char));
|
||||
char *content_texturepath = (char*)
|
||||
malloc(PATH_MAX_LENGTH * sizeof(char));
|
||||
char *icons_path = (char*)
|
||||
malloc(PATH_MAX_LENGTH * sizeof(char));
|
||||
|
||||
strlcpy(icons_path, ozone->icons_path, PATH_MAX_LENGTH * sizeof(char));
|
||||
|
||||
sysname[0] = texturepath[0] = content_texturepath[0] = '\0';
|
||||
|
||||
fill_pathname_base_noext(sysname, path,
|
||||
PATH_MAX_LENGTH * sizeof(char));
|
||||
|
||||
fill_pathname_join_concat(texturepath, icons_path, sysname,
|
||||
file_path_str(FILE_PATH_PNG_EXTENSION),
|
||||
PATH_MAX_LENGTH * sizeof(char));
|
||||
|
||||
/* If the playlist icon doesn't exist return default */
|
||||
|
||||
if (!filestream_exists(texturepath))
|
||||
fill_pathname_join_concat(texturepath, icons_path, "default",
|
||||
file_path_str(FILE_PATH_PNG_EXTENSION),
|
||||
PATH_MAX_LENGTH * sizeof(char));
|
||||
|
||||
ti.width = 0;
|
||||
ti.height = 0;
|
||||
ti.pixels = NULL;
|
||||
ti.supports_rgba = video_driver_supports_rgba();
|
||||
|
||||
if (image_texture_load(&ti, texturepath))
|
||||
{
|
||||
if(ti.pixels)
|
||||
{
|
||||
video_driver_texture_unload(&node->icon);
|
||||
video_driver_texture_load(&ti,
|
||||
TEXTURE_FILTER_MIPMAP_LINEAR, &node->icon);
|
||||
}
|
||||
|
||||
image_texture_free(&ti);
|
||||
}
|
||||
|
||||
fill_pathname_join_delim(sysname, sysname,
|
||||
file_path_str(FILE_PATH_CONTENT_BASENAME), '-',
|
||||
PATH_MAX_LENGTH * sizeof(char));
|
||||
strlcat(content_texturepath, icons_path, PATH_MAX_LENGTH * sizeof(char));
|
||||
|
||||
strlcat(content_texturepath, path_default_slash(), PATH_MAX_LENGTH * sizeof(char));
|
||||
strlcat(content_texturepath, sysname, PATH_MAX_LENGTH * sizeof(char));
|
||||
|
||||
/* If the content icon doesn't exist return default-content */
|
||||
if (!filestream_exists(content_texturepath))
|
||||
{
|
||||
strlcat(icons_path, path_default_slash(), PATH_MAX_LENGTH * sizeof(char));
|
||||
strlcat(icons_path, "default", PATH_MAX_LENGTH * sizeof(char));
|
||||
fill_pathname_join_delim(content_texturepath, icons_path,
|
||||
file_path_str(FILE_PATH_CONTENT_BASENAME), '-',
|
||||
PATH_MAX_LENGTH * sizeof(char));
|
||||
}
|
||||
|
||||
if (image_texture_load(&ti, content_texturepath))
|
||||
{
|
||||
if(ti.pixels)
|
||||
{
|
||||
video_driver_texture_unload(&node->content_icon);
|
||||
video_driver_texture_load(&ti,
|
||||
TEXTURE_FILTER_MIPMAP_LINEAR, &node->content_icon);
|
||||
}
|
||||
|
||||
image_texture_free(&ti);
|
||||
}
|
||||
|
||||
/* Console name */
|
||||
menu_entries_get_at_offset(
|
||||
ozone->horizontal_list,
|
||||
i,
|
||||
&title, NULL, NULL, NULL, NULL);
|
||||
|
||||
fill_pathname_base_noext(title_noext, title, sizeof(title_noext));
|
||||
|
||||
/* Format : "Vendor - Console"
|
||||
Remove everything before the hyphen
|
||||
and the subsequent space */
|
||||
char *chr = title_noext;
|
||||
bool hyphen_found = false;
|
||||
|
||||
while (true)
|
||||
{
|
||||
if (*chr == '-')
|
||||
{
|
||||
hyphen_found = true;
|
||||
break;
|
||||
}
|
||||
else if (*chr == '\0')
|
||||
break;
|
||||
|
||||
chr++;
|
||||
}
|
||||
|
||||
if (hyphen_found)
|
||||
chr += 2;
|
||||
else
|
||||
chr = title_noext;
|
||||
|
||||
node->console_name = strdup(chr);
|
||||
|
||||
free(sysname);
|
||||
free(texturepath);
|
||||
free(content_texturepath);
|
||||
free(icons_path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ozone_context_destroy_horizontal_list(ozone_handle_t *ozone)
|
||||
{
|
||||
unsigned i;
|
||||
size_t list_size = ozone_list_get_size(ozone, MENU_LIST_HORIZONTAL);
|
||||
|
||||
for (i = 0; i < list_size; i++)
|
||||
{
|
||||
const char *path = NULL;
|
||||
ozone_node_t *node = (ozone_node_t*)file_list_get_userdata_at_offset(ozone->horizontal_list, i);
|
||||
|
||||
if (!node)
|
||||
continue;
|
||||
|
||||
file_list_get_at_offset(ozone->horizontal_list, i,
|
||||
&path, NULL, NULL, NULL);
|
||||
|
||||
if (!path || !strstr(path, file_path_str(FILE_PATH_LPL_EXTENSION)))
|
||||
continue;
|
||||
|
||||
video_driver_texture_unload(&node->icon);
|
||||
video_driver_texture_unload(&node->content_icon);
|
||||
}
|
||||
}
|
||||
|
||||
bool ozone_is_playlist(ozone_handle_t *ozone)
|
||||
{
|
||||
bool is_playlist;
|
||||
|
||||
switch (ozone->categories_selection_ptr)
|
||||
{
|
||||
case OZONE_SYSTEM_TAB_MAIN:
|
||||
case OZONE_SYSTEM_TAB_SETTINGS:
|
||||
case OZONE_SYSTEM_TAB_ADD:
|
||||
is_playlist = false;
|
||||
break;
|
||||
case OZONE_SYSTEM_TAB_HISTORY:
|
||||
case OZONE_SYSTEM_TAB_FAVORITES:
|
||||
case OZONE_SYSTEM_TAB_MUSIC:
|
||||
#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
|
||||
case OZONE_SYSTEM_TAB_VIDEO:
|
||||
#endif
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
case OZONE_SYSTEM_TAB_IMAGES:
|
||||
#endif
|
||||
#ifdef HAVE_NETWORKING
|
||||
case OZONE_SYSTEM_TAB_NETPLAY:
|
||||
#endif
|
||||
default:
|
||||
is_playlist = true;
|
||||
break;
|
||||
}
|
||||
|
||||
return is_playlist && ozone->depth == 1;
|
||||
}
|
55
menu/drivers/ozone/ozone_sidebar.h
Normal file
55
menu/drivers/ozone/ozone_sidebar.h
Normal file
@ -0,0 +1,55 @@
|
||||
/* RetroArch - A frontend for libretro.
|
||||
* Copyright (C) 2011-2017 - Daniel De Matteis
|
||||
* Copyright (C) 2014-2017 - Jean-André Santoni
|
||||
* Copyright (C) 2016-2017 - Brad Parker
|
||||
* Copyright (C) 2018 - Alfredo Monclús
|
||||
* Copyright (C) 2018 - natinusala
|
||||
*
|
||||
* RetroArch is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU General Public License as published by the Free Software Found-
|
||||
* ation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with RetroArch.
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef _OZONE_SIDEBAR_H
|
||||
#define _OZONE_SIDEBAR_H
|
||||
|
||||
#include "ozone_texture.h"
|
||||
|
||||
enum
|
||||
{
|
||||
OZONE_SYSTEM_TAB_MAIN = 0,
|
||||
OZONE_SYSTEM_TAB_SETTINGS,
|
||||
OZONE_SYSTEM_TAB_HISTORY,
|
||||
OZONE_SYSTEM_TAB_FAVORITES,
|
||||
OZONE_SYSTEM_TAB_MUSIC,
|
||||
#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
|
||||
OZONE_SYSTEM_TAB_VIDEO,
|
||||
#endif
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
OZONE_SYSTEM_TAB_IMAGES,
|
||||
#endif
|
||||
#ifdef HAVE_NETWORKING
|
||||
OZONE_SYSTEM_TAB_NETPLAY,
|
||||
#endif
|
||||
OZONE_SYSTEM_TAB_ADD,
|
||||
|
||||
/* End of this enum - use the last one to determine num of possible tabs */
|
||||
OZONE_SYSTEM_TAB_LAST
|
||||
};
|
||||
|
||||
extern enum msg_hash_enums ozone_system_tabs_value[OZONE_SYSTEM_TAB_LAST];
|
||||
|
||||
extern enum menu_settings_type ozone_system_tabs_type[OZONE_SYSTEM_TAB_LAST];
|
||||
|
||||
extern enum msg_hash_enums ozone_system_tabs_idx[OZONE_SYSTEM_TAB_LAST];
|
||||
|
||||
extern unsigned ozone_system_tabs_icons[OZONE_SYSTEM_TAB_LAST];
|
||||
|
||||
#endif
|
841
menu/drivers/ozone/ozone_texture.c
Normal file
841
menu/drivers/ozone/ozone_texture.c
Normal file
@ -0,0 +1,841 @@
|
||||
/* RetroArch - A frontend for libretro.
|
||||
* Copyright (C) 2011-2017 - Daniel De Matteis
|
||||
* Copyright (C) 2014-2017 - Jean-André Santoni
|
||||
* Copyright (C) 2016-2017 - Brad Parker
|
||||
* Copyright (C) 2018 - Alfredo Monclús
|
||||
* Copyright (C) 2018 - natinusala
|
||||
*
|
||||
* RetroArch is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU General Public License as published by the Free Software Found-
|
||||
* ation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with RetroArch.
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "ozone.h"
|
||||
#include "ozone_texture.h"
|
||||
|
||||
#include <streams/file_stream.h>
|
||||
#include <file/file_path.h>
|
||||
|
||||
#include "../../menu_driver.h"
|
||||
|
||||
#include "../../../cheevos/badges.h"
|
||||
|
||||
menu_texture_item ozone_entries_icon_get_texture(ozone_handle_t *ozone,
|
||||
enum msg_hash_enums enum_idx, unsigned type, bool active)
|
||||
{
|
||||
switch (enum_idx)
|
||||
{
|
||||
case MENU_ENUM_LABEL_CORE_OPTIONS:
|
||||
case MENU_ENUM_LABEL_NAVIGATION_BROWSER_FILTER_SUPPORTED_EXTENSIONS_ENABLE:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CORE_OPTIONS];
|
||||
case MENU_ENUM_LABEL_ADD_TO_FAVORITES:
|
||||
case MENU_ENUM_LABEL_ADD_TO_FAVORITES_PLAYLIST:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_ADD_FAVORITE];
|
||||
case MENU_ENUM_LABEL_RESET_CORE_ASSOCIATION:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_UNDO];
|
||||
case MENU_ENUM_LABEL_CORE_INPUT_REMAPPING_OPTIONS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_REMAPPING_OPTIONS];
|
||||
case MENU_ENUM_LABEL_CORE_CHEAT_OPTIONS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CHEAT_OPTIONS];
|
||||
case MENU_ENUM_LABEL_DISK_OPTIONS:
|
||||
case MENU_ENUM_LABEL_DISK_CYCLE_TRAY_STATUS:
|
||||
case MENU_ENUM_LABEL_DISK_IMAGE_APPEND:
|
||||
case MENU_ENUM_LABEL_DISK_INDEX:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_DISK_OPTIONS];
|
||||
case MENU_ENUM_LABEL_SHADER_OPTIONS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SHADER_OPTIONS];
|
||||
case MENU_ENUM_LABEL_ACHIEVEMENT_LIST:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_ACHIEVEMENT_LIST];
|
||||
case MENU_ENUM_LABEL_ACHIEVEMENT_LIST_HARDCORE:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_ACHIEVEMENT_LIST];
|
||||
case MENU_ENUM_LABEL_SAVE_STATE:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SAVESTATE];
|
||||
case MENU_ENUM_LABEL_LOAD_STATE:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_LOADSTATE];
|
||||
case MENU_ENUM_LABEL_PARENT_DIRECTORY:
|
||||
case MENU_ENUM_LABEL_UNDO_LOAD_STATE:
|
||||
case MENU_ENUM_LABEL_UNDO_SAVE_STATE:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_UNDO];
|
||||
case MENU_ENUM_LABEL_TAKE_SCREENSHOT:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SCREENSHOT];
|
||||
case MENU_ENUM_LABEL_DELETE_ENTRY:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CLOSE];
|
||||
case MENU_ENUM_LABEL_RESTART_CONTENT:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RELOAD];
|
||||
case MENU_ENUM_LABEL_RENAME_ENTRY:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RENAME];
|
||||
case MENU_ENUM_LABEL_RESUME_CONTENT:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RESUME];
|
||||
case MENU_ENUM_LABEL_FAVORITES:
|
||||
case MENU_ENUM_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_FOLDER];
|
||||
case MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RDB];
|
||||
|
||||
|
||||
/* Menu collection submenus*/
|
||||
case MENU_ENUM_LABEL_CONTENT_COLLECTION_LIST:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_ZIP];
|
||||
case MENU_ENUM_LABEL_GOTO_FAVORITES:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_FAVORITE];
|
||||
case MENU_ENUM_LABEL_GOTO_IMAGES:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_IMAGE];
|
||||
case MENU_ENUM_LABEL_GOTO_VIDEO:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_MOVIE];
|
||||
case MENU_ENUM_LABEL_GOTO_MUSIC:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_MUSIC];
|
||||
|
||||
/* Menu icons */
|
||||
case MENU_ENUM_LABEL_CONTENT_SETTINGS:
|
||||
case MENU_ENUM_LABEL_UPDATE_ASSETS:
|
||||
case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_GAME:
|
||||
case MENU_ENUM_LABEL_REMAP_FILE_SAVE_GAME:
|
||||
case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_GAME:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_QUICKMENU];
|
||||
case MENU_ENUM_LABEL_START_CORE:
|
||||
case MENU_ENUM_LABEL_CHEAT_START_OR_CONT:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RUN];
|
||||
case MENU_ENUM_LABEL_CORE_LIST:
|
||||
case MENU_ENUM_LABEL_CORE_SETTINGS:
|
||||
case MENU_ENUM_LABEL_CORE_UPDATER_LIST:
|
||||
case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_CORE:
|
||||
case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CORE:
|
||||
case MENU_ENUM_LABEL_REMAP_FILE_SAVE_CORE:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CORE];
|
||||
case MENU_ENUM_LABEL_LOAD_CONTENT_LIST:
|
||||
case MENU_ENUM_LABEL_SCAN_FILE:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_FILE];
|
||||
case MENU_ENUM_LABEL_ONLINE_UPDATER:
|
||||
case MENU_ENUM_LABEL_UPDATER_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_UPDATER];
|
||||
case MENU_ENUM_LABEL_UPDATE_LAKKA:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_MAIN_MENU];
|
||||
case MENU_ENUM_LABEL_UPDATE_CHEATS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CHEAT_OPTIONS];
|
||||
case MENU_ENUM_LABEL_THUMBNAILS_UPDATER_LIST:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_IMAGE];
|
||||
case MENU_ENUM_LABEL_UPDATE_OVERLAYS:
|
||||
case MENU_ENUM_LABEL_ONSCREEN_OVERLAY_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_OVERLAY];
|
||||
case MENU_ENUM_LABEL_UPDATE_CG_SHADERS:
|
||||
case MENU_ENUM_LABEL_UPDATE_GLSL_SHADERS:
|
||||
case MENU_ENUM_LABEL_UPDATE_SLANG_SHADERS:
|
||||
case MENU_ENUM_LABEL_AUTO_SHADERS_ENABLE:
|
||||
case MENU_ENUM_LABEL_VIDEO_SHADER_PARAMETERS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SHADER_OPTIONS];
|
||||
case MENU_ENUM_LABEL_INFORMATION:
|
||||
case MENU_ENUM_LABEL_INFORMATION_LIST:
|
||||
case MENU_ENUM_LABEL_SYSTEM_INFORMATION:
|
||||
case MENU_ENUM_LABEL_UPDATE_CORE_INFO_FILES:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INFO];
|
||||
case MENU_ENUM_LABEL_UPDATE_DATABASES:
|
||||
case MENU_ENUM_LABEL_DATABASE_MANAGER_LIST:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RDB];
|
||||
case MENU_ENUM_LABEL_CURSOR_MANAGER_LIST:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CURSOR];
|
||||
case MENU_ENUM_LABEL_HELP_LIST:
|
||||
case MENU_ENUM_LABEL_HELP_CONTROLS:
|
||||
case MENU_ENUM_LABEL_HELP_LOADING_CONTENT:
|
||||
case MENU_ENUM_LABEL_HELP_SCANNING_CONTENT:
|
||||
case MENU_ENUM_LABEL_HELP_WHAT_IS_A_CORE:
|
||||
case MENU_ENUM_LABEL_HELP_CHANGE_VIRTUAL_GAMEPAD:
|
||||
case MENU_ENUM_LABEL_HELP_AUDIO_VIDEO_TROUBLESHOOTING:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_HELP];
|
||||
case MENU_ENUM_LABEL_QUIT_RETROARCH:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_EXIT];
|
||||
/* Settings icons*/
|
||||
case MENU_ENUM_LABEL_DRIVER_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_DRIVERS];
|
||||
case MENU_ENUM_LABEL_VIDEO_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_VIDEO];
|
||||
case MENU_ENUM_LABEL_AUDIO_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_AUDIO];
|
||||
case MENU_ENUM_LABEL_AUDIO_MIXER_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_MIXER];
|
||||
case MENU_ENUM_LABEL_INPUT_SETTINGS:
|
||||
case MENU_ENUM_LABEL_UPDATE_AUTOCONFIG_PROFILES:
|
||||
case MENU_ENUM_LABEL_INPUT_USER_1_BINDS:
|
||||
case MENU_ENUM_LABEL_INPUT_USER_2_BINDS:
|
||||
case MENU_ENUM_LABEL_INPUT_USER_3_BINDS:
|
||||
case MENU_ENUM_LABEL_INPUT_USER_4_BINDS:
|
||||
case MENU_ENUM_LABEL_INPUT_USER_5_BINDS:
|
||||
case MENU_ENUM_LABEL_INPUT_USER_6_BINDS:
|
||||
case MENU_ENUM_LABEL_INPUT_USER_7_BINDS:
|
||||
case MENU_ENUM_LABEL_INPUT_USER_8_BINDS:
|
||||
case MENU_ENUM_LABEL_INPUT_USER_9_BINDS:
|
||||
case MENU_ENUM_LABEL_INPUT_USER_10_BINDS:
|
||||
case MENU_ENUM_LABEL_INPUT_USER_11_BINDS:
|
||||
case MENU_ENUM_LABEL_INPUT_USER_12_BINDS:
|
||||
case MENU_ENUM_LABEL_INPUT_USER_13_BINDS:
|
||||
case MENU_ENUM_LABEL_INPUT_USER_14_BINDS:
|
||||
case MENU_ENUM_LABEL_INPUT_USER_15_BINDS:
|
||||
case MENU_ENUM_LABEL_INPUT_USER_16_BINDS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_SETTINGS];
|
||||
case MENU_ENUM_LABEL_LATENCY_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_LATENCY];
|
||||
case MENU_ENUM_LABEL_SAVING_SETTINGS:
|
||||
case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG:
|
||||
case MENU_ENUM_LABEL_SAVE_NEW_CONFIG:
|
||||
case MENU_ENUM_LABEL_CONFIG_SAVE_ON_EXIT:
|
||||
case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_AS:
|
||||
case MENU_ENUM_LABEL_CHEAT_FILE_SAVE_AS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SAVING];
|
||||
case MENU_ENUM_LABEL_LOGGING_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_LOG];
|
||||
case MENU_ENUM_LABEL_FRAME_THROTTLE_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_FRAMESKIP];
|
||||
case MENU_ENUM_LABEL_QUICK_MENU_START_RECORDING:
|
||||
case MENU_ENUM_LABEL_RECORDING_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RECORD];
|
||||
case MENU_ENUM_LABEL_QUICK_MENU_START_STREAMING:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_STREAM];
|
||||
case MENU_ENUM_LABEL_QUICK_MENU_STOP_STREAMING:
|
||||
case MENU_ENUM_LABEL_QUICK_MENU_STOP_RECORDING:
|
||||
case MENU_ENUM_LABEL_CHEAT_DELETE_ALL:
|
||||
case MENU_ENUM_LABEL_REMAP_FILE_REMOVE_CORE:
|
||||
case MENU_ENUM_LABEL_REMAP_FILE_REMOVE_GAME:
|
||||
case MENU_ENUM_LABEL_REMAP_FILE_REMOVE_CONTENT_DIR:
|
||||
case MENU_ENUM_LABEL_CORE_DELETE:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CLOSE];
|
||||
case MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_OSD];
|
||||
case MENU_ENUM_LABEL_SHOW_WIMP:
|
||||
case MENU_ENUM_LABEL_USER_INTERFACE_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_UI];
|
||||
#ifdef HAVE_LAKKA_SWITCH
|
||||
case MENU_ENUM_LABEL_SWITCH_GPU_PROFILE:
|
||||
case MENU_ENUM_LABEL_SWITCH_CPU_PROFILE:
|
||||
#endif
|
||||
case MENU_ENUM_LABEL_POWER_MANAGEMENT_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_POWER];
|
||||
case MENU_ENUM_LABEL_RETRO_ACHIEVEMENTS_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_ACHIEVEMENTS];
|
||||
case MENU_ENUM_LABEL_NETWORK_INFORMATION:
|
||||
case MENU_ENUM_LABEL_NETWORK_SETTINGS:
|
||||
case MENU_ENUM_LABEL_WIFI_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_NETWORK];
|
||||
case MENU_ENUM_LABEL_PLAYLIST_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_PLAYLIST];
|
||||
case MENU_ENUM_LABEL_USER_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_USER];
|
||||
case MENU_ENUM_LABEL_DIRECTORY_SETTINGS:
|
||||
case MENU_ENUM_LABEL_SCAN_DIRECTORY:
|
||||
case MENU_ENUM_LABEL_REMAP_FILE_SAVE_CONTENT_DIR:
|
||||
case MENU_ENUM_LABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CONTENT_DIR:
|
||||
case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_SAVE_PARENT:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_FOLDER];
|
||||
case MENU_ENUM_LABEL_PRIVACY_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_PRIVACY];
|
||||
|
||||
case MENU_ENUM_LABEL_REWIND_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_REWIND];
|
||||
case MENU_ENUM_LABEL_QUICK_MENU_OVERRIDE_OPTIONS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_OVERRIDE];
|
||||
case MENU_ENUM_LABEL_ONSCREEN_NOTIFICATIONS_SETTINGS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_NOTIFICATIONS];
|
||||
#ifdef HAVE_NETWORKING
|
||||
case MENU_ENUM_LABEL_NETPLAY_ENABLE_HOST:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RUN];
|
||||
case MENU_ENUM_LABEL_NETPLAY_DISCONNECT:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CLOSE];
|
||||
case MENU_ENUM_LABEL_NETPLAY_ENABLE_CLIENT:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_ROOM];
|
||||
case MENU_ENUM_LABEL_NETPLAY_REFRESH_ROOMS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RELOAD];
|
||||
#endif
|
||||
case MENU_ENUM_LABEL_REBOOT:
|
||||
case MENU_ENUM_LABEL_RESET_TO_DEFAULT_CONFIG:
|
||||
case MENU_ENUM_LABEL_CHEAT_RELOAD_CHEATS:
|
||||
case MENU_ENUM_LABEL_RESTART_RETROARCH:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RELOAD];
|
||||
case MENU_ENUM_LABEL_SHUTDOWN:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SHUTDOWN];
|
||||
case MENU_ENUM_LABEL_CONFIGURATIONS:
|
||||
case MENU_ENUM_LABEL_GAME_SPECIFIC_OPTIONS:
|
||||
case MENU_ENUM_LABEL_REMAP_FILE_LOAD:
|
||||
case MENU_ENUM_LABEL_AUTO_OVERRIDES_ENABLE:
|
||||
case MENU_ENUM_LABEL_AUTO_REMAPS_ENABLE:
|
||||
case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET:
|
||||
case MENU_ENUM_LABEL_CHEAT_FILE_LOAD:
|
||||
case MENU_ENUM_LABEL_CHEAT_FILE_LOAD_APPEND:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_LOADSTATE];
|
||||
case MENU_ENUM_LABEL_CHEAT_APPLY_CHANGES:
|
||||
case MENU_ENUM_LABEL_SHADER_APPLY_CHANGES:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CHECKMARK];
|
||||
case MENU_ENUM_LABEL_CHEAT_ADD_NEW_AFTER:
|
||||
case MENU_ENUM_LABEL_CHEAT_ADD_NEW_BEFORE:
|
||||
case MENU_ENUM_LABEL_CHEAT_ADD_NEW_TOP:
|
||||
case MENU_ENUM_LABEL_CHEAT_ADD_NEW_BOTTOM:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_MENU_ADD];
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch(type)
|
||||
{
|
||||
case FILE_TYPE_DIRECTORY:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_FOLDER];
|
||||
case FILE_TYPE_PLAIN:
|
||||
case FILE_TYPE_IN_CARCHIVE:
|
||||
case FILE_TYPE_RPL_ENTRY:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_FILE];
|
||||
case FILE_TYPE_SHADER:
|
||||
case FILE_TYPE_SHADER_PRESET:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SHADER_OPTIONS];
|
||||
case FILE_TYPE_CARCHIVE:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_ZIP];
|
||||
case FILE_TYPE_MUSIC:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_MUSIC];
|
||||
case FILE_TYPE_IMAGE:
|
||||
case FILE_TYPE_IMAGEVIEWER:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_IMAGE];
|
||||
case FILE_TYPE_MOVIE:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_MOVIE];
|
||||
case FILE_TYPE_CORE:
|
||||
case FILE_TYPE_DIRECT_LOAD:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CORE];
|
||||
case FILE_TYPE_RDB:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RDB];
|
||||
case FILE_TYPE_CURSOR:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CURSOR];
|
||||
case FILE_TYPE_PLAYLIST_ENTRY:
|
||||
case MENU_SETTING_ACTION_RUN:
|
||||
case MENU_SETTING_ACTION_RESUME_ACHIEVEMENTS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RESUME];
|
||||
case MENU_SETTING_ACTION_CLOSE:
|
||||
case MENU_SETTING_ACTION_DELETE_ENTRY:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CLOSE];
|
||||
case MENU_SETTING_ACTION_SAVESTATE:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SAVESTATE];
|
||||
case MENU_SETTING_ACTION_LOADSTATE:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_LOADSTATE];
|
||||
case FILE_TYPE_RDB_ENTRY:
|
||||
case MENU_SETTING_ACTION_CORE_INFORMATION:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CORE_INFO];
|
||||
case MENU_SETTING_ACTION_CORE_OPTIONS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CORE_OPTIONS];
|
||||
case MENU_SETTING_ACTION_CORE_INPUT_REMAPPING_OPTIONS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_REMAPPING_OPTIONS];
|
||||
case MENU_SETTING_ACTION_CORE_CHEAT_OPTIONS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CHEAT_OPTIONS];
|
||||
case MENU_SETTING_ACTION_CORE_DISK_OPTIONS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_DISK_OPTIONS];
|
||||
case MENU_SETTING_ACTION_CORE_SHADER_OPTIONS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SHADER_OPTIONS];
|
||||
case MENU_SETTING_ACTION_SCREENSHOT:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SCREENSHOT];
|
||||
case MENU_SETTING_ACTION_RESET:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RELOAD];
|
||||
case MENU_SETTING_ACTION_PAUSE_ACHIEVEMENTS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_PAUSE];
|
||||
case MENU_SETTING_GROUP:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SETTING];
|
||||
#ifdef HAVE_LAKKA_SWITCH
|
||||
case MENU_SET_SWITCH_BRIGHTNESS:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_BRIGHTNESS];
|
||||
#endif
|
||||
case MENU_INFO_MESSAGE:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_CORE_INFO];
|
||||
case MENU_WIFI:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_WIFI];
|
||||
#ifdef HAVE_NETWORKING
|
||||
case MENU_ROOM:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_ROOM];
|
||||
case MENU_ROOM_LAN:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_ROOM_LAN];
|
||||
case MENU_ROOM_RELAY:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_ROOM_RELAY];
|
||||
#endif
|
||||
case MENU_SETTING_ACTION:
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SETTING];
|
||||
}
|
||||
|
||||
#ifdef HAVE_CHEEVOS
|
||||
if (
|
||||
(type >= MENU_SETTINGS_CHEEVOS_START) &&
|
||||
(type < MENU_SETTINGS_NETPLAY_ROOMS_START)
|
||||
)
|
||||
{
|
||||
int new_id = type - MENU_SETTINGS_CHEEVOS_START;
|
||||
if (get_badge_texture(new_id) != 0)
|
||||
return get_badge_texture(new_id);
|
||||
/* Should be replaced with placeholder badge icon. */
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_ACHIEVEMENTS];
|
||||
}
|
||||
#endif
|
||||
|
||||
if (
|
||||
(type >= MENU_SETTINGS_INPUT_BEGIN) &&
|
||||
(type <= MENU_SETTINGS_INPUT_DESC_END)
|
||||
)
|
||||
{
|
||||
unsigned input_id;
|
||||
if (type < MENU_SETTINGS_INPUT_DESC_BEGIN)
|
||||
{
|
||||
input_id = MENU_SETTINGS_INPUT_BEGIN;
|
||||
if ( type == input_id + 2)
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_SETTINGS];
|
||||
if ( type == input_id + 4)
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_RELOAD];
|
||||
if ( type == input_id + 5)
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SAVING];
|
||||
input_id = input_id + 7;
|
||||
}
|
||||
else
|
||||
{
|
||||
input_id = MENU_SETTINGS_INPUT_DESC_BEGIN;
|
||||
while (type > (input_id + 23))
|
||||
{
|
||||
input_id = (input_id + 24) ;
|
||||
}
|
||||
}
|
||||
if ( type == input_id )
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_BTN_D];
|
||||
if ( type == (input_id + 1))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_BTN_L];
|
||||
if ( type == (input_id + 2))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_SELECT];
|
||||
if ( type == (input_id + 3))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_START];
|
||||
if ( type == (input_id + 4))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_DPAD_U];
|
||||
if ( type == (input_id + 5))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_DPAD_D];
|
||||
if ( type == (input_id + 6))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_DPAD_L];
|
||||
if ( type == (input_id + 7))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_DPAD_R];
|
||||
if ( type == (input_id + 8))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_BTN_R];
|
||||
if ( type == (input_id + 9))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_BTN_U];
|
||||
if ( type == (input_id + 10))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_LB];
|
||||
if ( type == (input_id + 11))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_RB];
|
||||
if ( type == (input_id + 12))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_LT];
|
||||
if ( type == (input_id + 13))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_RT];
|
||||
if ( type == (input_id + 14))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_P];
|
||||
if ( type == (input_id + 15))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_P];
|
||||
if ( type == (input_id + 16))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_R];
|
||||
if ( type == (input_id + 17))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_L];
|
||||
if ( type == (input_id + 18))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_D];
|
||||
if ( type == (input_id + 19))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_U];
|
||||
if ( type == (input_id + 20))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_R];
|
||||
if ( type == (input_id + 21))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_L];
|
||||
if ( type == (input_id + 22))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_D];
|
||||
if ( type == (input_id + 23))
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_U];
|
||||
}
|
||||
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_SUBSETTING];
|
||||
}
|
||||
|
||||
const char *ozone_entries_icon_texture_path(ozone_handle_t *ozone, unsigned id)
|
||||
{
|
||||
char icon_fullpath[255];
|
||||
char *icon_name = NULL;
|
||||
|
||||
switch (id)
|
||||
{
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_MAIN_MENU:
|
||||
#if defined(HAVE_LAKKA)
|
||||
icon_name = "lakka.png";
|
||||
break;
|
||||
#else
|
||||
icon_name = "retroarch.png";
|
||||
break;
|
||||
#endif
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_SETTINGS:
|
||||
icon_name = "settings.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_HISTORY:
|
||||
icon_name = "history.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_FAVORITES:
|
||||
icon_name = "favorites.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_ADD_FAVORITE:
|
||||
icon_name = "add-favorite.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_MUSICS:
|
||||
icon_name = "musics.png";
|
||||
break;
|
||||
#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_MOVIES:
|
||||
icon_name = "movies.png";
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_IMAGES:
|
||||
icon_name = "images.png";
|
||||
break;
|
||||
#endif
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_SETTING:
|
||||
icon_name = "setting.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_SUBSETTING:
|
||||
icon_name = "subsetting.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_ARROW:
|
||||
icon_name = "arrow.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_RUN:
|
||||
icon_name = "run.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_CLOSE:
|
||||
icon_name = "close.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_RESUME:
|
||||
icon_name = "resume.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_CLOCK:
|
||||
icon_name = "clock.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_BATTERY_FULL:
|
||||
icon_name = "battery-full.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_BATTERY_CHARGING:
|
||||
icon_name = "battery-charging.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_POINTER:
|
||||
icon_name = "pointer.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_SAVESTATE:
|
||||
icon_name = "savestate.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_LOADSTATE:
|
||||
icon_name = "loadstate.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_UNDO:
|
||||
icon_name = "undo.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_CORE_INFO:
|
||||
icon_name = "core-infos.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_WIFI:
|
||||
icon_name = "wifi.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_CORE_OPTIONS:
|
||||
icon_name = "core-options.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_REMAPPING_OPTIONS:
|
||||
icon_name = "core-input-remapping-options.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_CHEAT_OPTIONS:
|
||||
icon_name = "core-cheat-options.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_DISK_OPTIONS:
|
||||
icon_name = "core-disk-options.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_SHADER_OPTIONS:
|
||||
icon_name = "core-shader-options.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_ACHIEVEMENT_LIST:
|
||||
icon_name = "achievement-list.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_SCREENSHOT:
|
||||
icon_name = "screenshot.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_RELOAD:
|
||||
icon_name = "reload.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_RENAME:
|
||||
icon_name = "rename.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_FILE:
|
||||
icon_name = "file.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_FOLDER:
|
||||
icon_name = "folder.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_ZIP:
|
||||
icon_name = "zip.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_MUSIC:
|
||||
icon_name = "music.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_FAVORITE:
|
||||
icon_name = "favorites-content.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_IMAGE:
|
||||
icon_name = "image.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_MOVIE:
|
||||
icon_name = "movie.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_CORE:
|
||||
icon_name = "core.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_RDB:
|
||||
icon_name = "database.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_CURSOR:
|
||||
icon_name = "cursor.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_SWITCH_ON:
|
||||
icon_name = "on.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_SWITCH_OFF:
|
||||
icon_name = "off.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_ADD:
|
||||
icon_name = "add.png";
|
||||
break;
|
||||
#ifdef HAVE_NETWORKING
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_NETPLAY:
|
||||
icon_name = "netplay.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_ROOM:
|
||||
icon_name = "menu_room.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_ROOM_LAN:
|
||||
icon_name = "menu_room_lan.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_ROOM_RELAY:
|
||||
icon_name = "menu_room_relay.png";
|
||||
break;
|
||||
#endif
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_KEY:
|
||||
icon_name = "key.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_KEY_HOVER:
|
||||
icon_name = "key-hover.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_DIALOG_SLICE:
|
||||
icon_name = "dialog-slice.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_ACHIEVEMENTS:
|
||||
icon_name = "menu_achievements.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_AUDIO:
|
||||
icon_name = "menu_audio.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_DRIVERS:
|
||||
icon_name = "menu_drivers.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_EXIT:
|
||||
icon_name = "menu_exit.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_FRAMESKIP:
|
||||
icon_name = "menu_frameskip.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_HELP:
|
||||
icon_name = "menu_help.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INFO:
|
||||
icon_name = "menu_info.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_SETTINGS:
|
||||
icon_name = "Libretro - Pad.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_LATENCY:
|
||||
icon_name = "menu_latency.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_NETWORK:
|
||||
icon_name = "menu_network.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_POWER:
|
||||
icon_name = "menu_power.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_RECORD:
|
||||
icon_name = "menu_record.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_SAVING:
|
||||
icon_name = "menu_saving.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_UPDATER:
|
||||
icon_name = "menu_updater.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_VIDEO:
|
||||
icon_name = "menu_video.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_MIXER:
|
||||
icon_name = "menu_mixer.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_LOG:
|
||||
icon_name = "menu_log.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_OSD:
|
||||
icon_name = "menu_osd.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_UI:
|
||||
icon_name = "menu_ui.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_USER:
|
||||
icon_name = "menu_user.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_PRIVACY:
|
||||
icon_name = "menu_privacy.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_PLAYLIST:
|
||||
icon_name = "menu_playlist.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_QUICKMENU:
|
||||
icon_name = "menu_quickmenu.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_REWIND:
|
||||
icon_name = "menu_rewind.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_OVERLAY:
|
||||
icon_name = "menu_overlay.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_OVERRIDE:
|
||||
icon_name = "menu_override.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_NOTIFICATIONS:
|
||||
icon_name = "menu_notifications.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_STREAM:
|
||||
icon_name = "menu_stream.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_SHUTDOWN:
|
||||
icon_name = "menu_shutdown.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_DPAD_U:
|
||||
icon_name = "input_DPAD-U.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_DPAD_D:
|
||||
icon_name = "input_DPAD-D.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_DPAD_L:
|
||||
icon_name = "input_DPAD-L.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_DPAD_R:
|
||||
icon_name = "input_DPAD-R.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_U:
|
||||
icon_name = "input_STCK-U.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_D:
|
||||
icon_name = "input_STCK-D.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_L:
|
||||
icon_name = "input_STCK-L.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_R:
|
||||
icon_name = "input_STCK-R.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_P:
|
||||
icon_name = "input_STCK-P.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_BTN_U:
|
||||
icon_name = "input_BTN-U.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_BTN_D:
|
||||
icon_name = "input_BTN-D.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_BTN_L:
|
||||
icon_name = "input_BTN-L.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_BTN_R:
|
||||
icon_name = "input_BTN-R.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_LB:
|
||||
icon_name = "input_LB.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_RB:
|
||||
icon_name = "input_RB.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_LT:
|
||||
icon_name = "input_LT.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_RT:
|
||||
icon_name = "input_RT.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_SELECT:
|
||||
icon_name = "input_SELECT.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_INPUT_START:
|
||||
icon_name = "input_START.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_CHECKMARK:
|
||||
icon_name = "menu_check.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_MENU_ADD:
|
||||
icon_name = "menu_add.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_BRIGHTNESS:
|
||||
icon_name = "menu_brightnes.png";
|
||||
break;
|
||||
case OZONE_ENTRIES_ICONS_TEXTURE_PAUSE:
|
||||
icon_name = "menu_pause.png";
|
||||
break;
|
||||
}
|
||||
|
||||
fill_pathname_join(
|
||||
icon_fullpath,
|
||||
ozone->icons_path,
|
||||
icon_name,
|
||||
sizeof(icon_fullpath)
|
||||
);
|
||||
|
||||
if (!filestream_exists(icon_fullpath))
|
||||
{
|
||||
return "subsetting.png";
|
||||
}
|
||||
else
|
||||
return icon_name;
|
||||
}
|
||||
|
||||
void ozone_unload_theme_textures(ozone_handle_t *ozone)
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
|
||||
for (j = 0; j < ozone_themes_count; j++)
|
||||
{
|
||||
ozone_theme_t *theme = ozone_themes[j];
|
||||
for (i = 0; i < OZONE_THEME_TEXTURE_LAST; i++)
|
||||
video_driver_texture_unload(&theme->textures[i]);
|
||||
}
|
||||
}
|
||||
|
||||
bool ozone_reset_theme_textures(ozone_handle_t *ozone)
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
char theme_path[255];
|
||||
bool result = true;
|
||||
|
||||
for (j = 0; j < ozone_themes_count; j++)
|
||||
{
|
||||
ozone_theme_t *theme = ozone_themes[j];
|
||||
|
||||
fill_pathname_join(
|
||||
theme_path,
|
||||
ozone->png_path,
|
||||
theme->name,
|
||||
sizeof(theme_path)
|
||||
);
|
||||
|
||||
for (i = 0; i < OZONE_THEME_TEXTURE_LAST; i++)
|
||||
{
|
||||
char filename[PATH_MAX_LENGTH];
|
||||
strlcpy(filename, OZONE_THEME_TEXTURES_FILES[i], sizeof(filename));
|
||||
strlcat(filename, ".png", sizeof(filename));
|
||||
|
||||
if (!menu_display_reset_textures_list(filename, theme_path, &theme->textures[i], TEXTURE_FILTER_MIPMAP_LINEAR))
|
||||
result = false;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
210
menu/drivers/ozone/ozone_texture.h
Normal file
210
menu/drivers/ozone/ozone_texture.h
Normal file
@ -0,0 +1,210 @@
|
||||
/* RetroArch - A frontend for libretro.
|
||||
* Copyright (C) 2011-2017 - Daniel De Matteis
|
||||
* Copyright (C) 2014-2017 - Jean-André Santoni
|
||||
* Copyright (C) 2016-2017 - Brad Parker
|
||||
* Copyright (C) 2018 - Alfredo Monclús
|
||||
* Copyright (C) 2018 - natinusala
|
||||
*
|
||||
* RetroArch is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU General Public License as published by the Free Software Found-
|
||||
* ation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with RetroArch.
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef _OZONE_TEXTURE_H
|
||||
#define _OZONE_TEXTURE_H
|
||||
|
||||
#include "ozone.h"
|
||||
#include "ozone_texture.h"
|
||||
|
||||
#include "../../menu_driver.h"
|
||||
|
||||
enum OZONE_TEXTURE {
|
||||
OZONE_TEXTURE_RETROARCH = 0,
|
||||
OZONE_TEXTURE_CURSOR_BORDER,
|
||||
|
||||
OZONE_TEXTURE_LAST
|
||||
};
|
||||
|
||||
static char *OZONE_TEXTURES_FILES[OZONE_TEXTURE_LAST] = {
|
||||
"retroarch",
|
||||
"cursor_border"
|
||||
};
|
||||
|
||||
enum OZONE_THEME_TEXTURES {
|
||||
OZONE_THEME_TEXTURE_BUTTON_A = 0,
|
||||
OZONE_THEME_TEXTURE_BUTTON_B,
|
||||
OZONE_THEME_TEXTURE_SWITCH,
|
||||
OZONE_THEME_TEXTURE_CHECK,
|
||||
|
||||
OZONE_THEME_TEXTURE_CURSOR_NO_BORDER,
|
||||
OZONE_THEME_TEXTURE_CURSOR_STATIC,
|
||||
|
||||
OZONE_THEME_TEXTURE_LAST
|
||||
};
|
||||
|
||||
static char *OZONE_THEME_TEXTURES_FILES[OZONE_THEME_TEXTURE_LAST] = {
|
||||
"button_a",
|
||||
"button_b",
|
||||
"switch",
|
||||
"check",
|
||||
"cursor_noborder",
|
||||
"cursor_static"
|
||||
};
|
||||
|
||||
enum OZONE_TAB_TEXTURES {
|
||||
OZONE_TAB_TEXTURE_MAIN_MENU = 0,
|
||||
OZONE_TAB_TEXTURE_SETTINGS,
|
||||
OZONE_TAB_TEXTURE_HISTORY,
|
||||
OZONE_TAB_TEXTURE_FAVORITES,
|
||||
OZONE_TAB_TEXTURE_MUSIC,
|
||||
OZONE_TAB_TEXTURE_VIDEO,
|
||||
OZONE_TAB_TEXTURE_IMAGE,
|
||||
OZONE_TAB_TEXTURE_NETWORK,
|
||||
OZONE_TAB_TEXTURE_SCAN_CONTENT,
|
||||
|
||||
OZONE_TAB_TEXTURE_LAST
|
||||
};
|
||||
|
||||
static char *OZONE_TAB_TEXTURES_FILES[OZONE_TAB_TEXTURE_LAST] = {
|
||||
"retroarch",
|
||||
"settings",
|
||||
"history",
|
||||
"favorites",
|
||||
"music",
|
||||
"video",
|
||||
"image",
|
||||
"netplay",
|
||||
"add"
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_MAIN_MENU = 0,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_SETTINGS,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_HISTORY,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_FAVORITES,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_MUSICS,
|
||||
#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_MOVIES,
|
||||
#endif
|
||||
#ifdef HAVE_NETWORKING
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_NETPLAY,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_ROOM,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_ROOM_LAN,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_ROOM_RELAY,
|
||||
#endif
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_IMAGES,
|
||||
#endif
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_SETTING,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_SUBSETTING,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_ARROW,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_RUN,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_CLOSE,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_RESUME,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_SAVESTATE,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_LOADSTATE,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_UNDO,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_CORE_INFO,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_WIFI,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_CORE_OPTIONS,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_REMAPPING_OPTIONS,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_CHEAT_OPTIONS,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_DISK_OPTIONS,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_SHADER_OPTIONS,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_ACHIEVEMENT_LIST,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_SCREENSHOT,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_RELOAD,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_RENAME,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_FILE,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_FOLDER,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_ZIP,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_FAVORITE,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_ADD_FAVORITE,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_MUSIC,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_IMAGE,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_MOVIE,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_CORE,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_RDB,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_CURSOR,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_SWITCH_ON,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_SWITCH_OFF,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_CLOCK,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_BATTERY_FULL,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_BATTERY_CHARGING,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_POINTER,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_ADD,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_KEY,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_KEY_HOVER,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_DIALOG_SLICE,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_ACHIEVEMENTS,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_AUDIO,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_EXIT,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_FRAMESKIP,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INFO,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_HELP,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_NETWORK,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_POWER,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_SAVING,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_UPDATER,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_VIDEO,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_RECORD,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_SETTINGS,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_MIXER,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_LOG,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_OSD,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_UI,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_USER,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_PRIVACY,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_LATENCY,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_DRIVERS,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_PLAYLIST,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_QUICKMENU,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_REWIND,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_OVERLAY,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_OVERRIDE,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_NOTIFICATIONS,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_STREAM,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_SHUTDOWN,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_DPAD_U,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_DPAD_D,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_DPAD_L,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_DPAD_R,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_U,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_D,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_L,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_R,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_P,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_SELECT,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_START,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_BTN_U,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_BTN_D,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_BTN_L,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_BTN_R,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_LB,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_RB,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_LT,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_INPUT_RT,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_CHECKMARK,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_MENU_ADD,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_BRIGHTNESS,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_PAUSE,
|
||||
OZONE_ENTRIES_ICONS_TEXTURE_LAST
|
||||
};
|
||||
|
||||
const char *ozone_entries_icon_texture_path(ozone_handle_t *ozone, unsigned id);
|
||||
|
||||
menu_texture_item ozone_entries_icon_get_texture(ozone_handle_t *ozone,
|
||||
enum msg_hash_enums enum_idx, unsigned type, bool active);
|
||||
|
||||
bool ozone_reset_theme_textures(ozone_handle_t *ozone);
|
||||
void ozone_unload_theme_textures(ozone_handle_t *ozone);
|
||||
|
||||
#endif
|
136
menu/drivers/ozone/ozone_theme.c
Normal file
136
menu/drivers/ozone/ozone_theme.c
Normal file
@ -0,0 +1,136 @@
|
||||
/* RetroArch - A frontend for libretro.
|
||||
* Copyright (C) 2011-2018 - Daniel De Matteis
|
||||
* Copyright (C) 2018 - natinusala
|
||||
*
|
||||
* RetroArch is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU General Public License as published by the Free Software Found-
|
||||
* ation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with RetroArch.
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "ozone.h"
|
||||
#include "ozone_theme.h"
|
||||
#include "ozone_display.h"
|
||||
|
||||
ozone_theme_t ozone_theme_light = {
|
||||
COLOR_HEX_TO_FLOAT(0xEBEBEB, 1.00),
|
||||
ozone_background_libretro_running_light,
|
||||
|
||||
COLOR_HEX_TO_FLOAT(0x2B2B2B, 1.00),
|
||||
COLOR_HEX_TO_FLOAT(0x333333, 1.00),
|
||||
COLOR_HEX_TO_FLOAT(0xFFFFFF, 1.00),
|
||||
COLOR_HEX_TO_FLOAT(0x10BEC5, 1.00),
|
||||
COLOR_HEX_TO_FLOAT(0xCDCDCD, 1.00),
|
||||
COLOR_HEX_TO_FLOAT(0x333333, 1.00),
|
||||
COLOR_HEX_TO_FLOAT(0x374CFF, 1.00),
|
||||
COLOR_HEX_TO_FLOAT(0xF0F0F0, 1.00),
|
||||
|
||||
0x333333FF,
|
||||
0x374CFFFF,
|
||||
0x878787FF,
|
||||
|
||||
ozone_sidebar_background_light,
|
||||
ozone_sidebar_gradient_top_light,
|
||||
ozone_sidebar_gradient_bottom_light,
|
||||
|
||||
ozone_border_0_light,
|
||||
ozone_border_1_light,
|
||||
|
||||
{0},
|
||||
|
||||
"light"
|
||||
};
|
||||
|
||||
ozone_theme_t ozone_theme_dark = {
|
||||
COLOR_HEX_TO_FLOAT(0x2D2D2D, 1.00),
|
||||
ozone_background_libretro_running_dark,
|
||||
|
||||
COLOR_HEX_TO_FLOAT(0xFFFFFF, 1.00),
|
||||
COLOR_HEX_TO_FLOAT(0xFFFFFF, 1.00),
|
||||
COLOR_HEX_TO_FLOAT(0x212227, 1.00),
|
||||
COLOR_HEX_TO_FLOAT(0x2DA3CB, 1.00),
|
||||
COLOR_HEX_TO_FLOAT(0x51514F, 1.00),
|
||||
COLOR_HEX_TO_FLOAT(0xFFFFFF, 1.00),
|
||||
COLOR_HEX_TO_FLOAT(0x00D9AE, 1.00),
|
||||
COLOR_HEX_TO_FLOAT(0x464646, 1.00),
|
||||
|
||||
0xFFFFFFFF,
|
||||
0x00FFC5FF,
|
||||
0x9F9FA1FF,
|
||||
|
||||
ozone_sidebar_background_dark,
|
||||
ozone_sidebar_gradient_top_dark,
|
||||
ozone_sidebar_gradient_bottom_dark,
|
||||
|
||||
ozone_border_0_dark,
|
||||
ozone_border_1_dark,
|
||||
|
||||
{0},
|
||||
|
||||
"dark"
|
||||
};
|
||||
|
||||
ozone_theme_t *ozone_themes[] = {
|
||||
&ozone_theme_light,
|
||||
&ozone_theme_dark
|
||||
};
|
||||
|
||||
unsigned ozone_themes_count = sizeof(ozone_themes) / sizeof(ozone_themes[0]);
|
||||
unsigned last_color_theme = 0;
|
||||
bool last_use_preferred_system_color_theme = false;
|
||||
ozone_theme_t *ozone_default_theme = &ozone_theme_light; /* also used as a tag for cursor animation */
|
||||
|
||||
void ozone_set_color_theme(ozone_handle_t *ozone, unsigned color_theme)
|
||||
{
|
||||
ozone_theme_t *theme = ozone_default_theme;
|
||||
|
||||
if (!ozone)
|
||||
return;
|
||||
|
||||
switch (color_theme)
|
||||
{
|
||||
case 1:
|
||||
theme = &ozone_theme_dark;
|
||||
break;
|
||||
case 0:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
ozone->theme = theme;
|
||||
|
||||
memcpy(ozone->theme_dynamic.selection_border, ozone->theme->selection_border, sizeof(ozone->theme_dynamic.selection_border));
|
||||
memcpy(ozone->theme_dynamic.selection, ozone->theme->selection, sizeof(ozone->theme_dynamic.selection));
|
||||
memcpy(ozone->theme_dynamic.entries_border, ozone->theme->entries_border, sizeof(ozone->theme_dynamic.entries_border));
|
||||
memcpy(ozone->theme_dynamic.entries_icon, ozone->theme->entries_icon, sizeof(ozone->theme_dynamic.entries_icon));
|
||||
memcpy(ozone->theme_dynamic.entries_checkmark, ozone_pure_white, sizeof(ozone->theme_dynamic.entries_checkmark));
|
||||
memcpy(ozone->theme_dynamic.cursor_alpha, ozone_pure_white, sizeof(ozone->theme_dynamic.cursor_alpha));
|
||||
memcpy(ozone->theme_dynamic.message_background, ozone->theme->message_background, sizeof(ozone->theme_dynamic.message_background));
|
||||
|
||||
ozone_restart_cursor_animation(ozone);
|
||||
|
||||
last_color_theme = color_theme;
|
||||
}
|
||||
|
||||
unsigned ozone_get_system_theme()
|
||||
{
|
||||
unsigned ret = 0;
|
||||
#ifdef HAVE_LIBNX
|
||||
if (R_SUCCEEDED(setsysInitialize()))
|
||||
{
|
||||
ColorSetId theme;
|
||||
setsysGetColorSetId(&theme);
|
||||
ret = (theme == ColorSetId_Dark) ? 1 : 0;
|
||||
setsysExit();
|
||||
}
|
||||
|
||||
return ret;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
171
menu/drivers/ozone/ozone_theme.h
Normal file
171
menu/drivers/ozone/ozone_theme.h
Normal file
@ -0,0 +1,171 @@
|
||||
/* RetroArch - A frontend for libretro.
|
||||
* Copyright (C) 2011-2018 - Daniel De Matteis
|
||||
* Copyright (C) 2018 - natinusala
|
||||
*
|
||||
* RetroArch is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU General Public License as published by the Free Software Found-
|
||||
* ation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with RetroArch.
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef _OZONE_THEME_H
|
||||
#define _OZONE_THEME_H
|
||||
|
||||
#include "ozone.h"
|
||||
#include "ozone_texture.h"
|
||||
|
||||
#include "../../../retroarch.h"
|
||||
|
||||
#define HEX_R(hex) ((hex >> 16) & 0xFF) * (1.0f / 255.0f)
|
||||
#define HEX_G(hex) ((hex >> 8 ) & 0xFF) * (1.0f / 255.0f)
|
||||
#define HEX_B(hex) ((hex >> 0 ) & 0xFF) * (1.0f / 255.0f)
|
||||
|
||||
#define COLOR_HEX_TO_FLOAT(hex, alpha) { \
|
||||
HEX_R(hex), HEX_G(hex), HEX_B(hex), alpha, \
|
||||
HEX_R(hex), HEX_G(hex), HEX_B(hex), alpha, \
|
||||
HEX_R(hex), HEX_G(hex), HEX_B(hex), alpha, \
|
||||
HEX_R(hex), HEX_G(hex), HEX_B(hex), alpha \
|
||||
}
|
||||
|
||||
#define COLOR_TEXT_ALPHA(color, alpha) (color & 0xFFFFFF00) | alpha
|
||||
|
||||
static float ozone_pure_white[16] = {
|
||||
1.00, 1.00, 1.00, 1.00,
|
||||
1.00, 1.00, 1.00, 1.00,
|
||||
1.00, 1.00, 1.00, 1.00,
|
||||
1.00, 1.00, 1.00, 1.00,
|
||||
};
|
||||
|
||||
static float ozone_backdrop[16] = {
|
||||
0.00, 0.00, 0.00, 0.75,
|
||||
0.00, 0.00, 0.00, 0.75,
|
||||
0.00, 0.00, 0.00, 0.75,
|
||||
0.00, 0.00, 0.00, 0.75,
|
||||
};
|
||||
|
||||
static float ozone_osk_backdrop[16] = {
|
||||
0.00, 0.00, 0.00, 0.15,
|
||||
0.00, 0.00, 0.00, 0.15,
|
||||
0.00, 0.00, 0.00, 0.15,
|
||||
0.00, 0.00, 0.00, 0.15,
|
||||
};
|
||||
|
||||
static float ozone_sidebar_background_light[16] = {
|
||||
0.94, 0.94, 0.94, 1.00,
|
||||
0.94, 0.94, 0.94, 1.00,
|
||||
0.94, 0.94, 0.94, 1.00,
|
||||
0.94, 0.94, 0.94, 1.00,
|
||||
};
|
||||
|
||||
static float ozone_sidebar_gradient_top_light[16] = {
|
||||
0.94, 0.94, 0.94, 1.00,
|
||||
0.94, 0.94, 0.94, 1.00,
|
||||
0.922, 0.922, 0.922, 1.00,
|
||||
0.922, 0.922, 0.922, 1.00,
|
||||
};
|
||||
|
||||
static float ozone_sidebar_gradient_bottom_light[16] = {
|
||||
0.922, 0.922, 0.922, 1.00,
|
||||
0.922, 0.922, 0.922, 1.00,
|
||||
0.94, 0.94, 0.94, 1.00,
|
||||
0.94, 0.94, 0.94, 1.00,
|
||||
};
|
||||
|
||||
static float ozone_sidebar_background_dark[16] = {
|
||||
0.2, 0.2, 0.2, 1.00,
|
||||
0.2, 0.2, 0.2, 1.00,
|
||||
0.2, 0.2, 0.2, 1.00,
|
||||
0.2, 0.2, 0.2, 1.00,
|
||||
};
|
||||
|
||||
static float ozone_sidebar_gradient_top_dark[16] = {
|
||||
0.2, 0.2, 0.2, 1.00,
|
||||
0.2, 0.2, 0.2, 1.00,
|
||||
0.18, 0.18, 0.18, 1.00,
|
||||
0.18, 0.18, 0.18, 1.00,
|
||||
};
|
||||
|
||||
static float ozone_sidebar_gradient_bottom_dark[16] = {
|
||||
0.18, 0.18, 0.18, 1.00,
|
||||
0.18, 0.18, 0.18, 1.00,
|
||||
0.2, 0.2, 0.2, 1.00,
|
||||
0.2, 0.2, 0.2, 1.00,
|
||||
};
|
||||
|
||||
static float ozone_border_0_light[16] = COLOR_HEX_TO_FLOAT(0x50EFD9, 1.00);
|
||||
static float ozone_border_1_light[16] = COLOR_HEX_TO_FLOAT(0x0DB6D5, 1.00);
|
||||
|
||||
static float ozone_border_0_dark[16] = COLOR_HEX_TO_FLOAT(0x198AC6, 1.00);
|
||||
static float ozone_border_1_dark[16] = COLOR_HEX_TO_FLOAT(0x89F1F2, 1.00);
|
||||
|
||||
static float ozone_background_libretro_running_light[16] = {
|
||||
0.690, 0.690, 0.690, 0.75,
|
||||
0.690, 0.690, 0.690, 0.75,
|
||||
0.922, 0.922, 0.922, 1.0,
|
||||
0.922, 0.922, 0.922, 1.0
|
||||
};
|
||||
|
||||
static float ozone_background_libretro_running_dark[16] = {
|
||||
0.176, 0.176, 0.176, 0.75,
|
||||
0.176, 0.176, 0.176, 0.75,
|
||||
0.178, 0.178, 0.178, 1.0,
|
||||
0.178, 0.178, 0.178, 1.0,
|
||||
};
|
||||
|
||||
typedef struct ozone_theme
|
||||
{
|
||||
/* Background color */
|
||||
float background[16];
|
||||
float *background_libretro_running;
|
||||
|
||||
/* Float colors for quads and icons */
|
||||
float header_footer_separator[16];
|
||||
float text[16];
|
||||
float selection[16];
|
||||
float selection_border[16];
|
||||
float entries_border[16];
|
||||
float entries_icon[16];
|
||||
float text_selected[16];
|
||||
float message_background[16];
|
||||
|
||||
/* RGBA colors for text */
|
||||
uint32_t text_rgba;
|
||||
uint32_t text_selected_rgba;
|
||||
uint32_t text_sublabel_rgba;
|
||||
|
||||
/* Sidebar color */
|
||||
float *sidebar_background;
|
||||
float *sidebar_top_gradient;
|
||||
float *sidebar_bottom_gradient;
|
||||
|
||||
/*
|
||||
Fancy cursor colors
|
||||
*/
|
||||
float *cursor_border_0;
|
||||
float *cursor_border_1;
|
||||
|
||||
menu_texture_item textures[OZONE_THEME_TEXTURE_LAST];
|
||||
|
||||
const char *name;
|
||||
} ozone_theme_t;
|
||||
|
||||
extern ozone_theme_t ozone_theme_light;
|
||||
extern ozone_theme_t ozone_theme_dark;
|
||||
|
||||
extern ozone_theme_t *ozone_themes[];
|
||||
|
||||
extern unsigned ozone_themes_count;
|
||||
extern unsigned last_color_theme;
|
||||
extern bool last_use_preferred_system_color_theme;
|
||||
extern ozone_theme_t *ozone_default_theme;
|
||||
|
||||
void ozone_set_color_theme(ozone_handle_t *ozone, unsigned color_theme);
|
||||
unsigned ozone_get_system_theme();
|
||||
|
||||
#endif
|
1460
menu/drivers/xmb.c
1460
menu/drivers/xmb.c
File diff suppressed because it is too large
Load Diff
@ -714,14 +714,13 @@ bool menu_animation_ctl(enum menu_animation_ctl_state state, void *data)
|
||||
|
||||
void menu_timer_start(menu_timer_t *timer, menu_timer_ctx_entry_t *timer_entry)
|
||||
{
|
||||
menu_animation_ctx_entry_t entry;
|
||||
menu_animation_ctx_tag tag = (uintptr_t) timer;
|
||||
|
||||
menu_timer_kill(timer);
|
||||
|
||||
*timer = 0.0f;
|
||||
|
||||
menu_animation_ctx_entry_t entry;
|
||||
|
||||
entry.easing_enum = EASING_LINEAR;
|
||||
entry.tag = tag;
|
||||
entry.duration = timer_entry->duration;
|
||||
|
@ -45,6 +45,7 @@ enum
|
||||
ACTION_OK_DL_DEFAULT = 0,
|
||||
ACTION_OK_DL_DROPDOWN_BOX_LIST,
|
||||
ACTION_OK_DL_DROPDOWN_BOX_LIST_SPECIAL,
|
||||
ACTION_OK_DL_DROPDOWN_BOX_LIST_RESOLUTION,
|
||||
ACTION_OK_DL_OPEN_ARCHIVE,
|
||||
ACTION_OK_DL_OPEN_ARCHIVE_DETECT_CORE,
|
||||
ACTION_OK_DL_MUSIC,
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* RetroArch - A frontend for libretro.
|
||||
* Copyright (C) 2011-2017 - Daniel De Matteis
|
||||
* Copyright (C) 2014-2017 - Jean-André Santoni
|
||||
* Copyright (C) 2015-2017 - Andrés Suárez
|
||||
* Copyright (C) 2014-2017 - Jean-André Santoni
|
||||
* Copyright (C) 2015-2017 - Andrés Suárez
|
||||
* Copyright (C) 2016-2017 - Brad Parker
|
||||
*
|
||||
* RetroArch is free software: you can redistribute it and/or modify it under the terms
|
||||
@ -6546,9 +6546,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_SUSPEND_SCREENSAVER_ENABLE,
|
||||
PARSE_ONLY_BOOL, false);
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_SCREEN_RESOLUTION,
|
||||
PARSE_ACTION, false);
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_PAL60_ENABLE,
|
||||
PARSE_ONLY_BOOL, false);
|
||||
@ -6570,6 +6567,9 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_VIDEO_WINDOWED_FULLSCREEN,
|
||||
PARSE_ONLY_BOOL, false);
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_SCREEN_RESOLUTION,
|
||||
PARSE_ACTION, false);
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_VIDEO_FULLSCREEN_X,
|
||||
PARSE_ONLY_UINT, false);
|
||||
@ -6609,18 +6609,21 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_VIDEO_SCALE,
|
||||
PARSE_ONLY_FLOAT, false);
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_VIDEO_WINDOW_WIDTH,
|
||||
PARSE_ONLY_UINT, false);
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_VIDEO_WINDOW_HEIGHT,
|
||||
PARSE_ONLY_UINT, false);
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_VIDEO_WINDOW_OPACITY,
|
||||
PARSE_ONLY_UINT, false);
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_VIDEO_WINDOW_SHOW_DECORATIONS,
|
||||
PARSE_ONLY_BOOL, false);
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_VIDEO_WINDOW_SAVE_POSITION,
|
||||
PARSE_ONLY_BOOL, false);
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_VIDEO_WINDOW_WIDTH,
|
||||
PARSE_ONLY_UINT, false);
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_VIDEO_WINDOW_HEIGHT,
|
||||
PARSE_ONLY_UINT, false);
|
||||
menu_displaylist_parse_settings_enum(menu, info,
|
||||
MENU_ENUM_LABEL_VIDEO_SCALE_INTEGER,
|
||||
PARSE_ONLY_BOOL, false);
|
||||
@ -8322,56 +8325,204 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist
|
||||
info->need_push = true;
|
||||
}
|
||||
break;
|
||||
case DISPLAYLIST_DROPDOWN_LIST_SPECIAL:
|
||||
case DISPLAYLIST_DROPDOWN_LIST_RESOLUTION:
|
||||
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
||||
{
|
||||
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
||||
unsigned i, size = 0;
|
||||
struct video_display_config *list = video_display_server_get_resolution_list(&size);
|
||||
|
||||
if (strstr(info->path, "core_option_"))
|
||||
if (list)
|
||||
{
|
||||
struct string_list *tmp_str_list = string_split(info->path, "_");
|
||||
|
||||
if (tmp_str_list && tmp_str_list->size > 0)
|
||||
for (i = 0; i < size; i++)
|
||||
{
|
||||
core_option_manager_t *coreopts = NULL;
|
||||
char val_d[256], str[256];
|
||||
snprintf(str, sizeof(str), "%dx%d (%d Hz)", list[i].width, list[i].height, list[i].refreshrate);
|
||||
snprintf(val_d, sizeof(val_d), "%d", i);
|
||||
menu_entries_append_enum(info->list,
|
||||
str,
|
||||
val_d,
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
MENU_SETTING_DROPDOWN_ITEM_RESOLUTION, list[i].idx, 0);
|
||||
|
||||
rarch_ctl(RARCH_CTL_CORE_OPTIONS_LIST_GET, &coreopts);
|
||||
if (list[i].current)
|
||||
menu_entries_set_checked(info->list, i, true);
|
||||
}
|
||||
|
||||
if (coreopts)
|
||||
free(list);
|
||||
}
|
||||
else
|
||||
menu_entries_append_enum(info->list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_ENTRIES_TO_DISPLAY),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_NO_ENTRIES_TO_DISPLAY),
|
||||
MENU_ENUM_LABEL_NO_ENTRIES_TO_DISPLAY,
|
||||
FILE_TYPE_NONE, 0, 0);
|
||||
|
||||
}
|
||||
info->need_refresh = true;
|
||||
info->need_push = true;
|
||||
break;
|
||||
case DISPLAYLIST_DROPDOWN_LIST_SPECIAL:
|
||||
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
||||
|
||||
if (strstr(info->path, "core_option_"))
|
||||
{
|
||||
struct string_list *tmp_str_list = string_split(info->path, "_");
|
||||
|
||||
if (tmp_str_list && tmp_str_list->size > 0)
|
||||
{
|
||||
core_option_manager_t *coreopts = NULL;
|
||||
|
||||
rarch_ctl(RARCH_CTL_CORE_OPTIONS_LIST_GET, &coreopts);
|
||||
|
||||
if (coreopts)
|
||||
{
|
||||
unsigned size = (unsigned)tmp_str_list->size;
|
||||
unsigned i = atoi(tmp_str_list->elems[size-1].data);
|
||||
struct core_option *option = NULL;
|
||||
bool checked_found = false;
|
||||
unsigned checked = 0;
|
||||
const char *val = core_option_manager_get_val(coreopts, i-1);
|
||||
|
||||
i--;
|
||||
|
||||
option = (struct core_option*)&coreopts->opts[i];
|
||||
|
||||
if (option)
|
||||
{
|
||||
unsigned size = (unsigned)tmp_str_list->size;
|
||||
unsigned i = atoi(tmp_str_list->elems[size-1].data);
|
||||
struct core_option *option = NULL;
|
||||
bool checked_found = false;
|
||||
unsigned checked = 0;
|
||||
const char *val = core_option_manager_get_val(coreopts, i-1);
|
||||
|
||||
i--;
|
||||
|
||||
option = (struct core_option*)&coreopts->opts[i];
|
||||
|
||||
if (option)
|
||||
unsigned k;
|
||||
for (k = 0; k < option->vals->size; k++)
|
||||
{
|
||||
unsigned k;
|
||||
for (k = 0; k < option->vals->size; k++)
|
||||
{
|
||||
const char *str = option->vals->elems[k].data;
|
||||
const char *str = option->vals->elems[k].data;
|
||||
|
||||
if (!string_is_empty(str))
|
||||
if (!string_is_empty(str))
|
||||
{
|
||||
char val_d[256];
|
||||
snprintf(val_d, sizeof(val_d), "%d", i);
|
||||
menu_entries_append_enum(info->list,
|
||||
str,
|
||||
val_d,
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
MENU_SETTING_DROPDOWN_SETTING_CORE_OPTIONS_ITEM_SPECIAL, k, 0);
|
||||
|
||||
if (!checked_found && string_is_equal(str, val))
|
||||
{
|
||||
checked = k;
|
||||
checked_found = true;
|
||||
}
|
||||
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
if (checked_found)
|
||||
menu_entries_set_checked(info->list, checked, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
enum msg_hash_enums enum_idx = (enum msg_hash_enums)atoi(info->path);
|
||||
rarch_setting_t *setting = menu_setting_find_enum(enum_idx);
|
||||
|
||||
if (setting)
|
||||
{
|
||||
switch (setting->type)
|
||||
{
|
||||
case ST_STRING_OPTIONS:
|
||||
{
|
||||
struct string_list *tmp_str_list = string_split(setting->values, "|");
|
||||
|
||||
if (tmp_str_list && tmp_str_list->size > 0)
|
||||
{
|
||||
unsigned i;
|
||||
unsigned size = (unsigned)tmp_str_list->size;
|
||||
bool checked_found = false;
|
||||
unsigned checked = 0;
|
||||
|
||||
for (i = 0; i < size; i++)
|
||||
{
|
||||
char val_d[256];
|
||||
snprintf(val_d, sizeof(val_d), "%d", i);
|
||||
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
|
||||
menu_entries_append_enum(info->list,
|
||||
str,
|
||||
tmp_str_list->elems[i].data,
|
||||
val_d,
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
MENU_SETTING_DROPDOWN_SETTING_CORE_OPTIONS_ITEM_SPECIAL, k, 0);
|
||||
MENU_SETTING_DROPDOWN_SETTING_STRING_OPTIONS_ITEM_SPECIAL, i, 0);
|
||||
|
||||
if (!checked_found && string_is_equal(str, val))
|
||||
if (!checked_found && string_is_equal(tmp_str_list->elems[i].data, setting->value.target.string))
|
||||
{
|
||||
checked = k;
|
||||
checked = i;
|
||||
checked_found = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (checked_found)
|
||||
menu_entries_set_checked(info->list, checked, true);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ST_INT:
|
||||
{
|
||||
float i;
|
||||
int32_t orig_value = *setting->value.target.integer;
|
||||
unsigned setting_type = MENU_SETTING_DROPDOWN_SETTING_INT_ITEM_SPECIAL;
|
||||
float step = setting->step;
|
||||
double min = setting->enforce_minrange ? setting->min : 0.00;
|
||||
double max = setting->enforce_maxrange ? setting->max : 999.00;
|
||||
bool checked_found = false;
|
||||
unsigned checked = 0;
|
||||
|
||||
if (setting->get_string_representation)
|
||||
{
|
||||
for (i = min; i <= max; i += step)
|
||||
{
|
||||
char val_s[256], val_d[256];
|
||||
int val = (int)i;
|
||||
|
||||
*setting->value.target.integer = val;
|
||||
|
||||
setting->get_string_representation(setting,
|
||||
val_s, sizeof(val_s));
|
||||
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
|
||||
menu_entries_append_enum(info->list,
|
||||
val_s,
|
||||
val_d,
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
setting_type, val, 0);
|
||||
|
||||
if (!checked_found && val == orig_value)
|
||||
{
|
||||
checked = count;
|
||||
checked_found = true;
|
||||
}
|
||||
count++;
|
||||
}
|
||||
|
||||
*setting->value.target.integer = orig_value;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = min; i <= max; i += step)
|
||||
{
|
||||
char val_s[16], val_d[16];
|
||||
int val = (int)i;
|
||||
|
||||
snprintf(val_s, sizeof(val_s), "%d", val);
|
||||
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
|
||||
|
||||
menu_entries_append_enum(info->list,
|
||||
val_s,
|
||||
val_d,
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
setting_type, val, 0);
|
||||
|
||||
if (!checked_found && val == orig_value)
|
||||
{
|
||||
checked = count;
|
||||
checked_found = true;
|
||||
}
|
||||
count++;
|
||||
}
|
||||
}
|
||||
@ -8379,263 +8530,149 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist
|
||||
if (checked_found)
|
||||
menu_entries_set_checked(info->list, checked, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ST_FLOAT:
|
||||
{
|
||||
float i;
|
||||
float orig_value = *setting->value.target.fraction;
|
||||
unsigned setting_type = MENU_SETTING_DROPDOWN_SETTING_FLOAT_ITEM_SPECIAL;
|
||||
float step = setting->step;
|
||||
double min = setting->enforce_minrange ? setting->min : 0.00;
|
||||
double max = setting->enforce_maxrange ? setting->max : 999.00;
|
||||
bool checked_found = false;
|
||||
unsigned checked = 0;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
enum msg_hash_enums enum_idx = (enum msg_hash_enums)atoi(info->path);
|
||||
rarch_setting_t *setting = menu_setting_find_enum(enum_idx);
|
||||
|
||||
if (setting)
|
||||
{
|
||||
switch (setting->type)
|
||||
{
|
||||
case ST_STRING_OPTIONS:
|
||||
if (setting->get_string_representation)
|
||||
{
|
||||
struct string_list *tmp_str_list = string_split(setting->values, "|");
|
||||
|
||||
if (tmp_str_list && tmp_str_list->size > 0)
|
||||
for (i = min; i <= max; i += step)
|
||||
{
|
||||
unsigned i;
|
||||
unsigned size = (unsigned)tmp_str_list->size;
|
||||
bool checked_found = false;
|
||||
unsigned checked = 0;
|
||||
char val_s[256], val_d[256];
|
||||
|
||||
for (i = 0; i < size; i++)
|
||||
*setting->value.target.fraction = i;
|
||||
|
||||
setting->get_string_representation(setting,
|
||||
val_s, sizeof(val_s));
|
||||
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
|
||||
menu_entries_append_enum(info->list,
|
||||
val_s,
|
||||
val_d,
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
setting_type, 0, 0);
|
||||
|
||||
if (!checked_found && fabs(i - orig_value) <= 0.01f)
|
||||
{
|
||||
char val_d[256];
|
||||
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
|
||||
menu_entries_append_enum(info->list,
|
||||
tmp_str_list->elems[i].data,
|
||||
val_d,
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
MENU_SETTING_DROPDOWN_SETTING_STRING_OPTIONS_ITEM_SPECIAL, i, 0);
|
||||
|
||||
if (!checked_found && string_is_equal(tmp_str_list->elems[i].data, setting->value.target.string))
|
||||
{
|
||||
checked = i;
|
||||
checked_found = true;
|
||||
}
|
||||
checked = count;
|
||||
checked_found = true;
|
||||
}
|
||||
count++;
|
||||
}
|
||||
|
||||
if (checked_found)
|
||||
menu_entries_set_checked(info->list, checked, true);
|
||||
*setting->value.target.fraction = orig_value;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = min; i <= max; i += step)
|
||||
{
|
||||
char val_s[16], val_d[16];
|
||||
|
||||
snprintf(val_s, sizeof(val_s), "%.2f", i);
|
||||
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
|
||||
|
||||
menu_entries_append_enum(info->list,
|
||||
val_s,
|
||||
val_d,
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
setting_type, 0, 0);
|
||||
|
||||
if (!checked_found && fabs(i - orig_value) <= 0.01f)
|
||||
{
|
||||
checked = count;
|
||||
checked_found = true;
|
||||
}
|
||||
count++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case ST_INT:
|
||||
|
||||
if (checked_found)
|
||||
menu_entries_set_checked(info->list, checked, true);
|
||||
}
|
||||
break;
|
||||
case ST_UINT:
|
||||
{
|
||||
float i;
|
||||
unsigned orig_value = *setting->value.target.unsigned_integer;
|
||||
unsigned setting_type = MENU_SETTING_DROPDOWN_SETTING_UINT_ITEM_SPECIAL;
|
||||
float step = setting->step;
|
||||
double min = setting->enforce_minrange ? setting->min : 0.00;
|
||||
double max = setting->enforce_maxrange ? setting->max : 999.00;
|
||||
bool checked_found = false;
|
||||
unsigned checked = 0;
|
||||
|
||||
if (setting->get_string_representation)
|
||||
{
|
||||
float i;
|
||||
int32_t orig_value = *setting->value.target.integer;
|
||||
unsigned setting_type = MENU_SETTING_DROPDOWN_SETTING_INT_ITEM_SPECIAL;
|
||||
float step = setting->step;
|
||||
double min = setting->enforce_minrange ? setting->min : 0.00;
|
||||
double max = setting->enforce_maxrange ? setting->max : 999.00;
|
||||
bool checked_found = false;
|
||||
unsigned checked = 0;
|
||||
|
||||
if (setting->get_string_representation)
|
||||
for (i = min; i <= max; i += step)
|
||||
{
|
||||
for (i = min; i <= max; i += step)
|
||||
char val_s[256], val_d[256];
|
||||
int val = (int)i;
|
||||
|
||||
*setting->value.target.unsigned_integer = val;
|
||||
|
||||
setting->get_string_representation(setting,
|
||||
val_s, sizeof(val_s));
|
||||
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
|
||||
menu_entries_append_enum(info->list,
|
||||
val_s,
|
||||
val_d,
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
setting_type, val, 0);
|
||||
|
||||
if (!checked_found && val == orig_value)
|
||||
{
|
||||
char val_s[256], val_d[256];
|
||||
int val = (int)i;
|
||||
|
||||
*setting->value.target.integer = val;
|
||||
|
||||
setting->get_string_representation(setting,
|
||||
val_s, sizeof(val_s));
|
||||
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
|
||||
menu_entries_append_enum(info->list,
|
||||
val_s,
|
||||
val_d,
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
setting_type, val, 0);
|
||||
|
||||
if (!checked_found && val == orig_value)
|
||||
{
|
||||
checked = count;
|
||||
checked_found = true;
|
||||
}
|
||||
count++;
|
||||
}
|
||||
|
||||
*setting->value.target.integer = orig_value;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = min; i <= max; i += step)
|
||||
{
|
||||
char val_s[16], val_d[16];
|
||||
int val = (int)i;
|
||||
|
||||
snprintf(val_s, sizeof(val_s), "%d", val);
|
||||
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
|
||||
|
||||
menu_entries_append_enum(info->list,
|
||||
val_s,
|
||||
val_d,
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
setting_type, val, 0);
|
||||
|
||||
if (!checked_found && val == orig_value)
|
||||
{
|
||||
checked = count;
|
||||
checked_found = true;
|
||||
}
|
||||
count++;
|
||||
checked = count;
|
||||
checked_found = true;
|
||||
}
|
||||
count++;
|
||||
}
|
||||
|
||||
if (checked_found)
|
||||
menu_entries_set_checked(info->list, checked, true);
|
||||
*setting->value.target.unsigned_integer = orig_value;
|
||||
}
|
||||
break;
|
||||
case ST_FLOAT:
|
||||
else
|
||||
{
|
||||
float i;
|
||||
float orig_value = *setting->value.target.fraction;
|
||||
unsigned setting_type = MENU_SETTING_DROPDOWN_SETTING_FLOAT_ITEM_SPECIAL;
|
||||
float step = setting->step;
|
||||
double min = setting->enforce_minrange ? setting->min : 0.00;
|
||||
double max = setting->enforce_maxrange ? setting->max : 999.00;
|
||||
bool checked_found = false;
|
||||
unsigned checked = 0;
|
||||
|
||||
if (setting->get_string_representation)
|
||||
for (i = min; i <= max; i += step)
|
||||
{
|
||||
for (i = min; i <= max; i += step)
|
||||
char val_s[16], val_d[16];
|
||||
int val = (int)i;
|
||||
|
||||
snprintf(val_s, sizeof(val_s), "%d", val);
|
||||
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
|
||||
|
||||
menu_entries_append_enum(info->list,
|
||||
val_s,
|
||||
val_d,
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
setting_type, val, 0);
|
||||
|
||||
if (!checked_found && val == orig_value)
|
||||
{
|
||||
char val_s[256], val_d[256];
|
||||
|
||||
*setting->value.target.fraction = i;
|
||||
|
||||
setting->get_string_representation(setting,
|
||||
val_s, sizeof(val_s));
|
||||
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
|
||||
menu_entries_append_enum(info->list,
|
||||
val_s,
|
||||
val_d,
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
setting_type, 0, 0);
|
||||
|
||||
if (!checked_found && fabs(i - orig_value) <= 0.01f)
|
||||
{
|
||||
checked = count;
|
||||
checked_found = true;
|
||||
}
|
||||
count++;
|
||||
checked = count;
|
||||
checked_found = true;
|
||||
}
|
||||
|
||||
*setting->value.target.fraction = orig_value;
|
||||
count++;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = min; i <= max; i += step)
|
||||
{
|
||||
char val_s[16], val_d[16];
|
||||
|
||||
snprintf(val_s, sizeof(val_s), "%.2f", i);
|
||||
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
|
||||
|
||||
menu_entries_append_enum(info->list,
|
||||
val_s,
|
||||
val_d,
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
setting_type, 0, 0);
|
||||
|
||||
if (!checked_found && fabs(i - orig_value) <= 0.01f)
|
||||
{
|
||||
checked = count;
|
||||
checked_found = true;
|
||||
}
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
if (checked_found)
|
||||
menu_entries_set_checked(info->list, checked, true);
|
||||
}
|
||||
break;
|
||||
case ST_UINT:
|
||||
{
|
||||
float i;
|
||||
unsigned orig_value = *setting->value.target.unsigned_integer;
|
||||
unsigned setting_type = MENU_SETTING_DROPDOWN_SETTING_UINT_ITEM_SPECIAL;
|
||||
float step = setting->step;
|
||||
double min = setting->enforce_minrange ? setting->min : 0.00;
|
||||
double max = setting->enforce_maxrange ? setting->max : 999.00;
|
||||
bool checked_found = false;
|
||||
unsigned checked = 0;
|
||||
|
||||
if (setting->get_string_representation)
|
||||
{
|
||||
for (i = min; i <= max; i += step)
|
||||
{
|
||||
char val_s[256], val_d[256];
|
||||
int val = (int)i;
|
||||
|
||||
*setting->value.target.unsigned_integer = val;
|
||||
|
||||
setting->get_string_representation(setting,
|
||||
val_s, sizeof(val_s));
|
||||
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
|
||||
menu_entries_append_enum(info->list,
|
||||
val_s,
|
||||
val_d,
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
setting_type, val, 0);
|
||||
|
||||
if (!checked_found && val == orig_value)
|
||||
{
|
||||
checked = count;
|
||||
checked_found = true;
|
||||
}
|
||||
count++;
|
||||
}
|
||||
|
||||
*setting->value.target.unsigned_integer = orig_value;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = min; i <= max; i += step)
|
||||
{
|
||||
char val_s[16], val_d[16];
|
||||
int val = (int)i;
|
||||
|
||||
snprintf(val_s, sizeof(val_s), "%d", val);
|
||||
snprintf(val_d, sizeof(val_d), "%d", setting->enum_idx);
|
||||
|
||||
menu_entries_append_enum(info->list,
|
||||
val_s,
|
||||
val_d,
|
||||
MENU_ENUM_LABEL_NO_ITEMS,
|
||||
setting_type, val, 0);
|
||||
|
||||
if (!checked_found && val == orig_value)
|
||||
{
|
||||
checked = count;
|
||||
checked_found = true;
|
||||
}
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
if (checked_found)
|
||||
menu_entries_set_checked(info->list, checked, true);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (checked_found)
|
||||
menu_entries_set_checked(info->list, checked, true);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
info->need_refresh = true;
|
||||
info->need_push = true;
|
||||
}
|
||||
|
||||
info->need_refresh = true;
|
||||
info->need_push = true;
|
||||
break;
|
||||
case DISPLAYLIST_NONE:
|
||||
break;
|
||||
|
@ -56,6 +56,7 @@ enum menu_displaylist_ctl_state
|
||||
DISPLAYLIST_NONE = 0,
|
||||
DISPLAYLIST_DROPDOWN_LIST,
|
||||
DISPLAYLIST_DROPDOWN_LIST_SPECIAL,
|
||||
DISPLAYLIST_DROPDOWN_LIST_RESOLUTION,
|
||||
DISPLAYLIST_INFO,
|
||||
DISPLAYLIST_HELP,
|
||||
DISPLAYLIST_HELP_SCREEN_LIST,
|
||||
|
@ -143,6 +143,7 @@ enum menu_settings_type
|
||||
MENU_ADD_TAB,
|
||||
MENU_PLAYLISTS_TAB,
|
||||
MENU_SETTING_DROPDOWN_ITEM,
|
||||
MENU_SETTING_DROPDOWN_ITEM_RESOLUTION,
|
||||
MENU_SETTING_DROPDOWN_SETTING_CORE_OPTIONS_ITEM,
|
||||
MENU_SETTING_DROPDOWN_SETTING_STRING_OPTIONS_ITEM,
|
||||
MENU_SETTING_DROPDOWN_SETTING_FLOAT_ITEM,
|
||||
|
@ -5381,6 +5381,14 @@ static bool setting_append_list(
|
||||
CMD_EVENT_VIDEO_APPLY_STATE_CHANGES);
|
||||
settings_data_list_current_add_flags(list, list_info, SD_FLAG_LAKKA_ADVANCED);
|
||||
|
||||
CONFIG_ACTION(
|
||||
list, list_info,
|
||||
MENU_ENUM_LABEL_SCREEN_RESOLUTION,
|
||||
MENU_ENUM_LABEL_VALUE_SCREEN_RESOLUTION,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group);
|
||||
|
||||
CONFIG_UINT(
|
||||
list, list_info,
|
||||
&custom_vp->width,
|
||||
@ -5449,10 +5457,10 @@ static bool setting_append_list(
|
||||
settings_data_list_current_add_flags(list, list_info, SD_FLAG_LAKKA_ADVANCED);
|
||||
CONFIG_UINT(
|
||||
list, list_info,
|
||||
&settings->uints.video_window_x,
|
||||
&settings->uints.window_position_width,
|
||||
MENU_ENUM_LABEL_VIDEO_WINDOW_WIDTH,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_WIDTH,
|
||||
0,
|
||||
window_width,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -5463,10 +5471,10 @@ static bool setting_append_list(
|
||||
settings_data_list_current_add_flags(list, list_info, SD_FLAG_LAKKA_ADVANCED);
|
||||
CONFIG_UINT(
|
||||
list, list_info,
|
||||
&settings->uints.video_window_y,
|
||||
&settings->uints.window_position_height,
|
||||
MENU_ENUM_LABEL_VIDEO_WINDOW_HEIGHT,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_HEIGHT,
|
||||
0,
|
||||
window_height,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -5508,6 +5516,21 @@ static bool setting_append_list(
|
||||
SD_FLAG_NONE);
|
||||
menu_settings_list_current_add_cmd(list, list_info, CMD_EVENT_REINIT);
|
||||
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
&settings->bools.video_window_save_positions,
|
||||
MENU_ENUM_LABEL_VIDEO_WINDOW_SAVE_POSITION,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SAVE_POSITION,
|
||||
false,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE);
|
||||
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
&settings->bools.video_scale_integer,
|
||||
|
@ -421,6 +421,8 @@ enum msg_hash_enums
|
||||
MSG_RUNAHEAD_FAILED_TO_SAVE_STATE,
|
||||
MSG_RUNAHEAD_FAILED_TO_LOAD_STATE,
|
||||
MSG_RUNAHEAD_FAILED_TO_CREATE_SECONDARY_INSTANCE,
|
||||
MSG_MISSING_ASSETS,
|
||||
|
||||
MENU_LABEL(STREAMING_TITLE),
|
||||
MENU_LABEL(STREAMING_MODE),
|
||||
MENU_LABEL(VIDEO_RECORD_QUALITY),
|
||||
@ -1013,6 +1015,7 @@ enum msg_hash_enums
|
||||
/* Deferred */
|
||||
MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST,
|
||||
MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_SPECIAL,
|
||||
MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST_RESOLUTION,
|
||||
MENU_ENUM_LABEL_DEFERRED_MIXER_STREAM_SETTINGS_LIST,
|
||||
MENU_ENUM_LABEL_DEFERRED_CONFIGURATIONS_LIST,
|
||||
MENU_ENUM_LABEL_DEFERRED_FAVORITES_LIST,
|
||||
@ -1938,6 +1941,7 @@ enum msg_hash_enums
|
||||
MENU_LABEL(NETPLAY_USE_MITM_SERVER),
|
||||
MENU_LABEL(NETPLAY_MITM_SERVER),
|
||||
MENU_LABEL(VIDEO_WINDOW_SHOW_DECORATIONS),
|
||||
MENU_LABEL(VIDEO_WINDOW_SAVE_POSITION),
|
||||
|
||||
MENU_ENUM_LABEL_VALUE_QT_INFO,
|
||||
MENU_ENUM_LABEL_VALUE_QT_MENU_FILE,
|
||||
|
@ -21,6 +21,7 @@
|
||||
|
||||
#include <boolean.h>
|
||||
#include <compat/strl.h>
|
||||
#include <string/stdstring.h>
|
||||
#include <rhash.h>
|
||||
#include <retro_timers.h>
|
||||
|
||||
@ -274,15 +275,18 @@ static void handshake_password(void *ignore, const char *line)
|
||||
{
|
||||
struct password_buf_s password_buf;
|
||||
char password[8+NETPLAY_PASS_LEN]; /* 8 for salt, 128 for password */
|
||||
char hash[NETPLAY_PASS_HASH_LEN+1]; /* + NULL terminator */
|
||||
netplay_t *netplay = handshake_password_netplay;
|
||||
struct netplay_connection *connection = &netplay->connections[0];
|
||||
|
||||
snprintf(password, sizeof(password), "%08X", connection->salt);
|
||||
strlcpy(password + 8, line, sizeof(password)-8);
|
||||
if (!string_is_empty(line))
|
||||
strlcpy(password + 8, line, sizeof(password)-8);
|
||||
|
||||
password_buf.cmd[0] = htonl(NETPLAY_CMD_PASSWORD);
|
||||
password_buf.cmd[1] = htonl(sizeof(password_buf.password));
|
||||
sha256_hash(password_buf.password, (uint8_t *) password, strlen(password));
|
||||
sha256_hash(hash, (uint8_t *) password, strlen(password));
|
||||
memcpy(password_buf.password, hash, NETPLAY_PASS_HASH_LEN);
|
||||
|
||||
/* We have no way to handle an error here, so we'll let the next function error out */
|
||||
if (netplay_send(&connection->send_packet_buffer, connection->fd, &password_buf, sizeof(password_buf)))
|
||||
@ -750,8 +754,9 @@ bool netplay_handshake_pre_nick(netplay_t *netplay,
|
||||
bool netplay_handshake_pre_password(netplay_t *netplay,
|
||||
struct netplay_connection *connection, bool *had_input)
|
||||
{
|
||||
struct password_buf_s password_buf, corr_password_buf;
|
||||
struct password_buf_s password_buf;
|
||||
char password[8+NETPLAY_PASS_LEN]; /* 8 for salt */
|
||||
char hash[NETPLAY_PASS_HASH_LEN+1]; /* + NULL terminator */
|
||||
ssize_t recvd;
|
||||
char msg[512];
|
||||
bool correct = false;
|
||||
@ -787,11 +792,9 @@ bool netplay_handshake_pre_password(netplay_t *netplay,
|
||||
strlcpy(password + 8,
|
||||
settings->paths.netplay_password, sizeof(password)-8);
|
||||
|
||||
sha256_hash(corr_password_buf.password,
|
||||
(uint8_t *) password, strlen(password));
|
||||
sha256_hash(hash, (uint8_t *) password, strlen(password));
|
||||
|
||||
if (!memcmp(password_buf.password,
|
||||
corr_password_buf.password, sizeof(password_buf.password)))
|
||||
if (!memcmp(password_buf.password, hash, NETPLAY_PASS_HASH_LEN))
|
||||
{
|
||||
correct = true;
|
||||
connection->can_play = true;
|
||||
@ -802,11 +805,9 @@ bool netplay_handshake_pre_password(netplay_t *netplay,
|
||||
strlcpy(password + 8,
|
||||
settings->paths.netplay_spectate_password, sizeof(password)-8);
|
||||
|
||||
sha256_hash(corr_password_buf.password,
|
||||
(uint8_t *) password, strlen(password));
|
||||
sha256_hash(hash, (uint8_t *) password, strlen(password));
|
||||
|
||||
if (!memcmp(password_buf.password,
|
||||
corr_password_buf.password, sizeof(password_buf.password)))
|
||||
if (!memcmp(password_buf.password, hash, NETPLAY_PASS_HASH_LEN))
|
||||
correct = true;
|
||||
}
|
||||
|
||||
|
@ -72,7 +72,7 @@ else
|
||||
DEFINES += -DHAVE_OPENGLES2
|
||||
endif
|
||||
|
||||
DEFINES += -DRARCH_MOBILE -DHAVE_GRIFFIN -DHAVE_STB_VORBIS -DHAVE_LANGEXTRA -DANDROID -DHAVE_DYNAMIC -DHAVE_OPENGL -DHAVE_OVERLAY -DHAVE_OPENGLES -DGLSL_DEBUG -DHAVE_DYLIB -DHAVE_EGL -DHAVE_GLSL -DHAVE_MENU -DHAVE_RGUI -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DINLINE=inline -DHAVE_THREADS -D__LIBRETRO__ -DHAVE_RSOUND -DHAVE_NETWORKGAMEPAD -DHAVE_NETWORKING -DHAVE_NETPLAYDISCOVERY -DRARCH_INTERNAL -DHAVE_FILTERS_BUILTIN -DHAVE_MATERIALUI -DHAVE_XMB -DHAVE_SHADERPIPELINE -DHAVE_LIBRETRODB -DHAVE_STB_FONT -DHAVE_IMAGEVIEWER -DHAVE_UPDATE_ASSETS -DHAVE_CC_RESAMPLER -DHAVE_MINIUPNPC -DHAVE_BUILTINMINIUPNPC -DMINIUPNPC_SET_SOCKET_TIMEOUT -DMINIUPNPC_GET_SRC_ADDR -DHAVE_KEYMAPPER -DHAVE_NETWORKGAMEPAD -DHAVE_FLAC -DHAVE_DR_FLAC -DHAVE_DR_MP3 -DHAVE_CHD -DHAVE_RUNAHEAD -DENABLE_HLSL
|
||||
DEFINES += -DRARCH_MOBILE -DHAVE_GRIFFIN -DHAVE_STB_VORBIS -DHAVE_LANGEXTRA -DANDROID -DHAVE_DYNAMIC -DHAVE_OPENGL -DHAVE_OVERLAY -DHAVE_OPENGLES -DGLSL_DEBUG -DHAVE_DYLIB -DHAVE_EGL -DHAVE_GLSL -DHAVE_MENU -DHAVE_RGUI -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DINLINE=inline -DHAVE_THREADS -D__LIBRETRO__ -DHAVE_RSOUND -DHAVE_NETWORKGAMEPAD -DHAVE_NETWORKING -DHAVE_NETPLAYDISCOVERY -DRARCH_INTERNAL -DHAVE_FILTERS_BUILTIN -DHAVE_MATERIALUI -DHAVE_XMB -DHAVE_OZONE -DHAVE_SHADERPIPELINE -DHAVE_LIBRETRODB -DHAVE_STB_FONT -DHAVE_IMAGEVIEWER -DHAVE_UPDATE_ASSETS -DHAVE_CC_RESAMPLER -DHAVE_MINIUPNPC -DHAVE_BUILTINMINIUPNPC -DMINIUPNPC_SET_SOCKET_TIMEOUT -DMINIUPNPC_GET_SRC_ADDR -DHAVE_KEYMAPPER -DHAVE_NETWORKGAMEPAD -DHAVE_FLAC -DHAVE_DR_FLAC -DHAVE_DR_MP3 -DHAVE_CHD -DHAVE_RUNAHEAD -DENABLE_HLSL
|
||||
DEFINES += -DWANT_IFADDRS
|
||||
|
||||
ifeq ($(HAVE_VULKAN),1)
|
||||
|
@ -72,7 +72,7 @@ else
|
||||
DEFINES += -DHAVE_OPENGLES2
|
||||
endif
|
||||
|
||||
DEFINES += -DRARCH_MOBILE -DHAVE_GRIFFIN -DHAVE_STB_VORBIS -DHAVE_LANGEXTRA -DANDROID -DHAVE_DYNAMIC -DHAVE_OPENGL -DHAVE_OVERLAY -DHAVE_OPENGLES -DGLSL_DEBUG -DHAVE_DYLIB -DHAVE_EGL -DHAVE_GLSL -DHAVE_MENU -DHAVE_RGUI -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DINLINE=inline -DHAVE_THREADS -D__LIBRETRO__ -DHAVE_RSOUND -DHAVE_NETWORKGAMEPAD -DHAVE_NETPLAYDISCOVERY -DHAVE_NETWORKING -DRARCH_INTERNAL -DHAVE_FILTERS_BUILTIN -DHAVE_MATERIALUI -DHAVE_XMB -DHAVE_SHADERPIPELINE -DHAVE_LIBRETRODB -DHAVE_STB_FONT -DHAVE_IMAGEVIEWER -DHAVE_UPDATE_ASSETS -DHAVE_CC_RESAMPLER -DHAVE_MINIUPNPC -DHAVE_BUILTINMINIUPNPC -DMINIUPNPC_SET_SOCKET_TIMEOUT -DMINIUPNPC_GET_SRC_ADDR -DHAVE_KEYMAPPER -DHAVE_NETWORKGAMEPAD -DHAVE_FLAC -DHAVE_DR_FLAC -DHAVE_DR_MP3 -DHAVE_CHD -DHAVE_RUNAHEAD -DENABLE_HLSL
|
||||
DEFINES += -DRARCH_MOBILE -DHAVE_GRIFFIN -DHAVE_STB_VORBIS -DHAVE_LANGEXTRA -DANDROID -DHAVE_DYNAMIC -DHAVE_OPENGL -DHAVE_OVERLAY -DHAVE_OPENGLES -DGLSL_DEBUG -DHAVE_DYLIB -DHAVE_EGL -DHAVE_GLSL -DHAVE_MENU -DHAVE_RGUI -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DINLINE=inline -DHAVE_THREADS -D__LIBRETRO__ -DHAVE_RSOUND -DHAVE_NETWORKGAMEPAD -DHAVE_NETPLAYDISCOVERY -DHAVE_NETWORKING -DRARCH_INTERNAL -DHAVE_FILTERS_BUILTIN -DHAVE_MATERIALUI -DHAVE_XMB -DHAVE_OZONE -DHAVE_SHADERPIPELINE -DHAVE_LIBRETRODB -DHAVE_STB_FONT -DHAVE_IMAGEVIEWER -DHAVE_UPDATE_ASSETS -DHAVE_CC_RESAMPLER -DHAVE_MINIUPNPC -DHAVE_BUILTINMINIUPNPC -DMINIUPNPC_SET_SOCKET_TIMEOUT -DMINIUPNPC_GET_SRC_ADDR -DHAVE_KEYMAPPER -DHAVE_NETWORKGAMEPAD -DHAVE_FLAC -DHAVE_DR_FLAC -DHAVE_DR_MP3 -DHAVE_CHD -DHAVE_RUNAHEAD -DENABLE_HLSL
|
||||
DEFINES += -DWANT_IFADDRS
|
||||
|
||||
ifeq ($(HAVE_VULKAN),1)
|
||||
|
@ -547,6 +547,7 @@
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_HID",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-DHAVE_MMAP",
|
||||
"-DHAVE_LIBRETRODB",
|
||||
@ -611,6 +612,7 @@
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_HID",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-DHAVE_MMAP",
|
||||
"-DHAVE_LIBRETRODB",
|
||||
|
@ -327,6 +327,7 @@
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_HID",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-DHAVE_MMAP",
|
||||
"-DHAVE_LIBRETRODB",
|
||||
@ -404,6 +405,7 @@
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_HID",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-DHAVE_MMAP",
|
||||
"-DHAVE_LIBRETRODB",
|
||||
|
@ -372,6 +372,7 @@
|
||||
"-DHAVE_FILTERS_BUILTIN",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
"-DHAVE_MFI",
|
||||
@ -461,6 +462,7 @@
|
||||
"-DHAVE_7ZIP",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
"-DHAVE_MFI",
|
||||
@ -516,6 +518,7 @@
|
||||
"-DHAVE_7ZIP",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
"-DHAVE_MFI",
|
||||
|
@ -379,6 +379,7 @@
|
||||
"-DHAVE_FILTERS_BUILTIN",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
"-DHAVE_MFI",
|
||||
@ -467,6 +468,7 @@
|
||||
"-DHAVE_7ZIP",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
"-DHAVE_MFI",
|
||||
@ -521,6 +523,7 @@
|
||||
"-DHAVE_7ZIP",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
"-DHAVE_MFI",
|
||||
|
@ -372,6 +372,7 @@
|
||||
"-DHAVE_FILTERS_BUILTIN",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
"-DHAVE_MFI",
|
||||
@ -462,6 +463,7 @@
|
||||
"-DHAVE_7ZIP",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
"-DHAVE_MFI",
|
||||
@ -518,6 +520,7 @@
|
||||
"-DHAVE_7ZIP",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
"-DHAVE_MFI",
|
||||
|
@ -378,6 +378,7 @@
|
||||
"-DHAVE_FILTERS_BUILTIN",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
"-DHAVE_MFI",
|
||||
@ -466,6 +467,7 @@
|
||||
"-DHAVE_7ZIP",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
"-DHAVE_MFI",
|
||||
@ -520,6 +522,7 @@
|
||||
"-DHAVE_7ZIP",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
"-DHAVE_MFI",
|
||||
|
@ -385,6 +385,7 @@
|
||||
"-DHAVE_FILTERS_BUILTIN",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
);
|
||||
@ -470,6 +471,7 @@
|
||||
"-DHAVE_7ZIP",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
);
|
||||
@ -521,6 +523,7 @@
|
||||
"-DHAVE_7ZIP",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
);
|
||||
|
@ -536,6 +536,7 @@
|
||||
"-DHAVE_FILTERS_BUILTIN",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
"-DHAVE_MFI",
|
||||
@ -625,6 +626,7 @@
|
||||
"-DHAVE_7ZIP",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
"-DHAVE_MFI",
|
||||
@ -679,6 +681,7 @@
|
||||
"-DHAVE_7ZIP",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
"-DHAVE_MFI",
|
||||
|
@ -401,6 +401,7 @@
|
||||
"-DHAVE_FILTERS_BUILTIN",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
"-DHAVE_MFI",
|
||||
@ -488,6 +489,7 @@
|
||||
"-DHAVE_7ZIP",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
"-DHAVE_MFI",
|
||||
@ -541,6 +543,7 @@
|
||||
"-DHAVE_7ZIP",
|
||||
"-DHAVE_MATERIALUI",
|
||||
"-DHAVE_XMB",
|
||||
"-DHAVE_OZONE",
|
||||
"-DHAVE_SHADERPIPELINE",
|
||||
"-D_LZMA_UINT32_IS_ULONG",
|
||||
"-DHAVE_MFI",
|
||||
|
@ -371,7 +371,7 @@
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;__SSE__;__i686__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_WASAPI;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;__SSE__;__i686__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(MSBuildProjectDirectory)\..\..\..\deps\zlib;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
@ -391,7 +391,7 @@
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_FBO;WANT_ZLIB;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;__SSE__;__i686__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_WASAPI;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_FBO;WANT_ZLIB;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;__SSE__;__i686__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(CG_INC_PATH);$(MSBuildProjectDirectory)\..\..\..\deps\zlib;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
@ -412,7 +412,7 @@
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_QT;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_FBO;WANT_ZLIB;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;__SSE__;__i686__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_WASAPI;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_QT;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_FBO;WANT_ZLIB;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;__SSE__;__i686__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(CG_INC_PATH);$(MSBuildProjectDirectory)\..\..\..\deps\zlib;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
@ -433,7 +433,7 @@
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_QT;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_FBO;WANT_ZLIB;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;__SSE__;__i686__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_WASAPI;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_QT;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_FBO;WANT_ZLIB;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;__SSE__;__i686__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(CG_INC_PATH);$(MSBuildProjectDirectory)\..\..\..\deps\zlib;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
@ -454,7 +454,7 @@
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_SECURE_NO_WARNINGS;__SSE__;__SSE2__;__x86_64__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_WASAPI;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_SECURE_NO_WARNINGS;__SSE__;__SSE2__;__x86_64__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(MSBuildProjectDirectory)\..\..\..\deps\zlib;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
@ -474,7 +474,7 @@
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_FBO;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;WANT_ZLIB;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_SECURE_NO_WARNINGS;__SSE__;__SSE2__;__x86_64__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_WASAPI;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_FBO;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;WANT_ZLIB;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_SECURE_NO_WARNINGS;__SSE__;__SSE2__;__x86_64__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(CG_INC_PATH);$(MSBuildProjectDirectory)\..\..\..\deps\zlib;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
@ -495,7 +495,7 @@
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_QT;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_SECURE_NO_WARNINGS;__SSE__;__SSE2__;__x86_64__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_WASAPI;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_QT;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_SECURE_NO_WARNINGS;__SSE__;__SSE2__;__x86_64__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(CG_INC_PATH);$(MSBuildProjectDirectory)\..\..\..\deps\zlib;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
@ -516,7 +516,7 @@
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_QT;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_FBO;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;WANT_ZLIB;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_SECURE_NO_WARNINGS;__SSE__;__SSE2__;__x86_64__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_WASAPI;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_QT;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_FBO;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;WANT_ZLIB;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_SECURE_NO_WARNINGS;__SSE__;__SSE2__;__x86_64__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(CG_INC_PATH);$(MSBuildProjectDirectory)\..\..\..\deps\zlib;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
@ -539,7 +539,7 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;__SSE__;__i686__;HAVE_OVERLAY;HAVE_MENU;HAVE_RGUI;HAVE_GL_SYNC;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_WASAPI;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;__SSE__;__i686__;HAVE_OVERLAY;HAVE_MENU;HAVE_RGUI;HAVE_GL_SYNC;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(MSBuildProjectDirectory)\..\..\..\deps\zlib;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
@ -564,7 +564,7 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;WANT_ZLIB;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;__SSE__;__i686__;HAVE_OVERLAY;HAVE_MENU;HAVE_RGUI;HAVE_GL_SYNC;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_WASAPI;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;WANT_ZLIB;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;__SSE__;__i686__;HAVE_OVERLAY;HAVE_MENU;HAVE_RGUI;HAVE_GL_SYNC;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(CG_INC_PATH);$(MSBuildProjectDirectory)\..\..\..\deps\zlib;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
@ -590,7 +590,7 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_QT;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;WANT_ZLIB;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;__SSE__;__i686__;HAVE_OVERLAY;HAVE_MENU;HAVE_RGUI;HAVE_GL_SYNC;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_WASAPI;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_QT;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;WANT_ZLIB;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;__SSE__;__i686__;HAVE_OVERLAY;HAVE_MENU;HAVE_RGUI;HAVE_GL_SYNC;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(CG_INC_PATH);$(MSBuildProjectDirectory)\..\..\..\deps\zlib;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
@ -616,7 +616,7 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_QT;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;WANT_ZLIB;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;__SSE__;__i686__;HAVE_OVERLAY;HAVE_MENU;HAVE_RGUI;HAVE_GL_SYNC;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_WASAPI;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_QT;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;WANT_ZLIB;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;__SSE__;__i686__;HAVE_OVERLAY;HAVE_MENU;HAVE_RGUI;HAVE_GL_SYNC;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(CG_INC_PATH);$(MSBuildProjectDirectory)\..\..\..\deps\zlib;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
@ -642,7 +642,7 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;_CRT_SECURE_NO_WARNINGS;__SSE__;__SSE2__;__x86_64__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_WASAPI;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;_CRT_SECURE_NO_WARNINGS;__SSE__;__SSE2__;__x86_64__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(MSBuildProjectDirectory)\..\..\..\deps\zlib;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
@ -667,7 +667,7 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;WANT_ZLIB;_CRT_SECURE_NO_WARNINGS;__SSE__;__SSE2__;__x86_64__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_WASAPI;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;WANT_ZLIB;_CRT_SECURE_NO_WARNINGS;__SSE__;__SSE2__;__x86_64__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(CG_INC_PATH);$(MSBuildProjectDirectory)\..\..\..\deps\zlib;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
@ -693,7 +693,7 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_QT;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;_CRT_SECURE_NO_WARNINGS;__SSE__;__SSE2__;__x86_64__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_WASAPI;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_QT;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;_CRT_SECURE_NO_WARNINGS;__SSE__;__SSE2__;__x86_64__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(CG_INC_PATH);$(MSBuildProjectDirectory)\..\..\..\deps\zlib;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
@ -719,7 +719,7 @@
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_QT;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;WANT_ZLIB;_CRT_SECURE_NO_WARNINGS;__SSE__;__SSE2__;__x86_64__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_SLANG;HAVE_GLSLANG;HAVE_SPIRV_CROSS;HAVE_UPDATE_ASSETS;HAVE_D3D;HAVE_D3D9;HAVE_D3D10;HAVE_D3D11;HAVE_D3D12;HAVE_VULKAN;ENABLE_HLSL;RC_DISABLE_LUA;HAVE_WASAPI;HAVE_CG;HAVE_GLSL;HAVE_CHEEVOS;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_FBO;HAVE_ZLIB;HAVE_QT;QT_WIDGETS_LIB;QT_GUI_LIB;QT_CORE_LIB;HAVE_XMB;HAVE_SHADERPIPELINE;WANT_ZLIB;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_DINPUT;HAVE_XINPUT;HAVE_XAUDIO;HAVE_DSOUND;HAVE_OPENGL;HAVE_DYLIB;HAVE_NETWORKING;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;HAVE_DYNAMIC;HAVE_RPNG;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;WANT_ZLIB;_CRT_SECURE_NO_WARNINGS;__SSE__;__SSE2__;__x86_64__;HAVE_OVERLAY;HAVE_RGUI;HAVE_GL_SYNC;HAVE_MENU;HAVE_7ZIP;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_STB_FONT</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(CG_INC_PATH);$(MSBuildProjectDirectory)\..\..\..\deps\zlib;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<CompileAs>CompileAsCpp</CompileAs>
|
||||
|
@ -539,7 +539,7 @@ void recording_driver_update_streaming_url(void)
|
||||
else
|
||||
{
|
||||
/* To-Do: Show input box for twitch_stream_key*/
|
||||
RARCH_LOG("[recording] twitch streaming key empty");
|
||||
RARCH_LOG("[recording] twitch streaming key empty\n");
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -553,7 +553,7 @@ void recording_driver_update_streaming_url(void)
|
||||
else
|
||||
{
|
||||
/* To-Do: Show input box for youtube_stream_key*/
|
||||
RARCH_LOG("[recording] youtube streaming key empty");
|
||||
RARCH_LOG("[recording] youtube streaming key empty\n");
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user