mirror of
https://github.com/libretro/RetroArch
synced 2025-04-17 20:43:10 +00:00
Cleanups
This commit is contained in:
parent
79db13d5e7
commit
ed52146f8c
141
uwp/uwp_main.cpp
141
uwp/uwp_main.cpp
@ -51,10 +51,10 @@ using namespace Windows::Foundation::Collections;
|
|||||||
using namespace Windows::Graphics::Display;
|
using namespace Windows::Graphics::Display;
|
||||||
using namespace Windows::Devices::Enumeration;
|
using namespace Windows::Devices::Enumeration;
|
||||||
|
|
||||||
char uwp_dir_install[PATH_MAX_LENGTH];
|
char uwp_dir_install[PATH_MAX_LENGTH] = { 0 };
|
||||||
char uwp_dir_data[PATH_MAX_LENGTH];
|
char uwp_dir_data[PATH_MAX_LENGTH] = { 0 };
|
||||||
char uwp_device_family[128];
|
char uwp_device_family[128] = { 0 };
|
||||||
char win32_cpu_model_name[128] = { 0 };
|
char win32_cpu_model_name[128] = { 0 };
|
||||||
|
|
||||||
// Some keys are unavailable in the VirtualKey enum (wtf) but the old-style constants work
|
// Some keys are unavailable in the VirtualKey enum (wtf) but the old-style constants work
|
||||||
const struct rarch_key_map rarch_key_map_uwp[] = {
|
const struct rarch_key_map rarch_key_map_uwp[] = {
|
||||||
@ -172,32 +172,35 @@ const struct rarch_key_map rarch_key_map_uwp[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
#define MAX_TOUCH 16
|
#define MAX_TOUCH 16
|
||||||
struct input_pointer {
|
struct input_pointer
|
||||||
|
{
|
||||||
int id;
|
int id;
|
||||||
|
short x;
|
||||||
|
short y;
|
||||||
|
short full_x;
|
||||||
|
short full_y;
|
||||||
bool isInContact;
|
bool isInContact;
|
||||||
short x, y;
|
|
||||||
short full_x, full_y;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct uwp_input_state_t {
|
struct uwp_input_state_t
|
||||||
|
{
|
||||||
|
struct input_pointer touch[MAX_TOUCH]; /* int alignment */
|
||||||
|
unsigned touch_count;
|
||||||
short mouse_screen_x;
|
short mouse_screen_x;
|
||||||
short mouse_screen_y;
|
short mouse_screen_y;
|
||||||
short mouse_rel_x;
|
short mouse_rel_x;
|
||||||
short mouse_rel_y;
|
short mouse_rel_y;
|
||||||
|
short mouse_wheel_left;
|
||||||
|
short mouse_wheel_up;
|
||||||
bool mouse_left;
|
bool mouse_left;
|
||||||
bool mouse_right;
|
bool mouse_right;
|
||||||
bool mouse_middle;
|
bool mouse_middle;
|
||||||
bool mouse_button4;
|
bool mouse_button4;
|
||||||
bool mouse_button5;
|
bool mouse_button5;
|
||||||
short mouse_wheel_left;
|
|
||||||
short mouse_wheel_up;
|
|
||||||
unsigned touch_count;
|
|
||||||
struct input_pointer touch[MAX_TOUCH];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct uwp_input_state_t uwp_current_input, uwp_next_input;
|
struct uwp_input_state_t uwp_current_input, uwp_next_input;
|
||||||
|
|
||||||
|
|
||||||
// Taken from DirectX UWP samples - on Xbox, everything is scaled 200% so getting the DPI calculation correct is crucial
|
// Taken from DirectX UWP samples - on Xbox, everything is scaled 200% so getting the DPI calculation correct is crucial
|
||||||
static inline float ConvertDipsToPixels(float dips, float dpi)
|
static inline float ConvertDipsToPixels(float dips, float dpi)
|
||||||
{
|
{
|
||||||
@ -210,11 +213,13 @@ static inline float ConvertDipsToPixels(float dips, float dpi)
|
|||||||
int main(Platform::Array<Platform::String^>^)
|
int main(Platform::Array<Platform::String^>^)
|
||||||
{
|
{
|
||||||
Platform::String^ install_dir = Windows::ApplicationModel::Package::Current->InstalledLocation->Path + L"\\";
|
Platform::String^ install_dir = Windows::ApplicationModel::Package::Current->InstalledLocation->Path + L"\\";
|
||||||
wcstombs(uwp_dir_install, install_dir->Data(), PATH_MAX_LENGTH);
|
wcstombs(uwp_dir_install, install_dir->Data(), sizeof(upw_dir_install));
|
||||||
Platform::String^ data_dir = Windows::Storage::ApplicationData::Current->LocalFolder->Path + L"\\";
|
Platform::String^ data_dir = Windows::Storage::ApplicationData::Current->LocalFolder->Path + L"\\";
|
||||||
wcstombs(uwp_dir_data, data_dir->Data(), PATH_MAX_LENGTH);
|
wcstombs(uwp_dir_data, data_dir->Data(), sizeof(uwp_dir_data));
|
||||||
|
|
||||||
wcstombs(uwp_device_family, AnalyticsInfo::VersionInfo->DeviceFamily->Data(), 128);
|
wcstombs(uwp_device_family,
|
||||||
|
AnalyticsInfo::VersionInfo->DeviceFamily->Data(),
|
||||||
|
sizeof(uwp_device_family));
|
||||||
|
|
||||||
RARCH_LOG("Data dir: %ls\n", data_dir->Data());
|
RARCH_LOG("Data dir: %ls\n", data_dir->Data());
|
||||||
RARCH_LOG("Install dir: %ls\n", install_dir->Data());
|
RARCH_LOG("Install dir: %ls\n", install_dir->Data());
|
||||||
@ -525,11 +530,11 @@ void App::OnPointer(CoreWindow^ sender, PointerEventArgs^ args)
|
|||||||
struct video_viewport vp;
|
struct video_viewport vp;
|
||||||
|
|
||||||
/* convert from event coordinates to core and screen coordinates */
|
/* convert from event coordinates to core and screen coordinates */
|
||||||
vp.x = 0;
|
vp.x = 0;
|
||||||
vp.y = 0;
|
vp.y = 0;
|
||||||
vp.width = 0;
|
vp.width = 0;
|
||||||
vp.height = 0;
|
vp.height = 0;
|
||||||
vp.full_width = 0;
|
vp.full_width = 0;
|
||||||
vp.full_height = 0;
|
vp.full_height = 0;
|
||||||
|
|
||||||
video_driver_translate_coord_viewport_wrap(
|
video_driver_translate_coord_viewport_wrap(
|
||||||
@ -626,35 +631,35 @@ extern "C" {
|
|||||||
bool win32_get_metrics(void* data,
|
bool win32_get_metrics(void* data,
|
||||||
enum display_metric_types type, float* value)
|
enum display_metric_types type, float* value)
|
||||||
{
|
{
|
||||||
int pixels_x = DisplayInformation::GetForCurrentView()->ScreenWidthInRawPixels;
|
int pixels_x = DisplayInformation::GetForCurrentView()->ScreenWidthInRawPixels;
|
||||||
int pixels_y = DisplayInformation::GetForCurrentView()->ScreenHeightInRawPixels;
|
int pixels_y = DisplayInformation::GetForCurrentView()->ScreenHeightInRawPixels;
|
||||||
int raw_dpi_x = DisplayInformation::GetForCurrentView()->RawDpiX;
|
int raw_dpi_x = DisplayInformation::GetForCurrentView()->RawDpiX;
|
||||||
int raw_dpi_y = DisplayInformation::GetForCurrentView()->RawDpiY;
|
int raw_dpi_y = DisplayInformation::GetForCurrentView()->RawDpiY;
|
||||||
int physical_width = pixels_x / raw_dpi_x;
|
int physical_width = pixels_x / raw_dpi_x;
|
||||||
int physical_height = pixels_y / raw_dpi_y;
|
int physical_height = pixels_y / raw_dpi_y;
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case DISPLAY_METRIC_PIXEL_WIDTH:
|
case DISPLAY_METRIC_PIXEL_WIDTH:
|
||||||
*value = pixels_x;
|
*value = pixels_x;
|
||||||
return true;
|
return true;
|
||||||
case DISPLAY_METRIC_PIXEL_HEIGHT:
|
case DISPLAY_METRIC_PIXEL_HEIGHT:
|
||||||
*value = pixels_y;
|
*value = pixels_y;
|
||||||
return true;
|
return true;
|
||||||
case DISPLAY_METRIC_MM_WIDTH:
|
case DISPLAY_METRIC_MM_WIDTH:
|
||||||
/* 25.4 mm in an inch. */
|
/* 25.4 mm in an inch. */
|
||||||
*value = 254 * physical_width / 10;
|
*value = 254 * physical_width / 10;
|
||||||
return true;
|
return true;
|
||||||
case DISPLAY_METRIC_MM_HEIGHT:
|
case DISPLAY_METRIC_MM_HEIGHT:
|
||||||
/* 25.4 mm in an inch. */
|
/* 25.4 mm in an inch. */
|
||||||
*value = 254 * physical_height / 10;
|
*value = 254 * physical_height / 10;
|
||||||
return true;
|
return true;
|
||||||
case DISPLAY_METRIC_DPI:
|
case DISPLAY_METRIC_DPI:
|
||||||
*value = raw_dpi_x;
|
*value = raw_dpi_x;
|
||||||
return true;
|
return true;
|
||||||
case DISPLAY_METRIC_NONE:
|
case DISPLAY_METRIC_NONE:
|
||||||
default:
|
default:
|
||||||
*value = 0;
|
*value = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -716,41 +721,41 @@ extern "C" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int16_t uwp_mouse_state(unsigned port, unsigned id, bool screen)
|
int16_t uwp_mouse_state(unsigned port, unsigned id, bool screen)
|
||||||
{
|
{
|
||||||
int16_t state = 0;
|
int16_t state = 0;
|
||||||
|
|
||||||
switch (id)
|
switch (id)
|
||||||
{
|
{
|
||||||
case RETRO_DEVICE_ID_MOUSE_X:
|
case RETRO_DEVICE_ID_MOUSE_X:
|
||||||
return screen
|
return screen
|
||||||
? uwp_current_input.mouse_screen_x
|
? uwp_current_input.mouse_screen_x
|
||||||
: uwp_current_input.mouse_rel_x;
|
: uwp_current_input.mouse_rel_x;
|
||||||
case RETRO_DEVICE_ID_MOUSE_Y:
|
case RETRO_DEVICE_ID_MOUSE_Y:
|
||||||
return screen
|
return screen
|
||||||
? uwp_current_input.mouse_screen_y
|
? uwp_current_input.mouse_screen_y
|
||||||
: uwp_current_input.mouse_rel_y;
|
: uwp_current_input.mouse_rel_y;
|
||||||
case RETRO_DEVICE_ID_MOUSE_LEFT:
|
case RETRO_DEVICE_ID_MOUSE_LEFT:
|
||||||
return uwp_current_input.mouse_left;
|
return uwp_current_input.mouse_left;
|
||||||
case RETRO_DEVICE_ID_MOUSE_RIGHT:
|
case RETRO_DEVICE_ID_MOUSE_RIGHT:
|
||||||
return uwp_current_input.mouse_right;
|
return uwp_current_input.mouse_right;
|
||||||
case RETRO_DEVICE_ID_MOUSE_WHEELUP:
|
case RETRO_DEVICE_ID_MOUSE_WHEELUP:
|
||||||
return uwp_current_input.mouse_wheel_up > WHEEL_DELTA;
|
return uwp_current_input.mouse_wheel_up > WHEEL_DELTA;
|
||||||
case RETRO_DEVICE_ID_MOUSE_WHEELDOWN:
|
case RETRO_DEVICE_ID_MOUSE_WHEELDOWN:
|
||||||
return uwp_current_input.mouse_wheel_up < -WHEEL_DELTA;
|
return uwp_current_input.mouse_wheel_up < -WHEEL_DELTA;
|
||||||
case RETRO_DEVICE_ID_MOUSE_HORIZ_WHEELUP:
|
case RETRO_DEVICE_ID_MOUSE_HORIZ_WHEELUP:
|
||||||
return uwp_current_input.mouse_wheel_left > WHEEL_DELTA;
|
return uwp_current_input.mouse_wheel_left > WHEEL_DELTA;
|
||||||
case RETRO_DEVICE_ID_MOUSE_HORIZ_WHEELDOWN:
|
case RETRO_DEVICE_ID_MOUSE_HORIZ_WHEELDOWN:
|
||||||
return uwp_current_input.mouse_wheel_left < -WHEEL_DELTA;
|
return uwp_current_input.mouse_wheel_left < -WHEEL_DELTA;
|
||||||
case RETRO_DEVICE_ID_MOUSE_MIDDLE:
|
case RETRO_DEVICE_ID_MOUSE_MIDDLE:
|
||||||
return uwp_current_input.mouse_middle;
|
return uwp_current_input.mouse_middle;
|
||||||
case RETRO_DEVICE_ID_MOUSE_BUTTON_4:
|
case RETRO_DEVICE_ID_MOUSE_BUTTON_4:
|
||||||
return uwp_current_input.mouse_button4;
|
return uwp_current_input.mouse_button4;
|
||||||
case RETRO_DEVICE_ID_MOUSE_BUTTON_5:
|
case RETRO_DEVICE_ID_MOUSE_BUTTON_5:
|
||||||
return uwp_current_input.mouse_button5;
|
return uwp_current_input.mouse_button5;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t uwp_pointer_state(unsigned idx, unsigned id, bool screen)
|
int16_t uwp_pointer_state(unsigned idx, unsigned id, bool screen)
|
||||||
{
|
{
|
||||||
@ -787,10 +792,10 @@ extern "C" {
|
|||||||
char lang_bcp[16] = { 0 };
|
char lang_bcp[16] = { 0 };
|
||||||
char lang_iso[16] = { 0 };
|
char lang_iso[16] = { 0 };
|
||||||
|
|
||||||
wcstombs(lang_bcp, lang->Data(), 16);
|
wcstombs(lang_bcp, lang->Data(), sizeof(lang_bcp));
|
||||||
|
|
||||||
/* Trying to convert BCP 47 language codes to ISO 639 ones */
|
/* Trying to convert BCP 47 language codes to ISO 639 ones */
|
||||||
split = string_split(lang_bcp, "-");
|
split = string_split(lang_bcp, "-");
|
||||||
|
|
||||||
strlcat(lang_iso, split->elems[0].data, sizeof(lang_iso));
|
strlcat(lang_iso, split->elems[0].data, sizeof(lang_iso));
|
||||||
|
|
||||||
@ -843,7 +848,7 @@ extern "C" {
|
|||||||
if (!cpu_name)
|
if (!cpu_name)
|
||||||
return "Unknown";
|
return "Unknown";
|
||||||
|
|
||||||
wcstombs(win32_cpu_model_name, cpu_name->Data(), 128);
|
wcstombs(win32_cpu_model_name, cpu_name->Data(), sizeof(win32_cpu_model_name));
|
||||||
return win32_cpu_model_name;
|
return win32_cpu_model_name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user