D3D9 Hooking

06/06/2009 21:37 Herscher#1
Guten Abend die Damen und Herren.

Wie im Titel des Threads angegeben geht es um D3D9 Hooking.

Die implementierung von den folgenden interfaces als Proxy habe ich bereits
erstellt:
IDirect3D9 -> D3D9Impl
IDirect3DBaseTexture9 -> D3DBaseTex9Imp
IDirect3DCubeTexture9 -> D3DCubeTex9Imp
IDirect3DDevice9 -> D3DDevice9Imp
IDirect3DIndexBuffer9 -> D3DIdxBuffer9Imp
IDirect3DResource9 -> D3DResource9Imp
IDirect3DSurface9 -> D3DSurface9Imp
IDirect3DSwapChain9 -> D3DSwapChain9Imp
IDirect3DTexture9 -> D3DTex9Imp
IDirect3DVertexBuffer9 -> D3DVertexBuffer9Imp
IDirect3DVolumeTexture9 -> D3DVolumeTex9Imp
IDirect3DVolume9 -> D3DVolume9Imp

Direct3DCreate9 ist ersetzt durch einen Proxy, der einen Pointer auf
D3D9Impl Proxy zurück liefert. D3D9Impl::CreateDevice resultiert
D3DDevice9Impl Proxy und so weiter und sofort.

Die beiden laufen auch ohne probleme.
Allerdings möchte ich jetzt auch gerne D3DTex9Impl einsetzen wenn eine
Textur mit D3DDevice9Impl::CreateTexture erstellt wird(Alpha-Werte von
Texturen im Speicher usw. ;))

Nur wenn ich einen Pointer auf D3DTex9Impl zurück gebe Schmieren alle
Spiele die ich getestet habe ab(Lineage II, Cod-World at War, Operation 7).

Hat wer rat?
06/06/2009 23:40 schlurmann#2
Olly is your friend. :p