//+------------------------------------------------------------------------- // // Microsoft Windows // // Copyright (C) Microsoft Corporation, 1998 - 1999 // // File: d3ddevice7obj.h // //-------------------------------------------------------------------------- // d3dDeviceObj.h : Declaration of the C_dxj_Direct3dDeviceObject #include "resource.h" // main symbols #define typedef__dxj_Direct3dDevice7 LPDIRECT3DDEVICE7 ///////////////////////////////////////////////////////////////////////////// // Direct //REVIEW -- using pointers to ID's is necessary because some compilers don't // like references as template arguments. class C_dxj_Direct3dDevice7Object : public I_dxj_Direct3dDevice7, //public CComCoClass, public CComObjectRoot { public: C_dxj_Direct3dDevice7Object(); virtual ~C_dxj_Direct3dDevice7Object(); DWORD InternalAddRef(); DWORD InternalRelease(); BEGIN_COM_MAP(C_dxj_Direct3dDevice7Object) COM_INTERFACE_ENTRY(I_dxj_Direct3dDevice7) END_COM_MAP() // DECLARE_REGISTRY(CLSID__dxj_Direct3dDevice7, "DIRECT.Direct3dDevice7.3", "DIRECT.Direct3dDevice7.3", IDS_D3DDEVICE_DESC, THREADFLAGS_BOTH) DECLARE_AGGREGATABLE(C_dxj_Direct3dDevice7Object) // I_dxj_Direct3dDevice public: /* [hidden] */ HRESULT STDMETHODCALLTYPE InternalSetObject( /* [in] */ IUnknown __RPC_FAR *lpdd); /* [hidden] */ HRESULT STDMETHODCALLTYPE InternalGetObject( /* [retval][out] */ IUnknown __RPC_FAR *__RPC_FAR *lpdd); HRESULT STDMETHODCALLTYPE applyStateBlock( /* [in] */ long blockHandle); HRESULT STDMETHODCALLTYPE beginScene( void); HRESULT STDMETHODCALLTYPE beginStateBlock( void); HRESULT STDMETHODCALLTYPE captureStateBlock( /* [in] */ long blockHandle); HRESULT STDMETHODCALLTYPE clear( /* [in] */ long count, /* [in] */ SAFEARRAY __RPC_FAR * __RPC_FAR *recs, /* [in] */ long flags, /* [in] */ long color, /* [in] */ float z, /* [in] */ long stencil); HRESULT STDMETHODCALLTYPE computeSphereVisibility( D3dVector __RPC_FAR *center, float __RPC_FAR *radius, /* [retval][out] */ long __RPC_FAR *returnVal); HRESULT STDMETHODCALLTYPE deleteStateBlock( /* [in] */ long blockHandle); HRESULT STDMETHODCALLTYPE drawIndexedPrimitive( /* [in] */ d3dPrimitiveType d3dpt, /* [in] */ long d3dvt, /* [in] */ void __RPC_FAR *vertices, /* [in] */ long VertexCount, /* [in] */ SAFEARRAY __RPC_FAR * __RPC_FAR *indices, /* [in] */ long IndicesCount, /* [in] */ long flags); HRESULT STDMETHODCALLTYPE drawIndexedPrimitiveVB( /* [in] */ d3dPrimitiveType d3dpt, /* [in] */ I_dxj_Direct3dVertexBuffer7 __RPC_FAR *vertexBuffer, /* [in] */ long startVertex, /* [in] */ long numVertices, /* [in] */ SAFEARRAY __RPC_FAR * __RPC_FAR *indexArray, /* [in] */ long indexcount, /* [in] */ long flags); HRESULT STDMETHODCALLTYPE drawPrimitive( /* [in] */ d3dPrimitiveType d3dpt, /* [in] */ long d3dvt, /* [in] */ void __RPC_FAR *vertices, /* [in] */ long VertexCount, /* [in] */ long flags); HRESULT STDMETHODCALLTYPE drawPrimitiveVB( /* [in] */ d3dPrimitiveType d3dpt, /* [in] */ I_dxj_Direct3dVertexBuffer7 __RPC_FAR *vertexBuffer, /* [in] */ long startVertex, /* [in] */ long numVertices, /* [in] */ long flags); HRESULT STDMETHODCALLTYPE endScene( void); HRESULT STDMETHODCALLTYPE endStateBlock( /* [in] */ long __RPC_FAR *blockHandle); HRESULT STDMETHODCALLTYPE getCaps( /* [out][in] */ D3dDeviceDesc7 __RPC_FAR *desc); HRESULT STDMETHODCALLTYPE getClipStatus( /* [out][in] */ D3dClipStatus __RPC_FAR *clipStatus); HRESULT STDMETHODCALLTYPE getDirect3D( /* [retval][out] */ I_dxj_Direct3d7 __RPC_FAR *__RPC_FAR *dev); HRESULT STDMETHODCALLTYPE getLight( /* [in] */ long LightIndex, /* [out][in] */ D3dLight7 __RPC_FAR *Light); HRESULT STDMETHODCALLTYPE getLightEnable( /* [in] */ long LightIndex, /* [retval][out] */ VARIANT_BOOL __RPC_FAR *b); HRESULT STDMETHODCALLTYPE getMaterial( /* [out][in] */ D3dMaterial7 __RPC_FAR *Material); HRESULT STDMETHODCALLTYPE getRenderState( /* [in] */ d3dRenderStateType state, /* [retval][out] */ long __RPC_FAR *renderstate); HRESULT STDMETHODCALLTYPE getRenderTarget( /* [retval][out] */ I_dxj_DirectDrawSurface7 __RPC_FAR *__RPC_FAR *ppval); HRESULT STDMETHODCALLTYPE getTexture( /* [in] */ long stage, /* [retval][out] */ I_dxj_DirectDrawSurface7 __RPC_FAR *__RPC_FAR *retv); HRESULT STDMETHODCALLTYPE getTextureFormatsEnum( /* [retval][out] */ I_dxj_Direct3DEnumPixelFormats __RPC_FAR *__RPC_FAR *retval); HRESULT STDMETHODCALLTYPE getTextureStageState( /* [in] */ long stage, /* [in] */ long state, /* [retval][out] */ long __RPC_FAR *val); HRESULT STDMETHODCALLTYPE getTransform( /* [in] */ d3dTransformStateType transformType, /* [out][in] */ D3dMatrix __RPC_FAR *matrix); HRESULT STDMETHODCALLTYPE getViewport( /* [out][in] */ D3dViewport7 __RPC_FAR *viewport); HRESULT STDMETHODCALLTYPE lightEnable( /* [in] */ long LightIndex, /* [in] */ VARIANT_BOOL b); HRESULT STDMETHODCALLTYPE load( /* [in] */ I_dxj_DirectDrawSurface7 __RPC_FAR *DestTex, /* [in] */ long xDest, /* [in] */ long yDest, /* [in] */ I_dxj_DirectDrawSurface7 __RPC_FAR *SrcTex, /* [in] */ Rect __RPC_FAR *rcSrcRect, /* [in] */ long flags); HRESULT STDMETHODCALLTYPE multiplyTransform( /* [in] */ long dstTransfromStateType, /* [out][in] */ D3dMatrix __RPC_FAR *matrix); HRESULT STDMETHODCALLTYPE preLoad( /* [in] */ I_dxj_DirectDrawSurface7 __RPC_FAR *surf); HRESULT STDMETHODCALLTYPE setClipStatus( /* [in] */ D3dClipStatus __RPC_FAR *clipStatus); HRESULT STDMETHODCALLTYPE setLight( /* [in] */ long LightIndex, /* [in] */ D3dLight7 __RPC_FAR *Light); HRESULT STDMETHODCALLTYPE setMaterial( /* [in] */ D3dMaterial7 __RPC_FAR *mat); HRESULT STDMETHODCALLTYPE setRenderState( /* [in] */ d3dRenderStateType state, /* [in] */ long renderstate); HRESULT STDMETHODCALLTYPE setRenderTarget( /* [in] */ I_dxj_DirectDrawSurface7 __RPC_FAR *surface); HRESULT STDMETHODCALLTYPE setTexture( /* [in] */ long stage, /* [in] */ I_dxj_DirectDrawSurface7 __RPC_FAR *texture); HRESULT STDMETHODCALLTYPE setTextureStageState( /* [in] */ long stage, /* [in] */ long state, /* [in] */ long value); HRESULT STDMETHODCALLTYPE setTransform( /* [in] */ d3dTransformStateType transformType, /* [in] */ D3dMatrix __RPC_FAR *matrix); HRESULT STDMETHODCALLTYPE setViewport( /* [in] */ D3dViewport7 __RPC_FAR *viewport); HRESULT STDMETHODCALLTYPE validateDevice( /* [retval][out] */ long __RPC_FAR *passes); HRESULT STDMETHODCALLTYPE setTextureStageStateSingle( /* [in] */ long stage, /* [in] */ long state, /* [in] */ float value); HRESULT STDMETHODCALLTYPE getTextureStageStateSingle( /* [in] */ long stage, /* [in] */ long state, /* [in] */ float *value); HRESULT STDMETHODCALLTYPE getInfo ( /* [in] */ long lDevInfoID, /* [out][in] */ void __RPC_FAR *DevInfoType, /* [in] */ long lSize); HRESULT STDMETHODCALLTYPE setRenderStateSingle( /* [in] */ d3dRenderStateType state, /* [in] */ float renderstate); HRESULT STDMETHODCALLTYPE getRenderStateSingle( /* [in] */ d3dRenderStateType state, /* [in] */ float *renderstate); HRESULT STDMETHODCALLTYPE getDeviceGuid( /* [out,retval] */ BSTR *ret); HRESULT STDMETHODCALLTYPE createStateBlock( long flags, long *retv); HRESULT STDMETHODCALLTYPE setClipPlane( long index, float A, float B, float C, float D); HRESULT STDMETHODCALLTYPE getClipPlane( long index, float *A, float *B, float *C, float *D); //////////////////////////////////////////////////////////////////////////////////// private: DECL_VARIABLE(_dxj_Direct3dDevice7); public: DX3J_GLOBAL_LINKS( _dxj_Direct3dDevice7) void *parent2; };