Move d3d_input_driver to win32_common and rename it win32_input_driver

This commit is contained in:
libretroadmin 2022-05-16 08:03:13 +02:00
parent 275e58c6ce
commit 201eeae7f1
10 changed files with 55 additions and 54 deletions

View File

@ -118,48 +118,3 @@ int32_t d3d_translate_filter(unsigned type)
return (int32_t)D3D_TEXTURE_FILTER_POINT;
}
void d3d_input_driver(const char* input_name, const char* joypad_name,
input_driver_t** input, void** input_data)
{
#if defined(__WINRT__)
/* Plain xinput is supported on UWP, but it
* supports joypad only (uwp driver was added later) */
if (string_is_equal(input_name, "xinput"))
{
void *xinput = input_driver_init_wrap(&input_xinput, joypad_name);
*input = xinput ? (input_driver_t*)&input_xinput : NULL;
*input_data = xinput;
}
else
{
void *uwp = input_driver_init_wrap(&input_uwp, joypad_name);
*input = uwp ? (input_driver_t*)&input_uwp : NULL;
*input_data = uwp;
}
#elif defined(_XBOX)
void *xinput = input_driver_init_wrap(&input_xinput, joypad_name);
*input = xinput ? (input_driver_t*)&input_xinput : NULL;
*input_data = xinput;
#else
#if _WIN32_WINNT >= 0x0501
#ifdef HAVE_WINRAWINPUT
/* winraw only available since XP */
if (string_is_equal(input_name, "raw"))
{
*input_data = input_driver_init_wrap(&input_winraw, joypad_name);
if (*input_data)
{
*input = &input_winraw;
return;
}
}
#endif
#endif
#ifdef HAVE_DINPUT
*input_data = input_driver_init_wrap(&input_dinput, joypad_name);
*input = *input_data ? &input_dinput : NULL;
#endif
#endif
}

View File

@ -104,9 +104,6 @@ void d3d_matrix_rotation_z(void *_pout, float angle);
int32_t d3d_translate_filter(unsigned type);
void d3d_input_driver(const char* input_name,
const char* joypad_name, input_driver_t** input, void** input_data);
RETRO_END_DECLS
#endif

View File

@ -2627,3 +2627,48 @@ void win32_update_title(void)
}
#endif
}
void win32_input_driver(const char* input_name, const char* joypad_name,
input_driver_t** input, void** input_data)
{
#if defined(__WINRT__)
/* Plain xinput is supported on UWP, but it
* supports joypad only (uwp driver was added later) */
if (string_is_equal(input_name, "xinput"))
{
void *xinput = input_driver_init_wrap(&input_xinput, joypad_name);
*input = xinput ? (input_driver_t*)&input_xinput : NULL;
*input_data = xinput;
}
else
{
void *uwp = input_driver_init_wrap(&input_uwp, joypad_name);
*input = uwp ? (input_driver_t*)&input_uwp : NULL;
*input_data = uwp;
}
#elif defined(_XBOX)
void *xinput = input_driver_init_wrap(&input_xinput, joypad_name);
*input = xinput ? (input_driver_t*)&input_xinput : NULL;
*input_data = xinput;
#else
#if _WIN32_WINNT >= 0x0501
#ifdef HAVE_WINRAWINPUT
/* winraw only available since XP */
if (string_is_equal(input_name, "raw"))
{
*input_data = input_driver_init_wrap(&input_winraw, joypad_name);
if (*input_data)
{
*input = &input_winraw;
return;
}
}
#endif
#endif
#ifdef HAVE_DINPUT
*input_data = input_driver_init_wrap(&input_dinput, joypad_name);
*input = *input_data ? &input_dinput : NULL;
#endif
#endif
}

View File

@ -183,6 +183,10 @@ void win32_set_input_userdata(void *data);
void win32_update_title(void);
void win32_input_driver(const char* input_name,
const char* joypad_name, input_driver_t** input, void** input_data);
RETRO_END_DECLS
#endif

View File

@ -704,7 +704,7 @@ static void *d3d10_gfx_init(const video_info_t* video,
goto error;
}
d3d_input_driver(settings->arrays.input_driver, settings->arrays.input_joypad_driver, input, input_data);
win32_input_driver(settings->arrays.input_driver, settings->arrays.input_joypad_driver, input, input_data);
if (!d3d10_init_swapchain(d3d10,
d3d10->vp.full_width,

View File

@ -1147,7 +1147,7 @@ static void *d3d11_gfx_init(const video_info_t* video,
goto error;
}
d3d_input_driver(settings->arrays.input_driver, settings->arrays.input_joypad_driver, input, input_data);
win32_input_driver(settings->arrays.input_driver, settings->arrays.input_joypad_driver, input, input_data);
#ifdef __WINRT__
DXGICreateFactory2(&d3d11->factory);

View File

@ -1163,7 +1163,7 @@ static void *d3d12_gfx_init(const video_info_t* video,
d3d12->hdr.max_fall = 0.0f;
#endif
d3d_input_driver(settings->arrays.input_driver, settings->arrays.input_joypad_driver, input, input_data);
win32_input_driver(settings->arrays.input_driver, settings->arrays.input_joypad_driver, input, input_data);
if (!d3d12_init_base(d3d12))
goto error;

View File

@ -1194,7 +1194,7 @@ static bool d3d8_init_internal(d3d8_video_t *d3d,
if (!d3d8_initialize(d3d, &d3d->video_info))
return false;
d3d_input_driver(settings->arrays.input_driver, settings->arrays.input_joypad_driver, input, input_data);
win32_input_driver(settings->arrays.input_driver, settings->arrays.input_joypad_driver, input, input_data);
return true;
}

View File

@ -1627,7 +1627,7 @@ static bool d3d9_cg_init_internal(d3d9_video_t *d3d,
d3d9_cg_set_shader(d3d, type, shader_preset);
}
d3d_input_driver(settings->arrays.input_joypad_driver,
win32_input_driver(settings->arrays.input_joypad_driver,
settings->arrays.input_joypad_driver, input, input_data);
{

View File

@ -1194,7 +1194,7 @@ static bool d3d9_hlsl_init_internal(d3d9_video_t *d3d,
d3d9_hlsl_set_shader(d3d, type, shader_preset);
}
d3d_input_driver(settings->arrays.input_joypad_driver,
win32_input_driver(settings->arrays.input_joypad_driver,
settings->arrays.input_joypad_driver, input, input_data);
{