//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #ifndef STUBD3DDEVICE_H #define STUBD3DDEVICE_H #ifdef _WIN32 #pragma once #endif #ifdef STUBD3D #include "locald3dtypes.h" #include "filesystem.h" #ifdef USE_FOPEN #include #define FPRINTF fprintf #else #define FPRINTF s_pFileSystem->FPrintf #endif #ifdef USE_FOPEN static FILE *s_FileHandle; #else static IFileSystem *s_pFileSystem; static FileHandle_t s_FileHandle; #endif class CStubD3DTexture : public IDirect3DTexture8 { private: IDirect3DTexture8 *m_pTexture; IDirect3DDevice8 *m_pDevice; public: CStubD3DTexture( IDirect3DTexture8 *pTexture, IDirect3DDevice8 *pDevice ) { m_pTexture = pTexture; m_pDevice = pDevice; } /*** IUnknown methods ***/ HRESULT __stdcall QueryInterface(REFIID riid, void** ppvObj) { FPRINTF( s_FileHandle, "IDirect3DTexture8::QueryInterface\n" ); return m_pTexture->QueryInterface( riid, ppvObj ); } ULONG __stdcall AddRef() { FPRINTF( s_FileHandle, "IDirect3DTexture8::AddRef\n" ); return m_pTexture->AddRef(); } ULONG __stdcall Release() { FPRINTF( s_FileHandle, "IDirect3DTexture8::Release\n" ); return m_pTexture->Release(); } /*** IDirect3DBaseTexture8 methods ***/ HRESULT __stdcall GetDevice( IDirect3DDevice8** ppDevice ) { FPRINTF( s_FileHandle, "IDirect3DTexture8::GetDevice\n" ); #if 0 *ppDevice = m_pDevice; return D3D_OK; #else return m_pTexture->GetDevice( ppDevice ); #endif } HRESULT __stdcall SetPrivateData( REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) { FPRINTF( s_FileHandle, "IDirect3DTexture8::SetPrivateData\n" ); return m_pTexture->SetPrivateData( refguid, pData, SizeOfData, Flags ); } HRESULT __stdcall GetPrivateData( REFGUID refguid,void* pData,DWORD* pSizeOfData ) { FPRINTF( s_FileHandle, "IDirect3DTexture8::GetPrivateData\n" ); return m_pTexture->GetPrivateData( refguid, pData, pSizeOfData ); } HRESULT __stdcall FreePrivateData( REFGUID refguid ) { FPRINTF( s_FileHandle, "IDirect3DTexture8::GetPrivateData\n" ); return m_pTexture->FreePrivateData( refguid ); } DWORD __stdcall SetPriority( DWORD PriorityNew ) { FPRINTF( s_FileHandle, "IDirect3DTexture8::SetPriority\n" ); return m_pTexture->SetPriority( PriorityNew ); } DWORD __stdcall GetPriority() { FPRINTF( s_FileHandle, "IDirect3DTexture8::GetPriority\n" ); return m_pTexture->GetPriority(); } void __stdcall PreLoad() { FPRINTF( s_FileHandle, "IDirect3DTexture8::PreLoad\n" ); m_pTexture->PreLoad(); } D3DRESOURCETYPE __stdcall GetType() { FPRINTF( s_FileHandle, "IDirect3DTexture8::GetType\n" ); return m_pTexture->GetType(); } DWORD __stdcall SetLOD( DWORD LODNew ) { FPRINTF( s_FileHandle, "IDirect3DTexture8::SetLOD\n" ); return m_pTexture->SetLOD( LODNew ); } DWORD __stdcall GetLOD() { FPRINTF( s_FileHandle, "IDirect3DTexture8::GetLOD\n" ); return m_pTexture->GetLOD(); } DWORD __stdcall GetLevelCount() { FPRINTF( s_FileHandle, "IDirect3DTexture8::GetLevelCount\n" ); return m_pTexture->GetLevelCount(); } HRESULT __stdcall GetLevelDesc(UINT Level,D3DSURFACE_DESC *pDesc) { FPRINTF( s_FileHandle, "IDirect3DTexture8::GetLevelCount\n" ); return m_pTexture->GetLevelDesc( Level, pDesc ); } HRESULT __stdcall GetSurfaceLevel(UINT Level,IDirect3DSurface8** ppSurfaceLevel) { FPRINTF( s_FileHandle, "IDirect3DTexture8::GetSurfaceLevel\n" ); return m_pTexture->GetSurfaceLevel( Level, ppSurfaceLevel ); } HRESULT __stdcall LockRect(UINT Level,D3DLOCKED_RECT* pLockedRect,CONST RECT* pRect,DWORD Flags) { FPRINTF( s_FileHandle, "IDirect3DTexture8::LockRect\n" ); return m_pTexture->LockRect( Level, pLockedRect, pRect, Flags ); } HRESULT __stdcall UnlockRect(UINT Level) { FPRINTF( s_FileHandle, "IDirect3DTexture8::UnlockRect\n" ); return m_pTexture->UnlockRect( Level ); } HRESULT __stdcall AddDirtyRect( CONST RECT* pDirtyRect ) { FPRINTF( s_FileHandle, "IDirect3DTexture8::AddDirtyRect\n" ); return m_pTexture->AddDirtyRect( pDirtyRect ); } }; class CStubD3DDevice : public IDirect3DDevice8 { public: CStubD3DDevice( IDirect3DDevice8 *pD3DDevice, IFileSystem *pFileSystem ) { Assert( pD3DDevice ); m_pD3DDevice = pD3DDevice; #ifdef USE_FOPEN s_FileHandle = fopen( "stubd3d.txt", "w" ); #else Assert( pFileSystem ); s_pFileSystem = pFileSystem; s_FileHandle = pFileSystem->Open( "stubd3d.txt", "w" ); #endif } ~CStubD3DDevice() { #ifdef USE_FOPEN fclose( s_FileHandle ); #else s_pFileSystem->Close( s_FileHandle ); #endif } private: IDirect3DDevice8 *m_pD3DDevice; public: /*** IUnknown methods ***/ HRESULT __stdcall QueryInterface(REFIID riid, void** ppvObj) { FPRINTF( s_FileHandle, "QueryInterface\n" ); return m_pD3DDevice->QueryInterface( riid, ppvObj ); } ULONG __stdcall AddRef() { FPRINTF( s_FileHandle, "AddRef\n" ); return m_pD3DDevice->AddRef(); } ULONG __stdcall Release() { FPRINTF( s_FileHandle, "Release\n" ); return m_pD3DDevice->Release(); delete this; } /*** IDirect3DDevice8 methods ***/ HRESULT __stdcall TestCooperativeLevel() { FPRINTF( s_FileHandle, "TestCooperativeLevel\n" ); return m_pD3DDevice->TestCooperativeLevel(); } UINT __stdcall GetAvailableTextureMem() { FPRINTF( s_FileHandle, "GetAvailableTextureMem\n" ); return m_pD3DDevice->GetAvailableTextureMem(); } HRESULT __stdcall ResourceManagerDiscardBytes(DWORD Bytes) { FPRINTF( s_FileHandle, "ResourceManagerDiscardBytes\n" ); return m_pD3DDevice->ResourceManagerDiscardBytes( Bytes ); } HRESULT __stdcall GetDirect3D(IDirect3D8** ppD3D8) { FPRINTF( s_FileHandle, "GetDirect3D\n" ); return m_pD3DDevice->GetDirect3D( ppD3D8 ); } HRESULT __stdcall GetDeviceCaps(D3DCAPS8* pCaps) { FPRINTF( s_FileHandle, "GetDeviceCaps\n" ); return m_pD3DDevice->GetDeviceCaps( pCaps ); } HRESULT __stdcall GetDisplayMode(D3DDISPLAYMODE* pMode) { FPRINTF( s_FileHandle, "GetDisplayMode\n" ); return m_pD3DDevice->GetDisplayMode( pMode ); } HRESULT __stdcall GetCreationParameters(D3DDEVICE_CREATION_PARAMETERS *pParameters) { FPRINTF( s_FileHandle, "GetCreationParameters\n" ); return m_pD3DDevice->GetCreationParameters( pParameters ); } HRESULT __stdcall SetCursorProperties(UINT XHotSpot,UINT YHotSpot,IDirect3DSurface8* pCursorBitmap) { FPRINTF( s_FileHandle, "SetCursorProperties\n" ); return m_pD3DDevice->SetCursorProperties( XHotSpot, YHotSpot, pCursorBitmap ); } void __stdcall SetCursorPosition(UINT XScreenSpace,UINT YScreenSpace,DWORD Flags) { FPRINTF( s_FileHandle, "SetCursorPosition\n" ); m_pD3DDevice->SetCursorPosition( XScreenSpace, YScreenSpace, Flags ); } BOOL __stdcall ShowCursor(BOOL bShow) { FPRINTF( s_FileHandle, "ShowCursor\n" ); return m_pD3DDevice->ShowCursor( bShow ); } HRESULT __stdcall CreateAdditionalSwapChain(D3DPRESENT_PARAMETERS* pPresentationParameters,IDirect3DSwapChain8** pSwapChain) { FPRINTF( s_FileHandle, "CreateAdditionalSwapChain\n" ); return m_pD3DDevice->CreateAdditionalSwapChain( pPresentationParameters, pSwapChain ); } HRESULT __stdcall Reset(D3DPRESENT_PARAMETERS* pPresentationParameters) { FPRINTF( s_FileHandle, "Reset\n" ); return m_pD3DDevice->Reset( pPresentationParameters ); } HRESULT __stdcall Present(CONST RECT* pSourceRect,CONST RECT* pDestRect,HWND hDestWindowOverride,CONST RGNDATA* pDirtyRegion) { FPRINTF( s_FileHandle, "Present\n" ); return m_pD3DDevice->Present( pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion ); } HRESULT __stdcall GetBackBuffer(UINT BackBuffer,D3DBACKBUFFER_TYPE Type,IDirect3DSurface8** ppBackBuffer) { FPRINTF( s_FileHandle, "GetBackBuffer\n" ); return m_pD3DDevice->GetBackBuffer( BackBuffer, Type, ppBackBuffer ); } HRESULT __stdcall GetRasterStatus(D3DRASTER_STATUS* pRasterStatus) { FPRINTF( s_FileHandle, "GetRasterStatus\n" ); return m_pD3DDevice->GetRasterStatus( pRasterStatus ); } void __stdcall SetGammaRamp(DWORD Flags,CONST D3DGAMMARAMP* pRamp) { FPRINTF( s_FileHandle, "SetGammaRamp\n" ); m_pD3DDevice->SetGammaRamp( Flags, pRamp ); } void __stdcall GetGammaRamp(D3DGAMMARAMP* pRamp) { FPRINTF( s_FileHandle, "GetGammaRamp\n" ); m_pD3DDevice->GetGammaRamp( pRamp ); } HRESULT __stdcall CreateTexture(UINT Width,UINT Height,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DTexture8** ppTexture) { FPRINTF( s_FileHandle, "CreateTexture\n" ); #if 0 HRESULT ret = m_pD3DDevice->CreateTexture( Width, Height, Levels, Usage, Format, Pool, ppTexture ); if( ret == D3D_OK ) { *ppTexture = new CStubD3DTexture( *ppTexture, this ); return ret; } else { return ret; } #else return m_pD3DDevice->CreateTexture( Width, Height, Levels, Usage, Format, Pool, ppTexture ); #endif } HRESULT __stdcall CreateVolumeTexture(UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DVolumeTexture8** ppVolumeTexture) { FPRINTF( s_FileHandle, "CreateVolumeTexture\n" ); return m_pD3DDevice->CreateVolumeTexture( Width, Height, Depth, Levels, Usage, Format, Pool, ppVolumeTexture ); } HRESULT __stdcall CreateCubeTexture(UINT EdgeLength,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DCubeTexture8** ppCubeTexture) { FPRINTF( s_FileHandle, "CreateCubeTexture\n" ); return m_pD3DDevice->CreateCubeTexture( EdgeLength, Levels, Usage, Format, Pool, ppCubeTexture ); } HRESULT __stdcall CreateVertexBuffer(UINT Length,DWORD Usage,DWORD FVF,D3DPOOL Pool,IDirect3DVertexBuffer8** ppVertexBuffer) { FPRINTF( s_FileHandle, "CreateVertexBuffer\n" ); return m_pD3DDevice->CreateVertexBuffer( Length, Usage, FVF, Pool, ppVertexBuffer ); } HRESULT __stdcall CreateIndexBuffer(UINT Length,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DIndexBuffer8** ppIndexBuffer) { FPRINTF( s_FileHandle, "CreateIndexBuffer\n" ); return m_pD3DDevice->CreateIndexBuffer( Length, Usage, Format, Pool, ppIndexBuffer ); } HRESULT __stdcall CreateRenderTarget(UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,BOOL Lockable,IDirect3DSurface8** ppSurface) { FPRINTF( s_FileHandle, "CreateRenderTarget\n" ); return m_pD3DDevice->CreateRenderTarget( Width, Height, Format, MultiSample, Lockable, ppSurface ); } HRESULT __stdcall CreateDepthStencilSurface(UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,IDirect3DSurface8** ppSurface) { FPRINTF( s_FileHandle, "CreateDepthStencilSurface\n" ); return m_pD3DDevice->CreateDepthStencilSurface( Width, Height, Format, MultiSample, ppSurface ); } HRESULT __stdcall CreateImageSurface(UINT Width,UINT Height,D3DFORMAT Format,IDirect3DSurface8** ppSurface) { FPRINTF( s_FileHandle, "CreateImageSurface\n" ); return m_pD3DDevice->CreateImageSurface( Width, Height, Format, ppSurface ); } HRESULT __stdcall CopyRects(IDirect3DSurface8* pSourceSurface,CONST RECT* pSourceRectsArray,UINT cRects,IDirect3DSurface8* pDestinationSurface,CONST POINT* pDestPointsArray) { FPRINTF( s_FileHandle, "CopyRects\n" ); return m_pD3DDevice->CopyRects( pSourceSurface, pSourceRectsArray, cRects, pDestinationSurface, pDestPointsArray ); } HRESULT __stdcall UpdateTexture(IDirect3DBaseTexture8* pSourceTexture,IDirect3DBaseTexture8* pDestinationTexture) { FPRINTF( s_FileHandle, "UpdateTexture\n" ); return m_pD3DDevice->UpdateTexture( pSourceTexture, pDestinationTexture ); } HRESULT __stdcall GetFrontBuffer(IDirect3DSurface8* pDestSurface) { FPRINTF( s_FileHandle, "GetFrontBuffer\n" ); return m_pD3DDevice->GetFrontBuffer( pDestSurface ); } HRESULT __stdcall SetRenderTarget(IDirect3DSurface8* pRenderTarget,IDirect3DSurface8* pNewZStencil) { FPRINTF( s_FileHandle, "SetRenderTarget\n" ); return m_pD3DDevice->SetRenderTarget( pRenderTarget, pNewZStencil ); } HRESULT __stdcall GetRenderTarget(IDirect3DSurface8** ppRenderTarget) { FPRINTF( s_FileHandle, "GetRenderTarget\n" ); return m_pD3DDevice->GetRenderTarget( ppRenderTarget ); } HRESULT __stdcall GetDepthStencilSurface(IDirect3DSurface8** ppZStencilSurface) { FPRINTF( s_FileHandle, "GetDepthStencilSurface\n" ); return m_pD3DDevice->GetDepthStencilSurface( ppZStencilSurface ); } HRESULT __stdcall BeginScene( void ) { FPRINTF( s_FileHandle, "BeginScene\n" ); return m_pD3DDevice->BeginScene(); } HRESULT __stdcall EndScene() { FPRINTF( s_FileHandle, "EndScene\n" ); return m_pD3DDevice->EndScene(); } HRESULT __stdcall Clear(DWORD Count,CONST D3DRECT* pRects,DWORD Flags,D3DCOLOR Color,float Z,DWORD Stencil) { FPRINTF( s_FileHandle, "Clear\n" ); return m_pD3DDevice->Clear( Count, pRects, Flags, Color, Z, Stencil ); } HRESULT __stdcall SetTransform(D3DTRANSFORMSTATETYPE State,CONST D3DMATRIX* pMatrix) { FPRINTF( s_FileHandle, "SetTransform\n" ); return m_pD3DDevice->SetTransform( State, pMatrix ); } HRESULT __stdcall GetTransform(D3DTRANSFORMSTATETYPE State,D3DMATRIX* pMatrix) { FPRINTF( s_FileHandle, "GetTransform\n" ); return m_pD3DDevice->GetTransform( State, pMatrix ); } HRESULT __stdcall MultiplyTransform(D3DTRANSFORMSTATETYPE transformState,CONST D3DMATRIX* pMatrix) { FPRINTF( s_FileHandle, "MultiplyTransform\n" ); return m_pD3DDevice->MultiplyTransform( transformState, pMatrix ); } HRESULT __stdcall SetViewport(CONST D3DVIEWPORT8* pViewport) { FPRINTF( s_FileHandle, "SetViewport\n" ); return m_pD3DDevice->SetViewport( pViewport ); } HRESULT __stdcall GetViewport(D3DVIEWPORT8* pViewport) { FPRINTF( s_FileHandle, "GetViewport\n" ); return m_pD3DDevice->GetViewport( pViewport ); } HRESULT __stdcall SetMaterial(CONST D3DMATERIAL8* pMaterial) { FPRINTF( s_FileHandle, "SetMaterial\n" ); return m_pD3DDevice->SetMaterial( pMaterial ); } HRESULT __stdcall GetMaterial(D3DMATERIAL8* pMaterial) { FPRINTF( s_FileHandle, "GetMaterial\n" ); return m_pD3DDevice->GetMaterial( pMaterial ); } HRESULT __stdcall SetLight(DWORD Index,CONST D3DLIGHT8* pLight) { FPRINTF( s_FileHandle, "SetLight\n" ); return m_pD3DDevice->SetLight( Index, pLight ); } HRESULT __stdcall GetLight(DWORD Index,D3DLIGHT8* pLight) { FPRINTF( s_FileHandle, "GetLight\n" ); return m_pD3DDevice->GetLight( Index, pLight ); } HRESULT __stdcall LightEnable(DWORD Index,BOOL Enable) { FPRINTF( s_FileHandle, "LightEnable\n" ); return m_pD3DDevice->LightEnable( Index, Enable ); } HRESULT __stdcall GetLightEnable(DWORD Index,BOOL* pEnable) { FPRINTF( s_FileHandle, "GetLightEnable\n" ); return m_pD3DDevice->GetLightEnable( Index, pEnable ); } HRESULT __stdcall SetClipPlane(DWORD Index,CONST float* pPlane) { FPRINTF( s_FileHandle, "SetClipPlane\n" ); return m_pD3DDevice->SetClipPlane( Index, pPlane ); } HRESULT __stdcall GetClipPlane(DWORD Index,float* pPlane) { FPRINTF( s_FileHandle, "GetClipPlane\n" ); return m_pD3DDevice->GetClipPlane( Index, pPlane ); } HRESULT __stdcall SetRenderState(D3DRENDERSTATETYPE State,DWORD Value) { FPRINTF( s_FileHandle, "SetRenderState\n" ); return m_pD3DDevice->SetRenderState( State, Value ); } HRESULT __stdcall GetRenderState(D3DRENDERSTATETYPE State,DWORD* pValue) { FPRINTF( s_FileHandle, "GetRenderState\n" ); return m_pD3DDevice->GetRenderState( State, pValue ); } HRESULT __stdcall BeginStateBlock(void) { FPRINTF( s_FileHandle, "BeginStateBlock\n" ); return m_pD3DDevice->BeginStateBlock(); } HRESULT __stdcall EndStateBlock(DWORD* pToken) { FPRINTF( s_FileHandle, "EndStateBlock\n" ); return m_pD3DDevice->EndStateBlock( pToken ); } HRESULT __stdcall ApplyStateBlock(DWORD Token) { FPRINTF( s_FileHandle, "ApplyStateBlock\n" ); return m_pD3DDevice->ApplyStateBlock( Token ); } HRESULT __stdcall CaptureStateBlock(DWORD Token) { FPRINTF( s_FileHandle, "CaptureStateBlock\n" ); return m_pD3DDevice->CaptureStateBlock( Token ); } HRESULT __stdcall DeleteStateBlock(DWORD Token) { FPRINTF( s_FileHandle, "DeleteStateBlock\n" ); return m_pD3DDevice->DeleteStateBlock( Token ); } HRESULT __stdcall CreateStateBlock(D3DSTATEBLOCKTYPE Type,DWORD* pToken) { FPRINTF( s_FileHandle, "CreateStateBlock\n" ); return m_pD3DDevice->CreateStateBlock( Type, pToken ); } HRESULT __stdcall SetClipStatus(CONST D3DCLIPSTATUS8* pClipStatus) { FPRINTF( s_FileHandle, "SetClipStatus\n" ); return m_pD3DDevice->SetClipStatus( pClipStatus ); } HRESULT __stdcall GetClipStatus(D3DCLIPSTATUS8* pClipStatus) { FPRINTF( s_FileHandle, "GetClipStatus\n" ); return m_pD3DDevice->GetClipStatus( pClipStatus ); } HRESULT __stdcall GetTexture(DWORD Stage,IDirect3DBaseTexture8** ppTexture) { FPRINTF( s_FileHandle, "GetTexture\n" ); return m_pD3DDevice->GetTexture( Stage, ppTexture ); } HRESULT __stdcall SetTexture(DWORD Stage,IDirect3DBaseTexture8* pTexture) { FPRINTF( s_FileHandle, "SetTexture\n" ); return m_pD3DDevice->SetTexture( Stage, pTexture ); } HRESULT __stdcall GetTextureStageState(DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD* pValue) { FPRINTF( s_FileHandle, "GetTextureStageState\n" ); return m_pD3DDevice->GetTextureStageState( Stage, Type, pValue ); } HRESULT __stdcall SetTextureStageState(DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD Value) { FPRINTF( s_FileHandle, "SetTextureStageState\n" ); return m_pD3DDevice->SetTextureStageState( Stage, Type, Value ); } HRESULT __stdcall ValidateDevice(DWORD* pNumPasses) { FPRINTF( s_FileHandle, "ValidateDevice\n" ); #if 0 return m_pD3DDevice->ValidateDevice( pNumPasses ); #else return D3D_OK; #endif } HRESULT __stdcall GetInfo(DWORD DevInfoID,void* pDevInfoStruct,DWORD DevInfoStructSize) { FPRINTF( s_FileHandle, "GetInfo\n" ); return m_pD3DDevice->GetInfo( DevInfoID, pDevInfoStruct, DevInfoStructSize ); } HRESULT __stdcall SetPaletteEntries(UINT PaletteNumber,CONST PALETTEENTRY* pEntries) { FPRINTF( s_FileHandle, "SetPaletteEntries\n" ); return m_pD3DDevice->SetPaletteEntries( PaletteNumber, pEntries ); } HRESULT __stdcall GetPaletteEntries(UINT PaletteNumber,PALETTEENTRY* pEntries) { FPRINTF( s_FileHandle, "GetPaletteEntries\n" ); return m_pD3DDevice->GetPaletteEntries( PaletteNumber, pEntries ); } HRESULT __stdcall SetCurrentTexturePalette(UINT PaletteNumber) { FPRINTF( s_FileHandle, "SetCurrentTexturePalette\n" ); return m_pD3DDevice->SetCurrentTexturePalette( PaletteNumber ); } HRESULT __stdcall GetCurrentTexturePalette(UINT *PaletteNumber) { FPRINTF( s_FileHandle, "GetCurrentTexturePalette\n" ); return m_pD3DDevice->GetCurrentTexturePalette( PaletteNumber ); } HRESULT __stdcall DrawPrimitive(D3DPRIMITIVETYPE PrimitiveType,UINT StartVertex,UINT PrimitiveCount) { FPRINTF( s_FileHandle, "DrawPrimitive\n" ); return m_pD3DDevice->DrawPrimitive( PrimitiveType, StartVertex, PrimitiveCount ); } HRESULT __stdcall DrawIndexedPrimitive(D3DPRIMITIVETYPE primitiveType,UINT minIndex,UINT NumVertices,UINT startIndex,UINT primCount) { FPRINTF( s_FileHandle, "DrawIndexedPrimitive\n" ); return m_pD3DDevice->DrawIndexedPrimitive( primitiveType,minIndex,NumVertices,startIndex,primCount ); } HRESULT __stdcall DrawPrimitiveUP(D3DPRIMITIVETYPE PrimitiveType,UINT PrimitiveCount,CONST void* pVertexStreamZeroData,UINT VertexStreamZeroStride) { FPRINTF( s_FileHandle, "DrawPrimitiveUP\n" ); return m_pD3DDevice->DrawPrimitiveUP( PrimitiveType, PrimitiveCount, pVertexStreamZeroData, VertexStreamZeroStride ); } HRESULT __stdcall DrawIndexedPrimitiveUP(D3DPRIMITIVETYPE PrimitiveType,UINT MinVertexIndex,UINT NumVertexIndices,UINT PrimitiveCount,CONST void* pIndexData,D3DFORMAT IndexDataFormat,CONST void* pVertexStreamZeroData,UINT VertexStreamZeroStride) { FPRINTF( s_FileHandle, "DrawIndexedPrimitiveUP\n" ); return m_pD3DDevice->DrawIndexedPrimitiveUP( PrimitiveType, MinVertexIndex, NumVertexIndices, PrimitiveCount, pIndexData, IndexDataFormat,pVertexStreamZeroData, VertexStreamZeroStride ); } HRESULT __stdcall ProcessVertices(UINT SrcStartIndex,UINT DestIndex,UINT VertexCount,IDirect3DVertexBuffer8* pDestBuffer,DWORD Flags) { FPRINTF( s_FileHandle, "ProcessVertices\n" ); return m_pD3DDevice->ProcessVertices( SrcStartIndex, DestIndex, VertexCount, pDestBuffer, Flags ); } HRESULT __stdcall CreateVertexShader(CONST DWORD* pDeclaration,CONST DWORD* pFunction,DWORD* pHandle,DWORD Usage) { FPRINTF( s_FileHandle, "CreateVertexShader\n" ); return m_pD3DDevice->CreateVertexShader( pDeclaration, pFunction, pHandle, Usage ); } HRESULT __stdcall SetVertexShader(DWORD Handle) { FPRINTF( s_FileHandle, "SetVertexShader\n" ); return m_pD3DDevice->SetVertexShader( Handle ); } HRESULT __stdcall GetVertexShader(DWORD* pHandle) { FPRINTF( s_FileHandle, "GetVertexShader\n" ); return m_pD3DDevice->GetVertexShader( pHandle ); } HRESULT __stdcall DeleteVertexShader(DWORD Handle) { FPRINTF( s_FileHandle, "DeleteVertexShader\n" ); return m_pD3DDevice->DeleteVertexShader( Handle ); } HRESULT __stdcall SetVertexShaderConstant(DWORD Register,CONST void* pConstantData,DWORD ConstantCount) { FPRINTF( s_FileHandle, "SetVertexShaderConstant\n" ); return m_pD3DDevice->SetVertexShaderConstant( Register, pConstantData, ConstantCount ); } HRESULT __stdcall GetVertexShaderConstant(DWORD Register,void* pConstantData,DWORD ConstantCount) { FPRINTF( s_FileHandle, "GetVertexShaderConstant\n" ); return m_pD3DDevice->GetVertexShaderConstant( Register, pConstantData, ConstantCount ); } HRESULT __stdcall GetVertexShaderDeclaration(DWORD Handle,void* pData,DWORD* pSizeOfData) { FPRINTF( s_FileHandle, "GetVertexShaderDeclaration\n" ); return m_pD3DDevice->GetVertexShaderDeclaration( Handle, pData, pSizeOfData ); } HRESULT __stdcall GetVertexShaderFunction(DWORD Handle,void* pData,DWORD* pSizeOfData) { FPRINTF( s_FileHandle, "GetVertexShaderFunction\n" ); return m_pD3DDevice->GetVertexShaderFunction( Handle, pData, pSizeOfData ); } HRESULT __stdcall SetStreamSource(UINT StreamNumber,IDirect3DVertexBuffer8* pStreamData,UINT Stride) { FPRINTF( s_FileHandle, "SetStreamSource\n" ); return m_pD3DDevice->SetStreamSource( StreamNumber, pStreamData, Stride ); } HRESULT __stdcall GetStreamSource(UINT StreamNumber,IDirect3DVertexBuffer8** ppStreamData,UINT* pStride) { FPRINTF( s_FileHandle, "GetStreamSource\n" ); return m_pD3DDevice->GetStreamSource( StreamNumber, ppStreamData, pStride ); } HRESULT __stdcall SetIndices(IDirect3DIndexBuffer8* pIndexData,UINT BaseVertexIndex) { FPRINTF( s_FileHandle, "SetIndices\n" ); return m_pD3DDevice->SetIndices( pIndexData, BaseVertexIndex ); } HRESULT __stdcall GetIndices(IDirect3DIndexBuffer8** ppIndexData,UINT* pBaseVertexIndex) { FPRINTF( s_FileHandle, "GetIndices\n" ); return m_pD3DDevice->GetIndices( ppIndexData, pBaseVertexIndex ); } HRESULT __stdcall CreatePixelShader(CONST DWORD* pFunction,DWORD* pHandle) { FPRINTF( s_FileHandle, "CreatePixelShader\n" ); return m_pD3DDevice->CreatePixelShader( pFunction, pHandle ); } HRESULT __stdcall SetPixelShader(DWORD Handle) { FPRINTF( s_FileHandle, "SetPixelShader\n" ); return m_pD3DDevice->SetPixelShader( Handle ); } HRESULT __stdcall GetPixelShader(DWORD* pHandle) { FPRINTF( s_FileHandle, "GetPixelShader\n" ); return m_pD3DDevice->GetPixelShader( pHandle ); } HRESULT __stdcall DeletePixelShader(DWORD Handle) { FPRINTF( s_FileHandle, "DeletePixelShader\n" ); return m_pD3DDevice->DeletePixelShader( Handle ); } HRESULT __stdcall SetPixelShaderConstant(DWORD Register,CONST void* pConstantData,DWORD ConstantCount) { FPRINTF( s_FileHandle, "SetPixelShaderConstant\n" ); return m_pD3DDevice->SetPixelShaderConstant( Register, pConstantData, ConstantCount ); } HRESULT __stdcall GetPixelShaderConstant(DWORD Register,void* pConstantData,DWORD ConstantCount) { FPRINTF( s_FileHandle, "GetPixelShaderConstant\n" ); return m_pD3DDevice->GetPixelShaderConstant( Register, pConstantData, ConstantCount ); } HRESULT __stdcall GetPixelShaderFunction(DWORD Handle,void* pData,DWORD* pSizeOfData) { FPRINTF( s_FileHandle, "GetPixelShaderFunction\n" ); return m_pD3DDevice->GetPixelShaderFunction( Handle, pData, pSizeOfData ); } HRESULT __stdcall DrawRectPatch(UINT Handle,CONST float* pNumSegs,CONST D3DRECTPATCH_INFO* pRectPatchInfo) { FPRINTF( s_FileHandle, "DrawRectPatch\n" ); return m_pD3DDevice->DrawRectPatch( Handle, pNumSegs, pRectPatchInfo ); } HRESULT __stdcall DrawTriPatch(UINT Handle,CONST float* pNumSegs,CONST D3DTRIPATCH_INFO* pTriPatchInfo) { FPRINTF( s_FileHandle, "DrawTriPatch\n" ); return m_pD3DDevice->DrawTriPatch( Handle, pNumSegs, pTriPatchInfo ); } HRESULT __stdcall DeletePatch(UINT Handle) { FPRINTF( s_FileHandle, "DeletePatch\n" ); return m_pD3DDevice->DeletePatch( Handle ); } }; #endif // STUBD3D #endif // STUBD3DDEVICE_H