All pastes #922283 Raw Edit

Miscellany

public cpp v1 · immutable
#922283 ·published 2008-02-28 18:12 UTC
rendered paste body
#ifndef _D3D9DEV_H#define _D3D9DEV_H#include "D3d9.h"#include "../VersionControl.h"#include "../Engine/Engine.h"#include "../Var.h"#define _SAFE_RELEASE(p) if(p) { p->Release(); p = NULL; }interface hIDirect3DDevice9;class CD3DManager{public:	CD3DManager(IDirect3DDevice9 *pD3Ddev, hIDirect3DDevice9 *pParent)	{		m_pParent = pParent;		m_pD3Ddev = pD3Ddev;	}	~CD3DManager() {}	HRESULT Initialize();	HRESULT PreReset();	HRESULT PostReset();	HRESULT Release();	//put resources here	IDirect3DTexture9 *m_pD3Dtexture_front[CEngine::DRAW_MAX];	IDirect3DTexture9 *m_pD3Dtexture_back[CEngine::DRAW_MAX];private:	hIDirect3DDevice9	*m_pParent;	IDirect3DDevice9	*m_pD3Ddev;	};interface hIDirect3DDevice9 : public IDirect3DDevice9{public:	hIDirect3DDevice9(IDirect3DDevice9 **ppReturnedDeviceInterface, D3DPRESENT_PARAMETERS *pPresentParam, IDirect3D9 *pIDirect3D9)	{		m_pD3Ddev = *ppReturnedDeviceInterface; 		*ppReturnedDeviceInterface = this;		m_PresentParam = *pPresentParam;		m_pD3Dint = pIDirect3D9;		m_pManager = new CD3DManager(m_pD3Ddev, this);		m_pManager->Initialize();		m_refCount = 1;	}	// callback interface	IDirect3DDevice9 *m_pD3Ddev;	IDirect3D9 *m_pD3Dint;	// reference counter	UINT m_refCount;	// PresentationParameters	D3DPRESENT_PARAMETERS m_PresentParam;	// Resource Manager	CD3DManager *m_pManager;	// original interface    STDMETHOD(QueryInterface)(REFIID riid, void** ppvObj);    STDMETHOD_(ULONG,AddRef)();    STDMETHOD_(ULONG,Release)();    STDMETHOD(TestCooperativeLevel)();    STDMETHOD_(UINT, GetAvailableTextureMem)();    STDMETHOD(EvictManagedResources)();    STDMETHOD(GetDirect3D)(IDirect3D9** ppD3D9);    STDMETHOD(GetDeviceCaps)(D3DCAPS9* pCaps);    STDMETHOD(GetDisplayMode)(UINT iSwapChain,D3DDISPLAYMODE* pMode);    STDMETHOD(GetCreationParameters)(D3DDEVICE_CREATION_PARAMETERS *pParameters);    STDMETHOD(SetCursorProperties)(UINT XHotSpot,UINT YHotSpot,IDirect3DSurface9* pCursorBitmap);    STDMETHOD_(void, SetCursorPosition)(int X,int Y,DWORD Flags);    STDMETHOD_(BOOL, ShowCursor)(BOOL bShow);    STDMETHOD(CreateAdditionalSwapChain)(D3DPRESENT_PARAMETERS* pPresentationParameters,IDirect3DSwapChain9** pSwapChain);    STDMETHOD(GetSwapChain)(UINT iSwapChain,IDirect3DSwapChain9** pSwapChain);    STDMETHOD_(UINT, GetNumberOfSwapChains)();    STDMETHOD(Reset)(D3DPRESENT_PARAMETERS* pPresentationParameters);    STDMETHOD(Present)(CONST RECT* pSourceRect,CONST RECT* pDestRect,HWND hDestWindowOverride,CONST RGNDATA* pDirtyRegion);    STDMETHOD(GetBackBuffer)(UINT iSwapChain,UINT iBackBuffer,D3DBACKBUFFER_TYPE Type,IDirect3DSurface9** ppBackBuffer);    STDMETHOD(GetRasterStatus)(UINT iSwapChain,D3DRASTER_STATUS* pRasterStatus);    STDMETHOD(SetDialogBoxMode)(BOOL bEnableDialogs);    STDMETHOD_(void, SetGammaRamp)(UINT iSwapChain,DWORD Flags,CONST D3DGAMMARAMP* pRamp);    STDMETHOD_(void, GetGammaRamp)(UINT iSwapChain,D3DGAMMARAMP* pRamp);    STDMETHOD(CreateTexture)(UINT Width,UINT Height,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DTexture9** ppTexture,HANDLE* pSharedHandle);    STDMETHOD(CreateVolumeTexture)(UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DVolumeTexture9** ppVolumeTexture,HANDLE* pSharedHandle);    STDMETHOD(CreateCubeTexture)(UINT EdgeLength,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DCubeTexture9** ppCubeTexture,HANDLE* pSharedHandle);    STDMETHOD(CreateVertexBuffer)(UINT Length,DWORD Usage,DWORD FVF,D3DPOOL Pool,IDirect3DVertexBuffer9** ppVertexBuffer,HANDLE* pSharedHandle);    STDMETHOD(CreateIndexBuffer)(UINT Length,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DIndexBuffer9** ppIndexBuffer,HANDLE* pSharedHandle);    STDMETHOD(CreateRenderTarget)(UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Lockable,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle);    STDMETHOD(CreateDepthStencilSurface)(UINT Width,UINT Height,D3DFORMAT Format,D3DMULTISAMPLE_TYPE MultiSample,DWORD MultisampleQuality,BOOL Discard,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle);    STDMETHOD(UpdateSurface)(IDirect3DSurface9* pSourceSurface,CONST RECT* pSourceRect,IDirect3DSurface9* pDestinationSurface,CONST POINT* pDestPoint);    STDMETHOD(UpdateTexture)(IDirect3DBaseTexture9* pSourceTexture,IDirect3DBaseTexture9* pDestinationTexture);    STDMETHOD(GetRenderTargetData)(IDirect3DSurface9* pRenderTarget,IDirect3DSurface9* pDestSurface);    STDMETHOD(GetFrontBufferData)(UINT iSwapChain,IDirect3DSurface9* pDestSurface);    STDMETHOD(StretchRect)(IDirect3DSurface9* pSourceSurface,CONST RECT* pSourceRect,IDirect3DSurface9* pDestSurface,CONST RECT* pDestRect,D3DTEXTUREFILTERTYPE Filter);    STDMETHOD(ColorFill)(IDirect3DSurface9* pSurface,CONST RECT* pRect,D3DCOLOR color);    STDMETHOD(CreateOffscreenPlainSurface)(UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,IDirect3DSurface9** ppSurface,HANDLE* pSharedHandle);    STDMETHOD(SetRenderTarget)(DWORD RenderTargetIndex,IDirect3DSurface9* pRenderTarget);    STDMETHOD(GetRenderTarget)(DWORD RenderTargetIndex,IDirect3DSurface9** ppRenderTarget);    STDMETHOD(SetDepthStencilSurface)(IDirect3DSurface9* pNewZStencil);    STDMETHOD(GetDepthStencilSurface)(IDirect3DSurface9** ppZStencilSurface);    STDMETHOD(BeginScene)();    STDMETHOD(EndScene)();    STDMETHOD(Clear)(DWORD Count,CONST D3DRECT* pRects,DWORD Flags,D3DCOLOR Color,float Z,DWORD Stencil);    STDMETHOD(SetTransform)(D3DTRANSFORMSTATETYPE State,CONST D3DMATRIX* pMatrix);    STDMETHOD(GetTransform)(D3DTRANSFORMSTATETYPE State,D3DMATRIX* pMatrix);    STDMETHOD(MultiplyTransform)(D3DTRANSFORMSTATETYPE,CONST D3DMATRIX*);    STDMETHOD(SetViewport)(CONST D3DVIEWPORT9* pViewport);    STDMETHOD(GetViewport)(D3DVIEWPORT9* pViewport);    STDMETHOD(SetMaterial)(CONST D3DMATERIAL9* pMaterial);    STDMETHOD(GetMaterial)(D3DMATERIAL9* pMaterial);    STDMETHOD(SetLight)(DWORD Index,CONST D3DLIGHT9*);    STDMETHOD(GetLight)(DWORD Index,D3DLIGHT9*);    STDMETHOD(LightEnable)(DWORD Index,BOOL Enable);    STDMETHOD(GetLightEnable)(DWORD Index,BOOL* pEnable);    STDMETHOD(SetClipPlane)(DWORD Index,CONST float* pPlane);    STDMETHOD(GetClipPlane)(DWORD Index,float* pPlane);    STDMETHOD(SetRenderState)(D3DRENDERSTATETYPE State,DWORD Value);    STDMETHOD(GetRenderState)(D3DRENDERSTATETYPE State,DWORD* pValue);    STDMETHOD(CreateStateBlock)(D3DSTATEBLOCKTYPE Type,IDirect3DStateBlock9** ppSB);    STDMETHOD(BeginStateBlock)();    STDMETHOD(EndStateBlock)(IDirect3DStateBlock9** ppSB);    STDMETHOD(SetClipStatus)(CONST D3DCLIPSTATUS9* pClipStatus);    STDMETHOD(GetClipStatus)(D3DCLIPSTATUS9* pClipStatus);    STDMETHOD(GetTexture)(DWORD Stage,IDirect3DBaseTexture9** ppTexture);    STDMETHOD(SetTexture)(DWORD Stage,IDirect3DBaseTexture9* pTexture);    STDMETHOD(GetTextureStageState)(DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD* pValue);    STDMETHOD(SetTextureStageState)(DWORD Stage,D3DTEXTURESTAGESTATETYPE Type,DWORD Value);    STDMETHOD(GetSamplerState)(DWORD Sampler,D3DSAMPLERSTATETYPE Type,DWORD* pValue);    STDMETHOD(SetSamplerState)(DWORD Sampler,D3DSAMPLERSTATETYPE Type,DWORD Value);    STDMETHOD(ValidateDevice)(DWORD* pNumPasses);    STDMETHOD(SetPaletteEntries)(UINT PaletteNumber,CONST PALETTEENTRY* pEntries);    STDMETHOD(GetPaletteEntries)(UINT PaletteNumber,PALETTEENTRY* pEntries);    STDMETHOD(SetCurrentTexturePalette)(UINT PaletteNumber);    STDMETHOD(GetCurrentTexturePalette)(UINT *PaletteNumber);    STDMETHOD(SetScissorRect)(CONST RECT* pRect);    STDMETHOD(GetScissorRect)(RECT* pRect);    STDMETHOD(SetSoftwareVertexProcessing)(BOOL bSoftware);    STDMETHOD_(BOOL, GetSoftwareVertexProcessing)();    STDMETHOD(SetNPatchMode)(float nSegments);    STDMETHOD_(float, GetNPatchMode)();    STDMETHOD(DrawPrimitive)(D3DPRIMITIVETYPE PrimitiveType,UINT StartVertex,UINT PrimitiveCount);    STDMETHOD(DrawIndexedPrimitive)(D3DPRIMITIVETYPE,INT BaseVertexIndex,UINT MinVertexIndex,UINT NumVertices,UINT startIndex,UINT primCount);    STDMETHOD(DrawPrimitiveUP)(D3DPRIMITIVETYPE PrimitiveType,UINT PrimitiveCount,CONST void* pVertexStreamZeroData,UINT VertexStreamZeroStride);    STDMETHOD(DrawIndexedPrimitiveUP)(D3DPRIMITIVETYPE PrimitiveType,UINT MinVertexIndex,UINT NumVertices,UINT PrimitiveCount,CONST void* pIndexData,D3DFORMAT IndexDataFormat,CONST void* pVertexStreamZeroData,UINT VertexStreamZeroStride);    STDMETHOD(ProcessVertices)(UINT SrcStartIndex,UINT DestIndex,UINT VertexCount,IDirect3DVertexBuffer9* pDestBuffer,IDirect3DVertexDeclaration9* pVertexDecl,DWORD Flags);    STDMETHOD(CreateVertexDeclaration)(CONST D3DVERTEXELEMENT9* pVertexElements,IDirect3DVertexDeclaration9** ppDecl);    STDMETHOD(SetVertexDeclaration)(IDirect3DVertexDeclaration9* pDecl);    STDMETHOD(GetVertexDeclaration)(IDirect3DVertexDeclaration9** ppDecl);    STDMETHOD(SetFVF)(DWORD FVF);    STDMETHOD(GetFVF)(DWORD* pFVF);    STDMETHOD(CreateVertexShader)(CONST DWORD* pFunction,IDirect3DVertexShader9** ppShader);    STDMETHOD(SetVertexShader)(IDirect3DVertexShader9* pShader);    STDMETHOD(GetVertexShader)(IDirect3DVertexShader9** ppShader);    STDMETHOD(SetVertexShaderConstantF)(UINT StartRegister,CONST float* pConstantData,UINT Vector4fCount);    STDMETHOD(GetVertexShaderConstantF)(UINT StartRegister,float* pConstantData,UINT Vector4fCount);    STDMETHOD(SetVertexShaderConstantI)(UINT StartRegister,CONST int* pConstantData,UINT Vector4iCount);    STDMETHOD(GetVertexShaderConstantI)(UINT StartRegister,int* pConstantData,UINT Vector4iCount);    STDMETHOD(SetVertexShaderConstantB)(UINT StartRegister,CONST BOOL* pConstantData,UINT  BoolCount);    STDMETHOD(GetVertexShaderConstantB)(UINT StartRegister,BOOL* pConstantData,UINT BoolCount);    STDMETHOD(SetStreamSource)(UINT StreamNumber,IDirect3DVertexBuffer9* pStreamData,UINT OffsetInBytes,UINT Stride);    STDMETHOD(GetStreamSource)(UINT StreamNumber,IDirect3DVertexBuffer9** ppStreamData,UINT* pOffsetInBytes,UINT* pStride);    STDMETHOD(SetStreamSourceFreq)(UINT StreamNumber,UINT Setting);    STDMETHOD(GetStreamSourceFreq)(UINT StreamNumber,UINT* pSetting);    STDMETHOD(SetIndices)(IDirect3DIndexBuffer9* pIndexData);    STDMETHOD(GetIndices)(IDirect3DIndexBuffer9** ppIndexData);    STDMETHOD(CreatePixelShader)(CONST DWORD* pFunction,IDirect3DPixelShader9** ppShader);    STDMETHOD(SetPixelShader)(IDirect3DPixelShader9* pShader);    STDMETHOD(GetPixelShader)(IDirect3DPixelShader9** ppShader);    STDMETHOD(SetPixelShaderConstantF)(UINT StartRegister,CONST float* pConstantData,UINT Vector4fCount);    STDMETHOD(GetPixelShaderConstantF)(UINT StartRegister,float* pConstantData,UINT Vector4fCount);    STDMETHOD(SetPixelShaderConstantI)(UINT StartRegister,CONST int* pConstantData,UINT Vector4iCount);    STDMETHOD(GetPixelShaderConstantI)(UINT StartRegister,int* pConstantData,UINT Vector4iCount);    STDMETHOD(SetPixelShaderConstantB)(UINT StartRegister,CONST BOOL* pConstantData,UINT  BoolCount);    STDMETHOD(GetPixelShaderConstantB)(UINT StartRegister,BOOL* pConstantData,UINT BoolCount);    STDMETHOD(DrawRectPatch)(UINT Handle,CONST float* pNumSegs,CONST D3DRECTPATCH_INFO* pRectPatchInfo);    STDMETHOD(DrawTriPatch)(UINT Handle,CONST float* pNumSegs,CONST D3DTRIPATCH_INFO* pTriPatchInfo);    STDMETHOD(DeletePatch)(UINT Handle);    STDMETHOD(CreateQuery)(D3DQUERYTYPE Type,IDirect3DQuery9** ppQuery);};#endif