Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Evrey

Treue Seele

  • »Evrey« ist der Autor dieses Themas

Beiträge: 245

Beruf: Weltherrscher

  • Private Nachricht senden

1

16.06.2013, 21:09

Raw Input & Gamepads (C++)

Ave!
Schreibe gerade 'n bissl am Code meines Spiels weiter und sitze nun an der Windows-Implementierung für Gamepads. Maus und Tastatur verarbeite ich mit Raw Input, also dachte ich daran, Raw Input auch für Gamepads zu verwenden. Wäre ziemlich praktisch, da ich dann nicht extra dafür irgendeine zweite Bibliothek wie z.B. DirectInput8 einbinden müsste. (XInput ist im Übrigen keine akzeptable Alternative. Eher ein potentiell zusätzliches Feature für irgendwann.) Ich bräuchte keine DirectInput8-Gamepad-Erklärung. Das kann ich und das ist auch momentan im Code verbaut.
Ich schweife ab...
Also... ich weiß schonmal, dass Gamepads zur UsagePage 1 und zur Usage 5 zugeordnet sind. So weit, so schön. Und ab da geht es wohl runter zum HID-Treiber, mit dem ich dann... irgendwas mache. Wie kriege ich jetzt also am besten aus einer WM_INPUT-Nachricht vom Typ RIM_TYPEHID den aktuellen Status des Gamepads, also Buttons, Axen, und das POVHat? Oder ist das gar so unsäglich umständlich, dass der Aufwand in keinem Verhältnis zu zusätzlichem DirectInput steht? Ich brauche im Übrigen eine Lösung, bei der ich auch zwischen mehreren Gamepads unterscheiden kann.

C-/C++-Quelltext

1
2
3
4
int main(int _argc, char** _argv) noexcept {
  asm volatile("lock cmpxchg8b %eax");
  return 0;
} // ::main
(Dieses kleine Biest vermochte einst x86-Prozessoren lahm zu legen.)

=> Und er blogt unter Hackish.Codes D:

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Evrey« (16.06.2013, 21:38)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

16.06.2013, 22:41

Have fun: http://zfx.info/viewtopic.php?f=11&t=2977 ;)

(DirectInput wäre in dem Fall aber vermutlich wesentlich einfacher und vor allem besser dokumentiert.)

Evrey

Treue Seele

  • »Evrey« ist der Autor dieses Themas

Beiträge: 245

Beruf: Weltherrscher

  • Private Nachricht senden

3

16.06.2013, 23:10

Der Herr dankt. °^°
Les ich mal durch und schau, wie weit ich komme.

C-/C++-Quelltext

1
2
3
4
int main(int _argc, char** _argv) noexcept {
  asm volatile("lock cmpxchg8b %eax");
  return 0;
} // ::main
(Dieses kleine Biest vermochte einst x86-Prozessoren lahm zu legen.)

=> Und er blogt unter Hackish.Codes D:

Werbeanzeige