Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi In Overlay Zeichnen? (https://www.delphipraxis.net/16955-overlay-zeichnen.html)

TheXception 26. Feb 2004 10:13


In Overlay Zeichnen?
 
Bestimmt kennt jeder das Programm Fraps.
Ich würde gern in Spielen etwas auf den bildschirm zeichnen kriege dies aber nicht hin.
Wäre sehr froh wenn mir jemand dabei helfen könnte.
Habe es schon mit routinen mit denen man auf den Desktop zeichen kann
probiert jedoch brauchte dies viel Rechenleistung und es flimmert so stark
das man des gezeichnete kaum lesen konnte.

dizzy 26. Feb 2004 18:54

Re: In Overlay Zeichnen?
 
Bei Fraps ist eine Abhandlung dabei (in der Help-HTML), wie man sowas machen kann. Aber es sei eines gesagt: Ist ist Teufel noch eins kein leichtes!!!
Was Fraps macht: Es ersetzt die DX-DLL's durch eigene, und reicht die Methodenaufrufe an das Original weiter. Führt aber vorher noch eigenen Code aus. Das Problem: Du musst eine (mehrere) DLL('s) schreiben, die ALLE Methoden des Originals mit den korrekten Parametern weiterreicht schreiben. Und ALLE sind unheimlich viele... und oft auch schlecht dokumentiert.
(Ich glaube das nennt sich "DLL-Hooking", bin mir da aber nicht sicher.)
Es werden noch 1-2 andere Varianten genannt, die aber weder einfacher sind, noch die gleichen Möglichkeiten bieten (also beschränkter sind).

Es ist bei Gott nicht einfach, aber ich wünsch' dir Glück! Wenn du was hast, SAG BESCHEID :mrgreen: (ich hatte das auch schon mal angedacht, aber dann GANZ schnell wieder verworfen ;) )


gruss,
dizzy

TheXception 2. Mär 2004 11:25

Re: In Overlay Zeichnen?
 
Na das scheint ja doch komplizerter als gedacht (ich glaube nicht das fraps ne dll ersetzt hätt ich gemerkt) da man ja eigentlich nur die exe braucht.
Wenn's aber so kompliziert sein sollt elass ichs lieber.

Vjay 2. Apr 2004 11:36

Re: In Overlay Zeichnen?
 
Gibts bei DirektX nicht auch sowas wie einen PageFlip, womit die gezeichnete Seite dann auf den Bildschirm gemalt wird. Man bräuchte nur diese eine Funktion in der benutzenden Anwendung "ersetzen" und seinen Krempel dazumalen. Wie man dies bewerkstelligt, dazu gibt es doch einige Beispiele hier und da. Davor kommt nochn schöner Prozess-Scanner welcher gerade die DirectX-Bibliotheken benutzt und der wird dann gehookt, fertig.

dizzy 2. Apr 2004 11:42

Re: In Overlay Zeichnen?
 
Genau das macht doch das DLL-Hooking, glaub ich. Es werden die DX-DLL's ersetzt, und sämtliche Methoden re-implementiert. Nur halt so, dass fast alle Aufrufe an die eigentliche DLL durchgeleitet werden, ABER beim PageFlip wird noch eigener Code vorgeschaltet. Dass man die einzelne Methode "Hooken" kann bezweifel ich. Aber ich würde mich über den Beweis des Gegenteilt tierisch freuen ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz