Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Stay InGame, Gamma :)
#1
Und da ist gleich der nächste Wunsch Wink

Seit ich meinen TFT Bildschirm habe, brauche ich dringend die InGame Gamma Funktion. Allerdings tötet sie meine Augen, wenn ich mal Alt-Tab drücke :twisted:

Daher meine Idee:
- man speichert während des logins das Handle vom DAoC Fenster
- wenn InGame Gamma aktiviert ist, wird ein 'watch' thread erzeugt (damit der Rest weiterlaufen kann)
- ändert sich der Focus (GetFocus()) auf das Handle eines DAoC Fensters, wird die Gamma Einstellung aktiviert
- ändert sich der Focus auf ein anderes Handle, wird die Einstellung deaktiviert

Ich weiß nicht, ob ein solcher Thread der jede Sekunde einmal getFocus() aufruft, eine große Belastung für den PC ist bzw. ob das überhaupt funktioniert Wink. Das werd ich heut abend einmal testen.

Falls man von einem Plugin aus Zugriff auf die Einstellungen von DAOC Butterfly hat (insb. das aktivieren/deaktivieren der InGame Gamma Funktion), könnte man es auch als Plugin schreiben.
Reply
#2
Ich habe das grad einmal ausprobiert, es ist eigentlich kein Problem das in einem Thread ablaufen zu lassen.

Allerdings muss ich mich korrigieren - GetFocus() ist die falsche Methode, GetForgroundWindow() ist richtig Smile

Falls es die Möglichkeit gibt, dass ein Plugin die die Option "Ingame-Gamma" (de)aktiviert, könnte ich versuchen, das als Plugin umzuschreiben. Ich hab allerdings bisher noch keine Ahnung, wie man ein Plugin für Butterfly schreibt :oops:
Reply
#3
Hatte das ursprünglich mittels eines Hooks implementiert als ich die Gamma-Funktion in Butterfly eingeführt hatte, gefiel mir aber nicht einen Hook in einem solchen kleinen Tool zu implementieren.

Ich werde das vorerst in der Hauptschleife aufnehmen (20-30 seks).
Reply
#4
http://daocbutterfly.eckieck.de/forum/vi...c.php?p=93

;)
Reply
#5
Gleich gesehen Tongue

Klingt super - ausführlichen Test gibts heute nacht bzw. morgen. Bis dahin schonmal vielen Dank für die Implementation. Smile
Reply
#6
Soo.. die dynamisch-Einstellung reduziert in jedem Fall das Augenkrebs-Risiko beim switchen *gg*

Wäre es evtl. möglich, die Zeit des Timer-Events für die dynamische Gamma-Einstellung selbst einzustellen, ggf. mit einer Warnung wenn sie aus einem bestimmten Bereich herausfällt (z.B. 100ms <= x < 10000ms)?

Oder meinst du eine Reduktion würde eine zu starke Rechnerbelastung sein?

Damit das nicht ganz grundlos ist, hier ein Beispiel wann es besser ist einen recht kleinen Wert zu haben: Ich switche aus DAoC raus und sofort wird die Gamma reduziert (idealfall, ich war kurz vor dem Timer Event), ich schaue im bereits aufgeschlagenen Firefox eine Quest-Loc nach, weil ich sie mal wieder vergessen habe und kann sofort wieder zurückswitchen (ca. 1 sek vergangen). Dann warte ich 9 Sekunden auf die erneute Korrektur der Gamma-Einstellung.

Wenn der Timer-Event im 100-1000 ms Bereich liegt, wird der Wechsel denke ich quasi "sofort" passieren - sofern der Prozessor das mitmacht.
Reply
#7
Eigentlich könnte der Timer auch ka 10 mal pro Sekunde laufen, in der Schleife sind derzeit (Sofern DAoC läuft) lediglich 4 klitzekleine API Aufrufe und eine lächerlich kleine mathematische Berechnung sowie eine gecachte Konfigurationsabfrage. Bei mir klingeln nur von Haus aus die Alarmglocken bei sich selbst wiederholenden Timern im Sekundentakt.

Ein Hook wäre hier eigentlich angebracht, jedoch doof wenn zwei Accounts eingeloggt sind, dann müssen gleich zwei Hooks laufen.

Hmm ich bin bin immo noch unentschlossen, im Zweifel realisiere ich es so wie Du vorgeschlagen hast mit manueller Anpassung des Timers auf minimal sagen wir 0,5-1 Sekunde, das müsste reichen, oder?
Reply
#8
500ms sollten locker reichen. Ich habe auch nur einen Kurz-Test gemacht mit nem Thread der einen Sleep(200) hat, damit die CPU entlastet wird. An sich ist die Sache mit Hooks sicherlich sauberer, ein ständig wiederholter Timer ist natürlich (genau wie ein Thread der Sleep() zur Entlastung nutzt) nicht ganz so schön.

Ich würd dir anbieten, das Feature zu testen, wenn du eine Vorab-Version rausgeben willst. Dann hättest du neben deinem System noch ein 2. Referenzsystem Smile
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)