Zeichnen in andere Fenster - ohne Flackern?
-
Hi, ich möchte mir ein Programm schreiben, das während ich z.B. ein Spiel im Fullscreen zocke, ein halbtransparentes Rechteck ins spiel oben links zeichnet. Das mit dem Hook, halbtransparentes Rechteck - alles ok. doch das Rechteck flackert immer total. Wie kann ich das lösen? soll ich jetzt etwa nen Backbuffer vom Backbuffer des Spiels erstellen um dort mein Rechteck draufzuzeichnen? Code kann ich nicht vorzeigen - ist eben genau der Code, den man zum zeichnen eines Rechtecks braucht. nur jetzt würde ich gerne wissen, wie ich das flackern umgehen kann. Kann mir da einer Tipps geben?
mfg
-
ich hab mal was von directx hooks gehört.
recherchier mal in die richtung.
Vielleicht kann man sich in die render-procedur reinhooken.
Kann aber sein, dass du dann unterschiedliche applikationen unterscheiden musst und die seperat handelst.
-
Das flackern kommt dadurch, weil du sicher versuchst mit normalen GDI-Funktionen etwas ins Bild zu malen? Da dein Spiel sicherlich DirectX oder OpenGL benutzt wird das so auch nie was werden.
Such einfach mal nach Overlays das ist sicher die einfachste Methode oder etwas besser aber auch aufwaendiger hook einfach Direct3D oder OpenGL mit nem Wrapper, gibt genügend Beispiele im Netz.Tobi
-
Was ist denn von beiden die bessere Methode? Ich habe mal nach den Schlüsselwörtern gegooglet und es kamen immer komplizierte Beispiele heraus, die nicht mal Funktioniert haben. Das Ziel ist eben, dass ich nur einen normalen Text in mein Spiel zeichnen will (WC III). Eignen sich jetzt overlays besser, oder soll ich gleich die ganze Funktion hooken? Bei Overlays habe ich nichts gefunden, nur bei Hook und die konnte ich gar nicht erst verwenden. Es muss aber möglich sein, da die WCIII banlist ebenfalls einen Hook verwendet ("dxhook.dll").
mfg