![]() |
Direct3D/OGL hooken bzw. Fraps-Nachbau - wie?
Mahlzeit miteinander.
Das eine oder andere Mal kamen hier schon Fragen auf, wie man sowohl lesend, als auch schreibend Zugriff auf laufende Direct3D/OGL-Screens bekommt. Mich selbst kitzelt es ja nun auch schon länger, dieses mal zu versuchen. Dass das nicht ganz ohne ist weiss ich (habs ja auch schon öfter mal geschrieben ;)). Tja, und nun ist die Zeit gekommen: Ich bin heiss :D Ich habe mich mal ein wenig auf die Suche gemacht um zu erfahren wie man das ganze angehen könnte, wobei ich meinen Schwerpunkt zunächst auf DirectX legen werde, da man es auf Win-Plattformen doch etwas häufiger (bei Games o.ä.) antrifft. Folgendes habe ich herausbekommen:
Mein eigentliches Problem fängt dort an, wo es wirklich spannend wird: Welche Funktionen aus welchen DLLs und vor allem mit welchen Parametern sind meine Ziele? Was bekomme ich dort dann heraus? Zielsetzung ist ein Tool dass dem Screenshot/Screenvideo-Tool Fraps ähneln soll. Ich brauche also nur Zugriff auf den Front- oder Backbuffer, so dass ich ein Bitmap befüllen kann. Sekundäres Ziel wäre eine Ausgabe in das Direct3D-Programm, so dass man z.B. Auskunft über diverse Dinge geben kann, wie restlicher Plattenplatz, Framerate (evtl.), ob Aufnahme aktiv oder nicht, etc.pp. (Eventuell ließe sich ja sogar ein kleiner MP3-Player als Feature einbauen der direkt aus dem Spiel heraus bedient werden kann :D *träum*) Bei meinen Suchen bin ich auf ![]() Ich bin über wirklich jede Form von Hilfe dankbar, da sich zu dem Thema nicht allzuviel verständliches Material finden lässt. Gruss, Fabian |
Re: Direct3D/OGL hooken bzw. Fraps-Nachbau - wie?
beie opengl könnte ich dir das in ein paar minuten machen.
bei DirectX werden die einzelnen funktionen nicht exportiert, sondern man bekommt bei der erstellung nur einen pointer auf das "directX" projekt zurück, da habe ich leider icht so viel ahnung von aber unter opengl ist das alles recht einfach, man muss nur wglSwapBuffers hooken dnan kann man die framerate berechnen |
Re: Direct3D/OGL hooken bzw. Fraps-Nachbau - wie?
Erhält man bei der OGL-Lösung auch Zugriff auf die Pixeldaten? Dann wäre das ja schon mal ein kleiner Anfang :)
Wenn du zu dem Problem mit DX Links o.ä. hättest... ich lese alles, und das mit Wonne :) Danke schonmal! |
Re: Direct3D/OGL hooken bzw. Fraps-Nachbau - wie?
wglSwapBuffers bei jedem frame aufgerufen
Pixeldaten bekommt man da nicht kann man aber über glReadPixels jederzeit auslesen ne eiegen Dll injection + Hook unit hätte ich auch da, eigentlich ist das ein kinderspiel in opengl da ich das schon seit mehr als 2 jahren mache |
Re: Direct3D/OGL hooken bzw. Fraps-Nachbau - wie?
ich verweise mal auf den thread, da nicht immer doppelt in beide threads gepostet werden muss
![]() |
Re: Direct3D/OGL hooken bzw. Fraps-Nachbau - wie?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz