Jump to content

  • Log In with Google      Sign In   
  • Create Account


DirectInput8 instead of XInput


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
5 replies to this topic

#1 gasto   Members   -  Reputation: 261

Like
0Likes
Like

Posted 30 April 2014 - 10:08 AM

Given that Xinput only accepts Xbox controllers(according to Microsoft), I am left with DirectInput8 to accept any type of generic joypad, or is there an alternative?

Edited by gasto, 30 April 2014 - 10:48 AM.

Intel Core 2 Quad CPU Q6600, 2.4 GHz. 3GB RAM. ATI Radeon HD 3400.

Sponsor:

#2 mhagain   Crossbones+   -  Reputation: 7578

Like
1Likes
Like

Posted 30 April 2014 - 10:27 AM

There's also Raw Input and Windows has a joystick API.  I believe that only DirectInput will give you effects such as force-feedback, but someone with more knowledge about this than me would have to provide further info.


It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.


#3 Tom KQT   Members   -  Reputation: 1536

Like
1Likes
Like

Posted 30 April 2014 - 10:49 AM

IMHO DirectInput still is the right way how to work with almost any game controller. But you still should first try to find XInput devices, because DirectInput has one small problem with the Xbox gamepad - it represents the two analog buttons (triggers) as a single analog axis and thus there's no difference between both buttons on 0 and both buttons fully held down.

Btw, there are many Xbox compatible controllers, I have one made by Logitech. So it doesn't have to be just the original controller for Xbox.



#4 Alessio1989   Members   -  Reputation: 1811

Like
1Likes
Like

Posted 30 April 2014 - 01:30 PM

DirectInput could be used for "legacy" gamepad, joystick, wheels, other game devices with force feedback, mouse and keyboard, whatever works with a HID driver..

For mouse and Keyboard imo is better to use the windows messages (and optionally raw input), however for most games DirectInput is just fine for mouse and keyboard too.

Xinput unfortunately support only xbox 360 controllers-like.

Starting from Windows 8 Microsoft added some new input API (sorta high-level win32 wrapper) for metro and desktop too, but they don't work on prior windows versions...


Edited by Alessio1989, 02 May 2014 - 10:13 AM.


#5 Tom KQT   Members   -  Reputation: 1536

Like
1Likes
Like

Posted 30 April 2014 - 03:54 PM

DirectInput can be used for mouse and keyboard, yep, but Microsoft itself doesn't recommend it.

So:

Mouse & keyboard - windows messages (or raw input, if you really want it).

Xbox compatible gamepads - Xinput (DirectInput works too, but with some limitations, so I don't recommend it).

All other game controllers - DirectInput.



#6 mhagain   Crossbones+   -  Reputation: 7578

Like
1Likes
Like

Posted 30 April 2014 - 04:34 PM

The problems with windows messages for mouse input are: (1) ballistics (you don't always want them and Microsoft's recommendation just blindly assumes that you do), (2) clipping the mouse pointer to the window rect, and (3) showing/hiding the cursor as appropriate.  These are all solvable, of course, but it would be nice to not have to worry about solving them.  Raw input solves (1) but not (2) and (3).  And as for the recommendation to run raw input in a hidden window on another thread which you periodically poll for status?  Put it all together and congragulations, you've just re-invented DirectInput.  So why would you re-invent DirectInput when DirectInput already exists?

 

The problem with DirectInput of course is that it's no longer updated, but if it otherwise meets your needs I don't see any issues with using it.


It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS