get-global IDirectInputDevice8W::SetDataFormat check-ole32-error ; inline
: <buffer-size-diprop> ( size -- DIPROPDWORD )
- DIPROPDWORD <struct> [
+ DIPROPDWORD new [
diph>>
DIPROPDWORD heap-size >>dwSize
DIPROPHEADER heap-size >>dwHeaderSize
MOUSE-BUFFER-SIZE DIDEVICEOBJECTDATA <c-array> +mouse-buffer+ set-global ;
: device-info ( device -- DIDEVICEIMAGEINFOW )
- DIDEVICEINSTANCEW <struct>
+ DIDEVICEINSTANCEW new
DIDEVICEINSTANCEW heap-size >>dwSize
[ IDirectInputDevice8W::GetDeviceInfo check-ole32-error ] keep ; inline
: device-caps ( device -- DIDEVCAPS )
- DIDEVCAPS <struct>
+ DIDEVCAPS new
DIDEVCAPS heap-size >>dwSize
[ IDirectInputDevice8W::GetCapabilities check-ole32-error ] keep ; inline
{ 0 0 } >>dim ;
: (device-notification-filter) ( -- DEV_BROADCAST_DEVICEW )
- DEV_BROADCAST_DEVICEW <struct>
+ DEV_BROADCAST_DEVICEW new
DEV_BROADCAST_DEVICEW heap-size >>dbcc_size
DBT_DEVTYP_DEVICEINTERFACE >>dbcc_devicetype ;
IDirectInputDevice8W::GetDeviceState check-ole32-error ;
: (read-controller) ( handle template -- state )
- swap [ DIJOYSTATE2 <struct> [ get-device-state ] keep ]
+ swap [ DIJOYSTATE2 new [ get-device-state ] keep ]
[ fill-controller-state ] [ drop f ] with-acquisition ;
M: dinput-game-input-backend read-controller