Tastatur/Maus unter Linux auslesen

Hallo,
ich habe folgendes Problem:
ich habe eine OpenGl-Anwendung in C programmiert (Debian-Linux). Nun möchte ich während die Anwendung läuft diese per Tastatur und Maus steuern, ich weiß aber nicht wie das geht. Ich weiß nur so viel, dass man glaube ich irgendwie irgentetwas mit dem x-server machen muss. Wie kann man auf die beiden Geräte zugreifen?
Mit GLUT möchte ich aber nicht arbeiten, weil es mir nicht gefällt.
Gruß,
Ulrich

ich habe eine OpenGl-Anwendung in C programmiert
(Debian-Linux). Nun möchte ich während die Anwendung läuft
diese per Tastatur und Maus steuern, ich weiß aber nicht wie
das geht. Ich weiß nur so viel, dass man glaube ich irgendwie
irgentetwas mit dem x-server machen muss. Wie kann man auf die
beiden Geräte zugreifen?

Am einfachsten dürfte es sein, wenn du dafür z.B. SDL (http://www.libsdl.org/index.php) oder Allegro (http://www.talula.demon.co.uk/allegro/) verwendest. Beide stellen Funktionen zur Eingabebehandlung zur Verfügung, ohne dass man dafür „ganz runter“ zu X oder sogar auf Device-Ebene muss, was der Legende zufolge schlecht für’s Gehirn sein soll :wink:. Die Änderungen am vorhandenen Programm dürften sich in sehr engen Grenzen halten.

Hallo,

Am einfachsten dürfte es sein, wenn du dafür z.B. SDL
(http://www.libsdl.org/index.php) oder Allegro
(http://www.talula.demon.co.uk/allegro/) verwendest.

erstmal danke für die schnelle Antwort. Sind diese Bibliotheken denn auch schnell genug, oder machen die vielleicht viele Sachen gleichzeitig, die ich gar nicht brauche und die alles nur verlangsamen? Denn ich möchte bei meinem Projekt sehr auf geschwindigkeit achten, was auch unter anderem der Grund ist, dass ich nicht einfach GLUT nehme.

Gruß,
Ulrich

Ich empfehle dir „Free Glut“ dieses ist besser als das normale Glut.
Die änderungen an dem Programm müssten sich auch sehr in grenzen halten.
Mein Freund hat damit schon gearbeitet und der war sehr zufrieden damit.

Wegen der Performance brauchste dir bei „Free Glut“ auch keine sorgen machen. Leider hab ich jetzt hier keinen Link wo du das downloaden könntest musste einfach mal googeln^^! Hoffe das bring dich weiter…

Gruß

Wingman223

erstmal danke für die schnelle Antwort. Sind diese
Bibliotheken denn auch schnell genug, oder machen die
vielleicht viele Sachen gleichzeitig, die ich gar nicht
brauche und die alles nur verlangsamen?

In Anbetracht der Tatsache, dass SDL z.B. im Linux-Port von Unreal Tournament verwendet wurde, sollte das kein Thema sein. Der Overhead ist generell sehr gering, so dass du außer in extremen, unrealistischen Situationen kaum eine Verlangsamung bemerken wirst.

Denn ich möchte bei
meinem Projekt sehr auf geschwindigkeit achten, was auch unter
anderem der Grund ist, dass ich nicht einfach GLUT nehme.

Es gibt zwei Regeln der Optimierung:

  1. Tu’s nicht!
  2. (nur für Experten) Tu’s noch nicht!

GLUT oder andere Hilfsbibliotheken alleine wegen der Angst vor ein paar verlorenen Mikrosekunden nicht zu nutzen ist lächerlich. Wenn du deine Programme sauber planst und umsetzt kannst du später am fertigen Programm nach Herzenslust rumoptimieren und die eine oder andere Hilfsroutine durch eigene ersetzen, aber wenn du dir darüber schon so früh Gedanken machst kannst du’s eigentlich auch gleich lassen, weil du nie fertig werden wirst.

Alleine die Eingabe verursacht bei jedem Zustandswechsel einer Taste oder der Mausposition nur ein einziges Ereignis, und diese Ereignisse liegen für das Programm halbe Ewigkeiten auseinander. Du wirst in dem Bereich kaum was rausholen können, wenn dein Programm langsam läuft. Da gewinnst du mehr durch andere Kleinigkeiten, wie z.B. optimierte inverse Quadratwurzeln oder andere mathematische Spielereien. Aber wie gesagt, das kommt viel später.

Hallo,
ich werde es dann wohl mal mit SDL versuchen. Glut/Freeglut mag ich halt auch aus anderen Gründen nicht so gern.
Gruß,
Ulrich