3 TraceDirect3DDevice9::TraceDirect3DDevice9(IDirect3DDevice9* pOriginal) {
4 m_pIDirect3DDevice9 = pOriginal; // store the pointer to original object
7 TraceDirect3DDevice9::~TraceDirect3DDevice9(void) {
10 HRESULT TraceDirect3DDevice9::QueryInterface(REFIID riid, void** ppvObj) {
11 // check if original dll can provide interface. then send *our* address
14 HRESULT hRes = m_pIDirect3DDevice9->QueryInterface(riid, ppvObj);
16 if (hRes == NOERROR) {
23 ULONG TraceDirect3DDevice9::AddRef(void) {
24 return (m_pIDirect3DDevice9->AddRef());
27 ULONG TraceDirect3DDevice9::Release(void) {
28 // ATTENTION: This is a booby-trap ! Watch out !
29 // If we create our own sprites, surfaces, etc. (thus increasing the ref counter
30 // by external action), we need to delete that objects before calling the original
34 extern TraceDirect3DDevice9* gl_pmyIDirect3DDevice9;
36 // release/delete own objects
39 // Calling original function now
40 ULONG count = m_pIDirect3DDevice9->Release();
43 // now, the Original Object has deleted itself, so do we here
44 gl_pmyIDirect3DDevice9 = NULL;
45 delete (this); // destructor will be called automatically
51 HRESULT TraceDirect3DDevice9::TestCooperativeLevel(void) {
52 return (m_pIDirect3DDevice9->TestCooperativeLevel());
55 UINT TraceDirect3DDevice9::GetAvailableTextureMem(void) {
56 return (m_pIDirect3DDevice9->GetAvailableTextureMem());
59 HRESULT TraceDirect3DDevice9::EvictManagedResources(void) {
60 return (m_pIDirect3DDevice9->EvictManagedResources());
63 HRESULT TraceDirect3DDevice9::GetDirect3D(IDirect3D9** ppD3D9) {
64 return (m_pIDirect3DDevice9->GetDirect3D(ppD3D9));
67 HRESULT TraceDirect3DDevice9::GetDeviceCaps(D3DCAPS9* pCaps) {
68 return (m_pIDirect3DDevice9->GetDeviceCaps(pCaps));
71 HRESULT TraceDirect3DDevice9::GetDisplayMode(UINT iSwapChain, D3DDISPLAYMODE* pMode) {
72 return (m_pIDirect3DDevice9->GetDisplayMode(iSwapChain, pMode));
75 HRESULT TraceDirect3DDevice9::GetCreationParameters(D3DDEVICE_CREATION_PARAMETERS *pParameters) {
76 return (m_pIDirect3DDevice9->GetCreationParameters(pParameters));
79 HRESULT TraceDirect3DDevice9::SetCursorProperties(UINT XHotSpot, UINT YHotSpot, IDirect3DSurface9* pCursorBitmap) {
80 return (m_pIDirect3DDevice9->SetCursorProperties(XHotSpot, YHotSpot, pCursorBitmap));
83 void TraceDirect3DDevice9::SetCursorPosition(int X, int Y, DWORD Flags) {
84 return (m_pIDirect3DDevice9->SetCursorPosition(X, Y, Flags));
87 BOOL TraceDirect3DDevice9::ShowCursor(BOOL bShow) {
88 return (m_pIDirect3DDevice9->ShowCursor(bShow));
91 HRESULT TraceDirect3DDevice9::CreateAdditionalSwapChain(D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** pSwapChain) {
92 return (m_pIDirect3DDevice9->CreateAdditionalSwapChain(pPresentationParameters, pSwapChain));
95 HRESULT TraceDirect3DDevice9::GetSwapChain(UINT iSwapChain, IDirect3DSwapChain9** pSwapChain) {
97 extern TraceDirect3DSwapChain9* gl_pmyIDirect3DSwapChain9;
99 // We only cover swapchain 0
101 return (m_pIDirect3DDevice9->GetSwapChain(iSwapChain, pSwapChain));
103 if (gl_pmyIDirect3DSwapChain9) {
104 *pSwapChain = gl_pmyIDirect3DSwapChain9;
108 // we intercept this call and provide our own "fake" SwapChain Object
109 IDirect3DSwapChain9* pOriginal = NULL;
110 HRESULT hres = m_pIDirect3DDevice9->GetSwapChain(iSwapChain, &pOriginal);
112 // Create our own SwapChain object and store it in global pointer
113 // note: the object will delete itself once Ref count is zero (similar to COM objects)
114 gl_pmyIDirect3DSwapChain9
115 = new TraceDirect3DSwapChain9(pOriginal, m_pIDirect3DDevice9);
117 // store our pointer (the fake one) for returning it to the calling progam
118 *pSwapChain = gl_pmyIDirect3DSwapChain9;
123 UINT TraceDirect3DDevice9::GetNumberOfSwapChains(void) {
124 return (m_pIDirect3DDevice9->GetNumberOfSwapChains());
127 HRESULT TraceDirect3DDevice9::Reset(D3DPRESENT_PARAMETERS* pPresentationParameters) {
128 return (m_pIDirect3DDevice9->Reset(pPresentationParameters));
131 HRESULT TraceDirect3DDevice9::Present(CONST RECT* pSourceRect,CONST RECT* pDestRect,HWND hDestWindowOverride,CONST RGNDATA* pDirtyRegion)
133 // we may want to draw own things here before flipping surfaces
134 // ... draw own stuff ...
135 this->ShowWeAreHere();
137 // call original routine
138 HRESULT hres = m_pIDirect3DDevice9->Present( pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion);
143 HRESULT TraceDirect3DDevice9::GetBackBuffer(UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) {
144 return (m_pIDirect3DDevice9->GetBackBuffer(iSwapChain, iBackBuffer, Type, ppBackBuffer));
147 HRESULT TraceDirect3DDevice9::GetRasterStatus(UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus) {
148 return (m_pIDirect3DDevice9->GetRasterStatus(iSwapChain, pRasterStatus));
151 HRESULT TraceDirect3DDevice9::SetDialogBoxMode(BOOL bEnableDialogs) {
152 return (m_pIDirect3DDevice9->SetDialogBoxMode(bEnableDialogs));
155 void TraceDirect3DDevice9::SetGammaRamp(UINT iSwapChain,DWORD Flags,CONST D3DGAMMARAMP* pRamp)
157 return(m_pIDirect3DDevice9->SetGammaRamp(iSwapChain,Flags,pRamp));
160 void TraceDirect3DDevice9::GetGammaRamp(UINT iSwapChain, D3DGAMMARAMP* pRamp) {
161 return (m_pIDirect3DDevice9->GetGammaRamp(iSwapChain, pRamp));
164 HRESULT TraceDirect3DDevice9::CreateTexture(UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle) {
165 return (m_pIDirect3DDevice9->CreateTexture(Width, Height, Levels, Usage, Format, Pool, ppTexture, pSharedHandle));
168 HRESULT TraceDirect3DDevice9::CreateVolumeTexture(UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle) {
169 return (m_pIDirect3DDevice9->CreateVolumeTexture(Width, Height, Depth, Levels, Usage, Format, Pool, ppVolumeTexture, pSharedHandle));
172 HRESULT TraceDirect3DDevice9::CreateCubeTexture(UINT EdgeLength, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DCubeTexture9** ppCubeTexture, HANDLE* pSharedHandle) {
173 return (m_pIDirect3DDevice9->CreateCubeTexture(EdgeLength, Levels, Usage, Format, Pool, ppCubeTexture, pSharedHandle));
176 HRESULT TraceDirect3DDevice9::CreateVertexBuffer(UINT Length, DWORD Usage, DWORD FVF, D3DPOOL Pool, IDirect3DVertexBuffer9** ppVertexBuffer, HANDLE* pSharedHandle) {
177 return (m_pIDirect3DDevice9->CreateVertexBuffer(Length, Usage, FVF, Pool, ppVertexBuffer, pSharedHandle));
180 HRESULT TraceDirect3DDevice9::CreateIndexBuffer(UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle) {
181 return (m_pIDirect3DDevice9->CreateIndexBuffer(Length, Usage, Format, Pool, ppIndexBuffer, pSharedHandle));
184 HRESULT TraceDirect3DDevice9::CreateRenderTarget(UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) {
185 return (m_pIDirect3DDevice9->CreateRenderTarget(Width, Height, Format, MultiSample, MultisampleQuality, Lockable, ppSurface, pSharedHandle));
188 HRESULT TraceDirect3DDevice9::CreateDepthStencilSurface(UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, BOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) {
189 return (m_pIDirect3DDevice9->CreateDepthStencilSurface(Width, Height, Format, MultiSample, MultisampleQuality, Discard, ppSurface, pSharedHandle));
192 HRESULT TraceDirect3DDevice9::UpdateSurface(IDirect3DSurface9* pSourceSurface,CONST RECT* pSourceRect,IDirect3DSurface9* pDestinationSurface,CONST POINT* pDestPoint)
194 return(m_pIDirect3DDevice9->UpdateSurface(pSourceSurface,pSourceRect,pDestinationSurface,pDestPoint));
197 HRESULT TraceDirect3DDevice9::UpdateTexture(IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) {
198 return (m_pIDirect3DDevice9->UpdateTexture(pSourceTexture, pDestinationTexture));
201 HRESULT TraceDirect3DDevice9::GetRenderTargetData(IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface) {
202 return (m_pIDirect3DDevice9->GetRenderTargetData(pRenderTarget, pDestSurface));
205 HRESULT TraceDirect3DDevice9::GetFrontBufferData(UINT iSwapChain, IDirect3DSurface9* pDestSurface) {
206 return (m_pIDirect3DDevice9->GetFrontBufferData(iSwapChain, pDestSurface));
209 HRESULT TraceDirect3DDevice9::StretchRect(IDirect3DSurface9* pSourceSurface,CONST RECT* pSourceRect,IDirect3DSurface9* pDestSurface,CONST RECT* pDestRect,D3DTEXTUREFILTERTYPE Filter)
211 return(m_pIDirect3DDevice9->StretchRect(pSourceSurface,pSourceRect,pDestSurface,pDestRect,Filter));
214 HRESULT TraceDirect3DDevice9::ColorFill(IDirect3DSurface9* pSurface,CONST RECT* pRect,D3DCOLOR color)
216 return(m_pIDirect3DDevice9->ColorFill(pSurface,pRect,color));
219 HRESULT TraceDirect3DDevice9::CreateOffscreenPlainSurface(UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) {
220 return (m_pIDirect3DDevice9->CreateOffscreenPlainSurface(Width, Height, Format, Pool, ppSurface, pSharedHandle));
223 HRESULT TraceDirect3DDevice9::SetRenderTarget(DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget) {
224 return (m_pIDirect3DDevice9->SetRenderTarget(RenderTargetIndex, pRenderTarget));
227 HRESULT TraceDirect3DDevice9::GetRenderTarget(DWORD RenderTargetIndex, IDirect3DSurface9** ppRenderTarget) {
228 return (m_pIDirect3DDevice9->GetRenderTarget(RenderTargetIndex, ppRenderTarget));
231 HRESULT TraceDirect3DDevice9::SetDepthStencilSurface(IDirect3DSurface9* pNewZStencil) {
232 return (m_pIDirect3DDevice9->SetDepthStencilSurface(pNewZStencil));
235 HRESULT TraceDirect3DDevice9::GetDepthStencilSurface(IDirect3DSurface9** ppZStencilSurface) {
236 return (m_pIDirect3DDevice9->GetDepthStencilSurface(ppZStencilSurface));
239 HRESULT TraceDirect3DDevice9::BeginScene(void) {
240 return (m_pIDirect3DDevice9->BeginScene());
243 HRESULT TraceDirect3DDevice9::EndScene(void) {
244 return (m_pIDirect3DDevice9->EndScene());
247 HRESULT TraceDirect3DDevice9::Clear(DWORD Count,CONST D3DRECT* pRects,DWORD Flags,D3DCOLOR Color,float Z,DWORD Stencil)
249 return(m_pIDirect3DDevice9->Clear(Count,pRects,Flags,Color,Z,Stencil));
252 HRESULT TraceDirect3DDevice9::SetTransform(D3DTRANSFORMSTATETYPE State,CONST D3DMATRIX* pMatrix)
254 return(m_pIDirect3DDevice9->SetTransform(State,pMatrix));
257 HRESULT TraceDirect3DDevice9::GetTransform(D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix) {
258 return (m_pIDirect3DDevice9->GetTransform(State, pMatrix));
261 HRESULT TraceDirect3DDevice9::MultiplyTransform(D3DTRANSFORMSTATETYPE State,CONST D3DMATRIX* pMatrix)
263 return(m_pIDirect3DDevice9->MultiplyTransform(State,pMatrix));
266 HRESULT TraceDirect3DDevice9::SetViewport(CONST D3DVIEWPORT9* pViewport)
268 return(m_pIDirect3DDevice9->SetViewport(pViewport));
271 HRESULT TraceDirect3DDevice9::GetViewport(D3DVIEWPORT9* pViewport) {
272 return (m_pIDirect3DDevice9->GetViewport(pViewport));
275 HRESULT TraceDirect3DDevice9::SetMaterial(CONST D3DMATERIAL9* pMaterial)
277 return(m_pIDirect3DDevice9->SetMaterial(pMaterial));
280 HRESULT TraceDirect3DDevice9::GetMaterial(D3DMATERIAL9* pMaterial) {
281 return (m_pIDirect3DDevice9->GetMaterial(pMaterial));
284 HRESULT TraceDirect3DDevice9::SetLight(DWORD Index,CONST D3DLIGHT9* pLight)
286 return(m_pIDirect3DDevice9->SetLight(Index,pLight));
289 HRESULT TraceDirect3DDevice9::GetLight(DWORD Index, D3DLIGHT9* pLight) {
290 return (m_pIDirect3DDevice9->GetLight(Index, pLight));
293 HRESULT TraceDirect3DDevice9::LightEnable(DWORD Index, BOOL Enable) {
294 return (m_pIDirect3DDevice9->LightEnable(Index, Enable));
297 HRESULT TraceDirect3DDevice9::GetLightEnable(DWORD Index, BOOL* pEnable) {
298 return (m_pIDirect3DDevice9->GetLightEnable(Index, pEnable));
301 HRESULT TraceDirect3DDevice9::SetClipPlane(DWORD Index, CONST float* pPlane) {
302 return (m_pIDirect3DDevice9->SetClipPlane(Index, pPlane));
305 HRESULT TraceDirect3DDevice9::GetClipPlane(DWORD Index, float* pPlane) {
306 return (m_pIDirect3DDevice9->GetClipPlane(Index, pPlane));
309 HRESULT TraceDirect3DDevice9::SetRenderState(D3DRENDERSTATETYPE State, DWORD Value) {
310 return (m_pIDirect3DDevice9->SetRenderState(State, Value));
313 HRESULT TraceDirect3DDevice9::GetRenderState(D3DRENDERSTATETYPE State, DWORD* pValue) {
314 return (m_pIDirect3DDevice9->GetRenderState(State, pValue));
317 HRESULT TraceDirect3DDevice9::CreateStateBlock(D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB) {
318 return (m_pIDirect3DDevice9->CreateStateBlock(Type, ppSB));
321 HRESULT TraceDirect3DDevice9::BeginStateBlock(void) {
322 return (m_pIDirect3DDevice9->BeginStateBlock());
325 HRESULT TraceDirect3DDevice9::EndStateBlock(IDirect3DStateBlock9** ppSB) {
326 return (m_pIDirect3DDevice9->EndStateBlock(ppSB));
329 HRESULT TraceDirect3DDevice9::SetClipStatus(CONST D3DCLIPSTATUS9* pClipStatus)
331 return(m_pIDirect3DDevice9->SetClipStatus(pClipStatus));
334 HRESULT TraceDirect3DDevice9::GetClipStatus(D3DCLIPSTATUS9* pClipStatus) {
335 return (m_pIDirect3DDevice9->GetClipStatus(pClipStatus));
338 HRESULT TraceDirect3DDevice9::GetTexture(DWORD Stage, IDirect3DBaseTexture9** ppTexture) {
339 return (m_pIDirect3DDevice9->GetTexture(Stage, ppTexture));
342 HRESULT TraceDirect3DDevice9::SetTexture(DWORD Stage, IDirect3DBaseTexture9* pTexture) {
343 return (m_pIDirect3DDevice9->SetTexture(Stage, pTexture));
346 HRESULT TraceDirect3DDevice9::GetTextureStageState(DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD* pValue) {
347 return (m_pIDirect3DDevice9->GetTextureStageState(Stage, Type, pValue));
350 HRESULT TraceDirect3DDevice9::SetTextureStageState(DWORD Stage, D3DTEXTURESTAGESTATETYPE Type, DWORD Value) {
351 return (m_pIDirect3DDevice9->SetTextureStageState(Stage, Type, Value));
354 HRESULT TraceDirect3DDevice9::GetSamplerState(DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) {
355 return (m_pIDirect3DDevice9->GetSamplerState(Sampler, Type, pValue));
358 HRESULT TraceDirect3DDevice9::SetSamplerState(DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) {
359 return (m_pIDirect3DDevice9->SetSamplerState(Sampler, Type, Value));
362 HRESULT TraceDirect3DDevice9::ValidateDevice(DWORD* pNumPasses) {
363 return (m_pIDirect3DDevice9->ValidateDevice(pNumPasses));
366 HRESULT TraceDirect3DDevice9::SetPaletteEntries(UINT PaletteNumber,CONST PALETTEENTRY* pEntries)
368 return(m_pIDirect3DDevice9->SetPaletteEntries(PaletteNumber, pEntries));
371 HRESULT TraceDirect3DDevice9::GetPaletteEntries(UINT PaletteNumber, PALETTEENTRY* pEntries) {
372 return (m_pIDirect3DDevice9->GetPaletteEntries(PaletteNumber, pEntries));
375 HRESULT TraceDirect3DDevice9::SetCurrentTexturePalette(UINT PaletteNumber) {
376 return (m_pIDirect3DDevice9->SetCurrentTexturePalette(PaletteNumber));
379 HRESULT TraceDirect3DDevice9::GetCurrentTexturePalette(UINT *PaletteNumber) {
380 return (m_pIDirect3DDevice9->GetCurrentTexturePalette(PaletteNumber));
383 HRESULT TraceDirect3DDevice9::SetScissorRect(CONST RECT* pRect)
385 return(m_pIDirect3DDevice9->SetScissorRect( pRect));
388 HRESULT TraceDirect3DDevice9::GetScissorRect(RECT* pRect) {
389 return (m_pIDirect3DDevice9->GetScissorRect(pRect));
392 HRESULT TraceDirect3DDevice9::SetSoftwareVertexProcessing(BOOL bSoftware) {
393 return (m_pIDirect3DDevice9->SetSoftwareVertexProcessing(bSoftware));
396 BOOL TraceDirect3DDevice9::GetSoftwareVertexProcessing(void) {
397 return (m_pIDirect3DDevice9->GetSoftwareVertexProcessing());
400 HRESULT TraceDirect3DDevice9::SetNPatchMode(float nSegments) {
401 return (m_pIDirect3DDevice9->SetNPatchMode(nSegments));
404 float TraceDirect3DDevice9::GetNPatchMode(void) {
405 return (m_pIDirect3DDevice9->GetNPatchMode());
408 HRESULT TraceDirect3DDevice9::DrawPrimitive(D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) {
409 return (m_pIDirect3DDevice9->DrawPrimitive(PrimitiveType, StartVertex, PrimitiveCount));
412 HRESULT TraceDirect3DDevice9::DrawIndexedPrimitive(D3DPRIMITIVETYPE PrimitiveType, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) {
413 return (m_pIDirect3DDevice9->DrawIndexedPrimitive(PrimitiveType, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount));
416 HRESULT TraceDirect3DDevice9::DrawPrimitiveUP(D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) {
417 return (m_pIDirect3DDevice9->DrawPrimitiveUP(PrimitiveType, PrimitiveCount, pVertexStreamZeroData, VertexStreamZeroStride));
420 HRESULT TraceDirect3DDevice9::DrawIndexedPrimitiveUP(D3DPRIMITIVETYPE PrimitiveType, UINT MinVertexIndex, UINT NumVertices, UINT PrimitiveCount, CONST void* pIndexData, D3DFORMAT IndexDataFormat, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) {
421 return (m_pIDirect3DDevice9->DrawIndexedPrimitiveUP(PrimitiveType, MinVertexIndex, NumVertices, PrimitiveCount, pIndexData, IndexDataFormat, pVertexStreamZeroData, VertexStreamZeroStride));
424 HRESULT TraceDirect3DDevice9::ProcessVertices(UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) {
425 return (m_pIDirect3DDevice9->ProcessVertices(SrcStartIndex, DestIndex, VertexCount, pDestBuffer, pVertexDecl, Flags));
428 HRESULT TraceDirect3DDevice9::CreateVertexDeclaration(CONST D3DVERTEXELEMENT9* pVertexElements,IDirect3DVertexDeclaration9** ppDecl)
430 return(m_pIDirect3DDevice9->CreateVertexDeclaration( pVertexElements,ppDecl));
433 HRESULT TraceDirect3DDevice9::SetVertexDeclaration(IDirect3DVertexDeclaration9* pDecl) {
434 return (m_pIDirect3DDevice9->SetVertexDeclaration(pDecl));
437 HRESULT TraceDirect3DDevice9::GetVertexDeclaration(IDirect3DVertexDeclaration9** ppDecl) {
438 return (m_pIDirect3DDevice9->GetVertexDeclaration(ppDecl));
441 HRESULT TraceDirect3DDevice9::SetFVF(DWORD FVF) {
442 return (m_pIDirect3DDevice9->SetFVF(FVF));
445 HRESULT TraceDirect3DDevice9::GetFVF(DWORD* pFVF) {
446 return (m_pIDirect3DDevice9->GetFVF(pFVF));
449 HRESULT TraceDirect3DDevice9::CreateVertexShader(CONST DWORD* pFunction,IDirect3DVertexShader9** ppShader)
451 return(m_pIDirect3DDevice9->CreateVertexShader(pFunction,ppShader));
454 HRESULT TraceDirect3DDevice9::SetVertexShader(IDirect3DVertexShader9* pShader) {
455 return (m_pIDirect3DDevice9->SetVertexShader(pShader));
458 HRESULT TraceDirect3DDevice9::GetVertexShader(IDirect3DVertexShader9** ppShader) {
459 return (m_pIDirect3DDevice9->GetVertexShader(ppShader));
462 HRESULT TraceDirect3DDevice9::SetVertexShaderConstantF(UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) {
463 return (m_pIDirect3DDevice9->SetVertexShaderConstantF(StartRegister, pConstantData, Vector4fCount));
466 HRESULT TraceDirect3DDevice9::GetVertexShaderConstantF(UINT StartRegister, float* pConstantData, UINT Vector4fCount) {
467 return (m_pIDirect3DDevice9->GetVertexShaderConstantF(StartRegister, pConstantData, Vector4fCount));
470 HRESULT TraceDirect3DDevice9::SetVertexShaderConstantI(UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) {
471 return (m_pIDirect3DDevice9->SetVertexShaderConstantI(StartRegister, pConstantData, Vector4iCount));
474 HRESULT TraceDirect3DDevice9::GetVertexShaderConstantI(UINT StartRegister, int* pConstantData, UINT Vector4iCount) {
475 return (m_pIDirect3DDevice9->GetVertexShaderConstantI(StartRegister, pConstantData, Vector4iCount));
478 HRESULT TraceDirect3DDevice9::SetVertexShaderConstantB(UINT StartRegister,CONST BOOL* pConstantData,UINT BoolCount)
480 return(m_pIDirect3DDevice9->SetVertexShaderConstantB(StartRegister,pConstantData,BoolCount));
483 HRESULT TraceDirect3DDevice9::GetVertexShaderConstantB(UINT StartRegister, BOOL* pConstantData, UINT BoolCount) {
484 return (m_pIDirect3DDevice9->GetVertexShaderConstantB(StartRegister, pConstantData, BoolCount));
487 HRESULT TraceDirect3DDevice9::SetStreamSource(UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride) {
488 return (m_pIDirect3DDevice9->SetStreamSource(StreamNumber, pStreamData, OffsetInBytes, Stride));
491 HRESULT TraceDirect3DDevice9::GetStreamSource(UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* OffsetInBytes, UINT* pStride) {
492 return (m_pIDirect3DDevice9->GetStreamSource(StreamNumber, ppStreamData, OffsetInBytes, pStride));
495 HRESULT TraceDirect3DDevice9::SetStreamSourceFreq(UINT StreamNumber, UINT Divider) {
496 return (m_pIDirect3DDevice9->SetStreamSourceFreq(StreamNumber, Divider));
499 HRESULT TraceDirect3DDevice9::GetStreamSourceFreq(UINT StreamNumber, UINT* Divider) {
500 return (m_pIDirect3DDevice9->GetStreamSourceFreq(StreamNumber, Divider));
503 HRESULT TraceDirect3DDevice9::SetIndices(IDirect3DIndexBuffer9* pIndexData) {
504 return (m_pIDirect3DDevice9->SetIndices(pIndexData));
507 HRESULT TraceDirect3DDevice9::GetIndices(IDirect3DIndexBuffer9** ppIndexData) {
508 return (m_pIDirect3DDevice9->GetIndices(ppIndexData));
511 HRESULT TraceDirect3DDevice9::CreatePixelShader(CONST DWORD* pFunction,IDirect3DPixelShader9** ppShader)
513 return(m_pIDirect3DDevice9->CreatePixelShader(pFunction,ppShader));
516 HRESULT TraceDirect3DDevice9::SetPixelShader(IDirect3DPixelShader9* pShader) {
517 return (m_pIDirect3DDevice9->SetPixelShader(pShader));
520 HRESULT TraceDirect3DDevice9::GetPixelShader(IDirect3DPixelShader9** ppShader) {
521 return (m_pIDirect3DDevice9->GetPixelShader(ppShader));
524 HRESULT TraceDirect3DDevice9::SetPixelShaderConstantF(UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) {
525 return (m_pIDirect3DDevice9->SetPixelShaderConstantF(StartRegister, pConstantData, Vector4fCount));
528 HRESULT TraceDirect3DDevice9::GetPixelShaderConstantF(UINT StartRegister, float* pConstantData, UINT Vector4fCount) {
529 return (m_pIDirect3DDevice9->GetPixelShaderConstantF(StartRegister, pConstantData, Vector4fCount));
532 HRESULT TraceDirect3DDevice9::SetPixelShaderConstantI(UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) {
533 return (m_pIDirect3DDevice9->SetPixelShaderConstantI(StartRegister, pConstantData, Vector4iCount));
536 HRESULT TraceDirect3DDevice9::GetPixelShaderConstantI(UINT StartRegister, int* pConstantData, UINT Vector4iCount) {
537 return (m_pIDirect3DDevice9->GetPixelShaderConstantI(StartRegister, pConstantData, Vector4iCount));
540 HRESULT TraceDirect3DDevice9::SetPixelShaderConstantB(UINT StartRegister,CONST BOOL* pConstantData,UINT BoolCount)
542 return(m_pIDirect3DDevice9->SetPixelShaderConstantB(StartRegister,pConstantData,BoolCount));
545 HRESULT TraceDirect3DDevice9::GetPixelShaderConstantB(UINT StartRegister, BOOL* pConstantData, UINT BoolCount) {
546 return (m_pIDirect3DDevice9->GetPixelShaderConstantB(StartRegister, pConstantData, BoolCount));
549 HRESULT TraceDirect3DDevice9::DrawRectPatch(UINT Handle,CONST float* pNumSegs,CONST D3DRECTPATCH_INFO* pRectPatchInfo)
551 return(m_pIDirect3DDevice9->DrawRectPatch(Handle,pNumSegs, pRectPatchInfo));
554 HRESULT TraceDirect3DDevice9::DrawTriPatch(UINT Handle,CONST float* pNumSegs,CONST D3DTRIPATCH_INFO* pTriPatchInfo)
556 return(m_pIDirect3DDevice9->DrawTriPatch(Handle, pNumSegs, pTriPatchInfo));
559 HRESULT TraceDirect3DDevice9::DeletePatch(UINT Handle) {
560 return (m_pIDirect3DDevice9->DeletePatch(Handle));
563 HRESULT TraceDirect3DDevice9::CreateQuery(D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) {
564 return (m_pIDirect3DDevice9->CreateQuery(Type, ppQuery));
567 // This is our test function
568 void TraceDirect3DDevice9::ShowWeAreHere(void) {
569 D3DRECT rec = { 1, 1, 50, 50 };
570 m_pIDirect3DDevice9->Clear(1, &rec, D3DCLEAR_TARGET, D3DCOLOR_ARGB(255, 255, 255, 0), 0, 0);