Seite 21 von 69

Re: Anti-Jammer-Thread

Verfasst: 22.07.2012, 15:54
von Chromanoid
sehr geil, etwas parteiisch, man hätte ruhig für alle Sprachen Religionen nehmen können, aber naja trotzdem sehr erheiternd.

Re: Anti-Jammer-Thread

Verfasst: 23.07.2012, 09:36
von Matthias Gubisch
Juhu Order-Independent-Transparency mit LinkedLists funktioniert :)

Re: Anti-Jammer-Thread

Verfasst: 24.07.2012, 16:43
von Chromanoid
NetBeans 7.2 ist draußen :D ich liebe NetBeans.
Jetzt übrigens auch mit C++11 Standard Support und schnellerer C++ Code Assistence.

Re: Anti-Jammer-Thread

Verfasst: 24.07.2012, 18:31
von klickverbot
Alexander Kornrumpf hat geschrieben:Kennt ihr das?

http://blog.aegisub.org/2008/12/if-prog ... gions.html
Nein, kannte ich bisher leider nicht. Und manche der Kommentare sind auch genial:
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.
Das ist so unverschämt zutreffend…

Re: Anti-Jammer-Thread

Verfasst: 28.07.2012, 09:06
von Krishty
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.

Re: Anti-Jammer-Thread

Verfasst: 28.07.2012, 12:40
von Schrompf
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.

Re: Anti-Jammer-Thread

Verfasst: 28.07.2012, 13:09
von Krishty
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.
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.
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.
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 :(

Re: Anti-Jammer-Thread

Verfasst: 29.07.2012, 03:19
von Krishty
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.

Re: Anti-Jammer-Thread

Verfasst: 29.07.2012, 11:36
von Schrompf
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.

Re: Anti-Jammer-Thread

Verfasst: 29.07.2012, 13:46
von Krishty
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.

Re: Anti-Jammer-Thread

Verfasst: 29.07.2012, 13:54
von dot
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...

Re: Anti-Jammer-Thread

Verfasst: 29.07.2012, 14:17
von Krishty
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?!

Re: Anti-Jammer-Thread

Verfasst: 30.07.2012, 16:12
von BeRsErKeR
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?!
Wahrscheinlich wurde <NUL> erst später erfunden. ;)

Re: Anti-Jammer-Thread

Verfasst: 30.07.2012, 16:47
von kaiserludi
BeRsErKeR hat geschrieben:Wahrscheinlich wurde <NUL> erst später erfunden. ;)
Ich halte
Krishty hat geschrieben:Machen die das nur, um mich zu ärgern?!
für wahrscheinlicher :mrgreen:

PS: Krishty, das ist der falsche Thread, zum Jammern ab in den Jammer-Thread ;)

Re: Anti-Jammer-Thread

Verfasst: 30.07.2012, 22:08
von Jörg
USB-Stick 2h20min im 40°-Waschgang 'behandelt' - Daten alle noch da. :D

Re: Anti-Jammer-Thread

Verfasst: 02.08.2012, 21:08
von eXile
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).

Re: Anti-Jammer-Thread

Verfasst: 02.08.2012, 23:15
von CodingCat
In John Carmack's Keynote, die in wenigen Minuten beginnt, wird davon sicher auch die Rede sein: Livestream

Re: Anti-Jammer-Thread

Verfasst: 03.08.2012, 09:35
von Thoran
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

Re: Anti-Jammer-Thread

Verfasst: 03.08.2012, 14:32
von antisteo
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

Re: Anti-Jammer-Thread

Verfasst: 03.08.2012, 21:40
von eXile

Re: Anti-Jammer-Thread

Verfasst: 04.08.2012, 12:05
von Schrompf
@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.

Re: Anti-Jammer-Thread

Verfasst: 04.08.2012, 13:28
von klickverbot
Schrompf hat geschrieben:Wie Hitler es bereits treffend ausgedrückt hat: const hilft dem Compiler keinen Meter, es ist für den Programmierer.
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… ;)

Re: Anti-Jammer-Thread

Verfasst: 04.08.2012, 17:21
von Schrompf
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.

Re: Anti-Jammer-Thread

Verfasst: 04.08.2012, 18:43
von Krishty
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.

Re: Anti-Jammer-Thread

Verfasst: 04.08.2012, 18:51
von kaiserludi
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.
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).

Re: Anti-Jammer-Thread

Verfasst: 04.08.2012, 18:57
von Krishty
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.

Re: Anti-Jammer-Thread

Verfasst: 04.08.2012, 19:27
von kaiserludi
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.

Re: Anti-Jammer-Thread

Verfasst: 04.08.2012, 19:30
von Krishty
Ich sehe aber nicht, wozu man dabei default-const braucht. Der umgekehrte Weg, nicht veränderte Sachen const zu deklarieren, geht doch genauso.

Re: Anti-Jammer-Thread

Verfasst: 04.08.2012, 19:43
von kaiserludi
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.
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.

Re: Anti-Jammer-Thread

Verfasst: 05.08.2012, 15:10
von Chromanoid
hehe
Bild