Allow winraw and xinput to work without dinput in Windows
Necessary for Windows ARM32 Desktop (RT)
This commit is contained in:
parent
7ddb876330
commit
6ea79bca36
|
@ -238,6 +238,7 @@ enum input_driver_enum
|
||||||
INPUT_QNX,
|
INPUT_QNX,
|
||||||
INPUT_RWEBINPUT,
|
INPUT_RWEBINPUT,
|
||||||
INPUT_DOS,
|
INPUT_DOS,
|
||||||
|
INPUT_WINRAW,
|
||||||
INPUT_NULL
|
INPUT_NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -457,8 +458,10 @@ static enum input_driver_enum INPUT_DEFAULT_DRIVER = INPUT_ANDROID;
|
||||||
static enum input_driver_enum INPUT_DEFAULT_DRIVER = INPUT_SDL2;
|
static enum input_driver_enum INPUT_DEFAULT_DRIVER = INPUT_SDL2;
|
||||||
#elif defined(EMSCRIPTEN)
|
#elif defined(EMSCRIPTEN)
|
||||||
static enum input_driver_enum INPUT_DEFAULT_DRIVER = INPUT_RWEBINPUT;
|
static enum input_driver_enum INPUT_DEFAULT_DRIVER = INPUT_RWEBINPUT;
|
||||||
#elif defined(_WIN32)
|
#elif defined(_WIN32) && defined(HAVE_DINPUT)
|
||||||
static enum input_driver_enum INPUT_DEFAULT_DRIVER = INPUT_DINPUT;
|
static enum input_driver_enum INPUT_DEFAULT_DRIVER = INPUT_DINPUT;
|
||||||
|
#elif defined(_WIN32) && !defined(HAVE_DINPUT) && _WIN32_WINNT >= 0x0501
|
||||||
|
static enum input_driver_enum INPUT_DEFAULT_DRIVER = INPUT_WINRAW;
|
||||||
#elif defined(ORBIS)
|
#elif defined(ORBIS)
|
||||||
static enum input_driver_enum INPUT_DEFAULT_DRIVER = INPUT_PS4;
|
static enum input_driver_enum INPUT_DEFAULT_DRIVER = INPUT_PS4;
|
||||||
#elif defined(__CELLOS_LV2__)
|
#elif defined(__CELLOS_LV2__)
|
||||||
|
@ -875,6 +878,8 @@ const char *config_get_default_input(void)
|
||||||
return "sdl2";
|
return "sdl2";
|
||||||
case INPUT_DINPUT:
|
case INPUT_DINPUT:
|
||||||
return "dinput";
|
return "dinput";
|
||||||
|
case INPUT_WINRAW:
|
||||||
|
return "raw";
|
||||||
case INPUT_X:
|
case INPUT_X:
|
||||||
return "x";
|
return "x";
|
||||||
case INPUT_WAYLAND:
|
case INPUT_WAYLAND:
|
||||||
|
|
|
@ -163,7 +163,9 @@ void d3d_input_driver(const char* input_name, const char* joypad_name, const inp
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_DINPUT
|
||||||
*input_data = input_dinput.init(joypad_name);
|
*input_data = input_dinput.init(joypad_name);
|
||||||
*input = *input_data ? &input_dinput : NULL;
|
*input = *input_data ? &input_dinput : NULL;
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,6 +98,12 @@ extern void *dinput_wgl;
|
||||||
extern void *dinput;
|
extern void *dinput;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_XINPUT) && !defined(HAVE_DINPUT)
|
||||||
|
#ifndef MAX_PADS
|
||||||
|
#define MAX_PADS 4
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct DISPLAYCONFIG_RATIONAL_CUSTOM {
|
typedef struct DISPLAYCONFIG_RATIONAL_CUSTOM {
|
||||||
UINT32 Numerator;
|
UINT32 Numerator;
|
||||||
UINT32 Denominator;
|
UINT32 Denominator;
|
||||||
|
@ -601,6 +607,10 @@ static LRESULT win32_handle_keyboard_event(HWND hwnd, UINT message,
|
||||||
if (input_get_ptr() == &input_dinput && (lparam >> 24 & 0x1))
|
if (input_get_ptr() == &input_dinput && (lparam >> 24 & 0x1))
|
||||||
keysym |= 0x80;
|
keysym |= 0x80;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
{
|
||||||
|
/* fix key binding issues on winraw when DirectInput is not available */
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
/* Key released? */
|
/* Key released? */
|
||||||
if (message == WM_KEYUP || message == WM_SYSKEYUP)
|
if (message == WM_KEYUP || message == WM_SYSKEYUP)
|
||||||
|
|
Loading…
Reference in New Issue