Anti-Jammer-Thread
- Chromanoid
- Moderator
- Beiträge: 4258
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Anti-Jammer-Thread
sehr geil, etwas parteiisch, man hätte ruhig für alle Sprachen Religionen nehmen können, aber naja trotzdem sehr erheiternd.
-
- Establishment
- Beiträge: 470
- Registriert: 01.03.2009, 19:09
Re: Anti-Jammer-Thread
Juhu Order-Independent-Transparency mit LinkedLists funktioniert :)
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
- Chromanoid
- Moderator
- Beiträge: 4258
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: Anti-Jammer-Thread
NetBeans 7.2 ist draußen :D ich liebe NetBeans.
Jetzt übrigens auch mit C++11 Standard Support und schnellerer C++ Code Assistence.
Jetzt übrigens auch mit C++11 Standard Support und schnellerer C++ Code Assistence.
-
- Establishment
- Beiträge: 191
- Registriert: 01.03.2009, 19:22
- Echter Name: David N.
Re: Anti-Jammer-Thread
Nein, kannte ich bisher leider nicht. Und manche der Kommentare sind auch genial:Alexander Kornrumpf hat geschrieben:Kennt ihr das?
http://blog.aegisub.org/2008/12/if-prog ... gions.html
Das ist so unverschämt zutreffend…ActionScript - Is like evangelical Christianity. It started off very free form, dynamic and a bit loopy. But then became very strongly focused on type and more event driven.
- Krishty
- Establishment
- Beiträge: 8240
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
RawInput in Verbindung mit der HID API funktioniert einfach super. Egal, ob ich hier mein Gamepad, meinen Joystick, oder mein Lenkrad einstöpsle – ich kann mit allem mehr oder weniger sofort steuern.
Orientiert habe ich mich für das Ganze an diesem CodeProject-Artikel; aber falls allgemeines Interesse an der tieferen Bedeutung der API-Aufrufe und Datenstrukturen besteht, könnte ich nächste Woche ein Tutorial oder einen Kurzartikel darüber anfangen.
Orientiert habe ich mich für das Ganze an diesem CodeProject-Artikel; aber falls allgemeines Interesse an der tieferen Bedeutung der API-Aufrufe und Datenstrukturen besteht, könnte ich nächste Woche ein Tutorial oder einen Kurzartikel darüber anfangen.
- Schrompf
- Moderator
- Beiträge: 4855
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas Ziegenhagen
- Wohnort: Dresden
- Kontaktdaten:
Re: Anti-Jammer-Thread
Ich hätte weitergehendes Interesse. Falls man über die HID-API auch die menschenlesbaren Namen der Steuerelemente bekommen könnte, müsste ich DirectInput komplett rauswerfen können. Das wär mir Arbeit wert.
Hast Du irgendwas zur Emulation der Windows Mausbeschleunigung gefunden? Ich habe im Zusammenhang mit RawInput mal einen Artikel dazu gefunden, aber ich finde den ums Verrecken nicht mehr wieder. Und die Nutzer beschweren sich langsam, dass die Mausbewegung sich so seltsam anfühlt.
Hast Du irgendwas zur Emulation der Windows Mausbeschleunigung gefunden? Ich habe im Zusammenhang mit RawInput mal einen Artikel dazu gefunden, aber ich finde den ums Verrecken nicht mehr wieder. Und die Nutzer beschweren sich langsam, dass die Mausbewegung sich so seltsam anfühlt.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
- Krishty
- Establishment
- Beiträge: 8240
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Zufällig habe ich schon während du den Post geschrieben hast daran gearbeitet, die Namen abzufragen. Leider ist das, was GetRawInputDeviceW() liefert, definitiv nicht, was wir wollen. Außerdem ist die Dokumentation der letzte Scheiß. Da steht weder, ob das Ergebnis nullterminiert ist, noch, dass das Ergebnis nicht in den out-Parameter wandert, und schließlich auch noch der Widerspruch, dass eine Anzahl Buchstaben zurückgegeben wird statt der Byte-Größe, die für den Rückgab ewert vermerkt ist. Ich habe tatsächlich 20 Minuten daran gesessen, diese scheiß ID auf den Bildschirm zu kriegen. Jetzt werde ich mal versuchen, das über die HID-API hinzukriegen.Schrompf hat geschrieben:Ich hätte weitergehendes Interesse. Falls man über die HID-API auch die menschenlesbaren Namen der Steuerelemente bekommen könnte, müsste ich DirectInput komplett rauswerfen können. Das wär mir Arbeit wert.
Im Augenblick nutze ich RI noch nicht für Tastatur und Maus; das wollte ich diese Woche angehen. Meine Erfahrung beschränkt sich ausschließlich auf einen Joystick, einen PlayStation-Controller und ein Lenkrad :(Hast Du irgendwas zur Emulation der Windows Mausbeschleunigung gefunden? Ich habe im Zusammenhang mit RawInput mal einen Artikel dazu gefunden, aber ich finde den ums Verrecken nicht mehr wieder. Und die Nutzer beschweren sich langsam, dass die Mausbewegung sich so seltsam anfühlt.
- Krishty
- Establishment
- Beiträge: 8240
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Hatte heute mittag versucht, den Namen rauszufinden. Ohne Erfolg. Zwei Tips:
1) Die HID API (und Raw Input ebenso) arbeiten nicht mit physikalischen Geräten, sondern mit Top Level Collections, also Funktionalitätssammlungen. Es ist möglich, dass ein Joystick bei dir sowohl als Flugsimulationsgerät als auch als generische Desktop-Steuerung abgefragt werden kann. Würdest du in diesem Fall alle Namen anzeigen, wären die also sowieso nicht eindeutig.
2) Der Name, den RawInput dir für eine Top Level Collection gibt, ist ein Pfad, den du in CreateFile() füttern kannst, um den Port zu dem Gerät zu öffnen. Theoretisch kannst du dann mit WriteFile() Pakete an den Treiber schicken, der dir so Sachen wie den Namen zurückgibt.
Mir persönlich ist es die Mühe nicht wert. Ich gebe ins Log die kryptischen Namen aus und konfrontiere den Benutzer bei den Optionen erst garnicht mit dem Namen des Geräts. Das soll nicht herablassend wirken, aber: Ich habe gerade leider größere Probleme als den Namen der Eingabegeräte; und falls ich jetzt damit anfangen würde, würde ich wieder einen Monat allein darauf verschwenden statt voranzukommen. Darum sorry, dass ich dir die Frage nicht beantworten kann.
Ein Post-Mortem zum Rest wird aber noch kommen.
1) Die HID API (und Raw Input ebenso) arbeiten nicht mit physikalischen Geräten, sondern mit Top Level Collections, also Funktionalitätssammlungen. Es ist möglich, dass ein Joystick bei dir sowohl als Flugsimulationsgerät als auch als generische Desktop-Steuerung abgefragt werden kann. Würdest du in diesem Fall alle Namen anzeigen, wären die also sowieso nicht eindeutig.
2) Der Name, den RawInput dir für eine Top Level Collection gibt, ist ein Pfad, den du in CreateFile() füttern kannst, um den Port zu dem Gerät zu öffnen. Theoretisch kannst du dann mit WriteFile() Pakete an den Treiber schicken, der dir so Sachen wie den Namen zurückgibt.
Mir persönlich ist es die Mühe nicht wert. Ich gebe ins Log die kryptischen Namen aus und konfrontiere den Benutzer bei den Optionen erst garnicht mit dem Namen des Geräts. Das soll nicht herablassend wirken, aber: Ich habe gerade leider größere Probleme als den Namen der Eingabegeräte; und falls ich jetzt damit anfangen würde, würde ich wieder einen Monat allein darauf verschwenden statt voranzukommen. Darum sorry, dass ich dir die Frage nicht beantworten kann.
Ein Post-Mortem zum Rest wird aber noch kommen.
- Schrompf
- Moderator
- Beiträge: 4855
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas Ziegenhagen
- Wohnort: Dresden
- Kontaktdaten:
Re: Anti-Jammer-Thread
Kein Problem, trotzdem Danke für Deine Mühen. Mir ging es in diesem Fall nur um die Anzeige der Steuerelemente, wenn der Nutzer den Joystick umbelegt. Also z.B. dass "Schießen" aktuell auf "gelber Button" gemappt ist. Ob der Button gelb ist oder nicht, seh ich ja im Programm nicht. Und DirectInput hat da einfache Wege, die Namen zu den Steuerelementen zu besorgen. Ich vermute, es gibt auch Wege mittels HID API. Aber das ist ein Ding für später.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
- Krishty
- Establishment
- Beiträge: 8240
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Hm. In der HID API heißen die Dinger alle „X“, „Y“, „throttle“, „hat switch“, „button 1“, usw. Du steuerst sie über eine Enumeration an, die hier ab Seite 26 beschrieben wird. Vielleicht ist das ja, was du meinst.
- dot
- Establishment
- Beiträge: 1734
- Registriert: 06.03.2004, 18:10
- Echter Name: Michael Kenzel
- Kontaktdaten:
Re: Anti-Jammer-Thread
Hier steht was von wegen "The string descriptors and designators associated with the usage or usage range (see Designator Index item and String Index item)". Vielleicht hilft das was!? Konnte nach kurzem Suchen leider nicht wirklich mehr drüber finden...
- Krishty
- Establishment
- Beiträge: 8240
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Ja; HidD_GetProductString() HidD_GetIndexedString() könnte ein weiterer Teil des Puzzles sein … ich weiß nur noch nicht, ob das HANDLE dort auch das Handle ist, das man via CreateFile() und dem von RawInput erhaltenen Namen geöffnet hat.
Nachtrag: Ja, scheint das HANDLE zu sein. Ich habe eben erfolgreich den String USB Joystick als Gerätebeschreibung gelesen. Die einzelnen Buttons liefern aber irgendwie nur nullterminierten binären Müll zurück … könnte daran liegen, dass ich hier ein 5–€–Produkt liegen habe. Wenn ich nachher wieder meine offline-Woche antrete, kann ich es mal mit einem „richtigen“ HID testen.
Nachtrag 2: prepared for raw input from HID "GreenAsia Inc. USB Joystick "
Warum padden die Hersteller alle ihre Gerätenamen ausgerechnet mit Leerzeichen?! Ich kann mich erinnern, dass sich meine alte GPU auch als "Radeon 1234 Series " gemeldet hat. Machen die das nur, um mich zu ärgern?!
Nachtrag: Ja, scheint das HANDLE zu sein. Ich habe eben erfolgreich den String USB Joystick als Gerätebeschreibung gelesen. Die einzelnen Buttons liefern aber irgendwie nur nullterminierten binären Müll zurück … könnte daran liegen, dass ich hier ein 5–€–Produkt liegen habe. Wenn ich nachher wieder meine offline-Woche antrete, kann ich es mal mit einem „richtigen“ HID testen.
Nachtrag 2: prepared for raw input from HID "GreenAsia Inc. USB Joystick "
Warum padden die Hersteller alle ihre Gerätenamen ausgerechnet mit Leerzeichen?! Ich kann mich erinnern, dass sich meine alte GPU auch als "Radeon 1234 Series " gemeldet hat. Machen die das nur, um mich zu ärgern?!
Re: Anti-Jammer-Thread
Wahrscheinlich wurde <NUL> erst später erfunden. ;)Krishty hat geschrieben:Nachtrag 2: prepared for raw input from HID "GreenAsia Inc. USB Joystick "
Warum padden die Hersteller alle ihre Gerätenamen ausgerechnet mit Leerzeichen?! Ich kann mich erinnern, dass sich meine alte GPU auch als "Radeon 1234 Series " gemeldet hat. Machen die das nur, um mich zu ärgern?!
Ohne Input kein Output.
-
- Establishment
- Beiträge: 467
- Registriert: 18.04.2002, 15:31
Re: Anti-Jammer-Thread
Ich halteBeRsErKeR hat geschrieben:Wahrscheinlich wurde <NUL> erst später erfunden. ;)
für wahrscheinlicher :mrgreen:Krishty hat geschrieben:Machen die das nur, um mich zu ärgern?!
PS: Krishty, das ist der falsche Thread, zum Jammern ab in den Jammer-Thread ;)
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
Re: Anti-Jammer-Thread
USB-Stick 2h20min im 40°-Waschgang 'behandelt' - Daten alle noch da. :D
Re: Anti-Jammer-Thread
Mich juckt's gerade verdammt in den Fingern, ob ich mir nicht ein Oculus-Devkit holen sollte (Auslieferung im Dezember 2012). Zumal meine Bank mir vor ein paar Monaten eine kostenlose Kreditkarte angeboten hat (meiner Meinung nach ist eine Kreditkarte für Käufe innerhalb von Deutschland absolut überflüssig, aber für internationale Käufe notwendig).
- CodingCat
- Establishment
- Beiträge: 1857
- Registriert: 02.03.2009, 21:25
- Wohnort: Student @ KIT
- Kontaktdaten:
Re: Anti-Jammer-Thread
In John Carmack's Keynote, die in wenigen Minuten beginnt, wird davon sicher auch die Rede sein: Livestream
alphanew.net (last updated 2011-07-02) | auf Twitter | Source Code: breeze 2 | lean C++ library | D3D Effects Lite
Re: Anti-Jammer-Thread
Ich bin mir ehrlich gesagt nicht sicher ob die Auflösung von 640x800 pro Auge, wirklich ausreichend ist, damit man einen guten scharfen Eindruck bekommt. Zugegebenermaßen ist es jetzt auch schon wieder 2 Jahre her seit ich zuletzt mit VR und AR und entsprechenden Brillen gearbeitet habe, aber bis dahin waren die Brillen alle nicht wirklich überzeugend auch wenn ihr Design von aussen ansprechend war ;) . Beworben wurden schon viele als bahnbrechend und revolutionär, auch was die Auflösung angeht, in der Praxis kam dann meist Ernüchterung.
My 2 cents.
Thoran
My 2 cents.
Thoran
Wer Rechtschreibfehler findet, darf diese gerne behalten.
Mein Entwicklertagebuch
Aktuelle Projekte: Universum: Domination (ehemalig AlphaOmega),Universum: Sternenjäger, PixelWars: Highscore-based Top-Down-Spaceshooter
Spieleengine Unreal 5
Mein Entwicklertagebuch
Aktuelle Projekte: Universum: Domination (ehemalig AlphaOmega),Universum: Sternenjäger, PixelWars: Highscore-based Top-Down-Spaceshooter
Spieleengine Unreal 5
Re: Anti-Jammer-Thread
Wir haben uns im gwX-Projekt mal im RealLife getroffen und sind recht produktiv gewesen
http://www.goldenwipf.de/gwf/topic_show.pl?tid=1067
http://www.goldenwipf.de/gwf/topic_show.pl?tid=1067
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
- Schrompf
- Moderator
- Beiträge: 4855
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas Ziegenhagen
- Wohnort: Dresden
- Kontaktdaten:
Re: Anti-Jammer-Thread
@antisteo: Cooles Ding! Man kann ne Menge erreichen, wenn man mal so konzentriert und persönlich zusammenarbeitet. Da sind all die Fernkommunikationswerkzeuge heutzutage kein Ersatz für.
@exile: wenn es nicht so anstrengend wär, würde ich das auch tun :) Wie Hitler es bereits treffend ausgedrückt hat: const hilft dem Compiler keinen Meter, es ist für den Programmierer. Und der kann - meiner Meinung nach - jede Hilfe gebrauchen.
@exile: wenn es nicht so anstrengend wär, würde ich das auch tun :) Wie Hitler es bereits treffend ausgedrückt hat: const hilft dem Compiler keinen Meter, es ist für den Programmierer. Und der kann - meiner Meinung nach - jede Hilfe gebrauchen.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
-
- Establishment
- Beiträge: 191
- Registriert: 01.03.2009, 19:22
- Echter Name: David N.
Re: Anti-Jammer-Thread
Ich habe schon lange nicht mehr so herzhaft gelacht wie beim Lesen dieses Vergleiches (ohne eXiles Beitrag als Kontext gesehen zu haben) – eine geniale Art, Godwin's Law zu erfüllen… ;)Schrompf hat geschrieben:Wie Hitler es bereits treffend ausgedrückt hat: const hilft dem Compiler keinen Meter, es ist für den Programmierer.
Zuletzt geändert von klickverbot am 04.08.2012, 18:38, insgesamt 1-mal geändert.
- Schrompf
- Moderator
- Beiträge: 4855
- Registriert: 25.02.2009, 23:44
- Benutzertext: Lernt nur selten dazu
- Echter Name: Thomas Ziegenhagen
- Wohnort: Dresden
- Kontaktdaten:
Re: Anti-Jammer-Thread
Von 0 auf Hitler in fünf Minuten. Gibt's sicher irgendwo schon ein Achievement für :) Der Gag ist leider nur aus dem von Exile verlinkten Beitrag geklaut.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
- Krishty
- Establishment
- Beiträge: 8240
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Meine Beta-Tester sagen mir, dass die mit den Windows-7-HID-Libs gelinkten Exes auch unter XP tadellos funktionieren. Da fällt mir ein Stein vom Herzen.
-
- Establishment
- Beiträge: 467
- Registriert: 18.04.2002, 15:31
Re: Anti-Jammer-Thread
Hätte was. Leider wohl nicht praktikabel, weil es jeglichen vorhandenen Code funktionsuntüchtig machen würde (andererseits wäre ein Skript, welche über vorhandenen Code läuft und alles, was nicht als const gekennzeichnet ist, als nonconst kennzeichnet und anschließend die const rausschmeißt, jetzt auch nicht gerade unmöglich).Frankly, if it were up to me, I would change the C/C++ language to make every variable const by default and adding the nonconst or changeable (or take over mutable) keyword for the ones you want to modify. It would make life much more pleasant.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
- Krishty
- Establishment
- Beiträge: 8240
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Wäre mir egal, ich hätte nichts davon. In meinem Text ist ein Drittel const, ein Drittel nicht-const und der Rest sind Rvalues. Gespart hätte ich also nichts.
-
- Establishment
- Beiträge: 467
- Registriert: 18.04.2002, 15:31
Re: Anti-Jammer-Thread
Für const-nazi Code bringt das auch nicht viel, aber man hat es ja oft nicht nur mit eigenem Code zu tun und wenn dann jeder, dessen Code man benutzt, etwas explizit als nonconst kennzeichnen muss, wenn er Schreibrechte darauf haben will, dann hilft das anderen, die später mit seinem Code arbeiten müssen, bei manchen doch durchaus.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
- Krishty
- Establishment
- Beiträge: 8240
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: Anti-Jammer-Thread
Ich sehe aber nicht, wozu man dabei default-const braucht. Der umgekehrte Weg, nicht veränderte Sachen const zu deklarieren, geht doch genauso.
-
- Establishment
- Beiträge: 467
- Registriert: 18.04.2002, 15:31
Re: Anti-Jammer-Thread
Der Unterschied ist: Wenn const default ist, MUSS man Sachen, die man verändern will, nonconst deklarieren, umgekehrt muss man nichts const deklarieren, wenn nonconst default ist, und kann alles nonconst lassen.Krishty hat geschrieben:Ich sehe aber nicht, wozu man dabei default-const braucht. Der umgekehrte Weg, nicht veränderte Sachen const zu deklarieren, geht doch genauso.
"Mir ist auch klar, dass der Tag, an dem ZFX und Developia zusammengehen werden der selbe Tag sein wird, an dem DirectGL rauskommt."
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
DirectGL, endlich ist es da :)
"According to the C++ standard, it's "undefined". That's a technical term that means, in theory, anything can happen: the program can crash, or keep running but generate garbage results, or send Bjarne Stroustrup an e-mail saying how ugly you are and how funny your mother dresses you." :shock:[/size]
- Chromanoid
- Moderator
- Beiträge: 4258
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg