# HG changeset patch # User Sam Lantinga # Date 1239612581 0 # Node ID 48f1406df2a840a92ec0006b7473eb14c3752383 # Parent 3012f1c373617978101fc4061b815f5b128bf0a5 Fixed bug #675 Description From maf6@cornell.edu 2009-01-10 14:07:52 (-) [reply] Assuming the SDL project doesn't just want to pick these up from dinput8.lib or whatever instead, the definitions in SDL_dx5video.c should be: const DIDATAFORMAT c_dfDIKeyboard = { sizeof(DIDATAFORMAT), sizeof(DIOBJECTDATAFORMAT), 0x00000002, 256, 256, KBD_fmt }; const DIDATAFORMAT c_dfDIMouse = { sizeof(DIDATAFORMAT), sizeof(DIOBJECTDATAFORMAT), 0x00000002, 16, 7, PTR_fmt }; const DIDATAFORMAT c_dfDIJoystick = { sizeof(DIDATAFORMAT), sizeof(DIOBJECTDATAFORMAT), 0x00000001, 80, 44, JOY_fmt }; This way the call to IDirectInputDevice2_SetDataFormat in SDL_dx5events.c will succeed on x64. diff -r 3012f1c37361 -r 48f1406df2a8 src/video/windx5/SDL_dx5video.c --- a/src/video/windx5/SDL_dx5video.c Mon Apr 13 08:44:48 2009 +0000 +++ b/src/video/windx5/SDL_dx5video.c Mon Apr 13 08:49:41 2009 +0000 @@ -332,7 +332,7 @@ { &GUID_Key, 255, 0x8000FF0C, 0x00000000 }, }; -const DIDATAFORMAT c_dfDIKeyboard = { 24, 16, 0x00000002, 256, 256, KBD_fmt }; +const DIDATAFORMAT c_dfDIKeyboard = { sizeof(DIDATAFORMAT), sizeof(DIOBJECTDATAFORMAT), 0x00000002, 256, 256, KBD_fmt }; /* Mouse */ @@ -347,7 +347,7 @@ { NULL, 15, 0x80FFFF0C, 0x00000000 }, }; -const DIDATAFORMAT c_dfDIMouse = { 24, 16, 0x00000002, 16, 7, PTR_fmt }; +const DIDATAFORMAT c_dfDIMouse = { sizeof(DIDATAFORMAT), sizeof(DIOBJECTDATAFORMAT), 0x00000002, 16, 7, PTR_fmt }; /* Joystick */ @@ -399,7 +399,7 @@ { NULL, 79, 0x80FFFF0C, 0x00000000 }, }; -const DIDATAFORMAT c_dfDIJoystick = { 24, 16, 0x00000001, 80, 44, JOY_fmt }; +const DIDATAFORMAT c_dfDIJoystick = { sizeof(DIDATAFORMAT), sizeof(DIOBJECTDATAFORMAT), 0x00000001, 80, 44, JOY_fmt }; /* Initialization/Query functions */