Den Speicher der Grafikarte auslesen
-
Moin.
Ist es eigentlich möglich den Speicher der Grafikkarte auszulesen? Also einfach mal schauen was da an Grafik so rumliegt? Bei Diversen konsolen wie Playstation geht das ja mit hilfe externer module. Ich schätze da brauch ich lowlevel zugriff oder?Ich weiß, ist eigentlich schwachsinnig aber interessiert mich einfach mal.

-
Hallo,
bei solchen Fragen immer das OS angeben.
MSDos: Videoram wird in den Arbeitsspeicher eingeblendet und liegt meist an festen Adressen. Es ist aber vom Videomodus abhängig. Im einfachsten Fall liegt ein 320x200 Bild an Adresse 0xa000 (64 KB). Oder über Vesa.
Linux: Benutzt man das Framebufferdevice, sollte man /dev/fbuf ??? lesen können.
Windows: Es gibt einen WinAPI Befehl, GetDesktopDC glaub ich, damit kann man dann einen DC fuer ganzen Desktop bekommen und den dann auslesen.
Oder man zieht DDraw zu rate, dort kann man die PrimarySurface noch locken.
-
Sorry hab ich vergessen zu erwähnen, ich verwende natürlich Windows. :p
-
Achso, die Videodaten liegen aber nicht immer unbedingt linear dort. Also nicht wundern, sondern sich mit dem benutzten Videomodus beschaeftigen.
-
Soweit ich weiß kann man mit GetDesktopDC "nur" screenshots machen. Es muss doch einen Weg geben in den Speicher zu kommen. Schließlich gibt es ja auch debugger für den Prozessor (z.B. softice oder ollydebug) mit denen man in den Assembler code schauen kann der so im Arbeitsspeicher rumliegt.
Es muss nicht unbedingt selbstprogrammiert sein, mir würde auch ein programm reichen, welches sowas schon kann. Das wäre dann eine art debugger für die Grafikkarte lol
-
mehr oder weniger geht das z.b. mit perfHUD von nvidia.
-
Dieser Thread wurde von Moderator/in kingruedi aus dem Forum Rund um die Programmierung in das Forum Spiele-/Grafikprogrammierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.