//------------------------------------------------------------------------------------------ // Function name: Mine_Direct3DCreate9 // Description: The trampoline for Direct3DCreate9 call. In it we create our own IDirect3D9 // object, which inherits IDirect3D9. It enables us to manipulate calls used // for this device as we are the middle man in this configuration. // Parameters: SDKVersion : The SDK version for us to use. // Returns: Our IDirect3D9 instance which encapsulate a real IDirect3D9 //------------------------------------------------------------------------------------------ IDirect3D9* WINAPI Mine_Direct3DCreate9(UINT SDKVersion) { LOGFILE("Direct3DCreate9 called.\n"); IDirect3D9* Direct3D = Real_Direct3DCreate9(SDKVersion); IDirect3D9* Mine_Direct3D = new Direct3D9Wrapper(Direct3D); return Mine_Direct3D; }
static IDirect3D9 * __stdcall Mine_Direct3DCreate9(UINT SDKVersion) { IDirect3D9 *d3d9 = Real_Direct3DCreate9(SDKVersion); if(d3d9) { printLog("video/d3d9: IDirect3D9 object created.\n"); HookCOMOnce(&Real_D3D9_CreateDevice,d3d9,16,Mine_D3D9_CreateDevice); } return d3d9; }