|
|
|
ID3DXRenderToEnvMap Interface |
|
' ****************************************************************************************
' ID3DXRenderToEnvMap interface
' $IID_ID3DXRenderToEnvMap = GUID$("{313F1B4B-C7B0-4fa2-9D9D-8D380B64385E}")
' ****************************************************************************************
' ****************************************************************************************
' The ID3DXRenderToEnvMap interface is used to generalize the process of rendering to environment maps.
' Remarks
' An environment map is used to texture-map scene geometry to provide a more sophisticated
' scene without using complex geometry. This interface supports creating surfaces for the
' following kinds of geometry: cube, half sphere or hemispheric, parabolic, or sphere.
' The ID3DXRenderToEnvMap interface is obtained by calling the D3DXCreateRenderToEnvMap
' function.
' Interface Information
' Stock Implementation d3d9.dll
' Custom Implementation No
' Inherits from IUnknown
' Header d3dx9core.h
' Import library d3dx9.lib
' Minimum operating systems Windows 98
' ****************************************************************************************
' ****************************************************************************************
'DECLARE_INTERFACE_(ID3DXRenderToEnvMap, IUnknown)
'{
' // IUnknown
' 0. STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
' 1. STDMETHOD_(ULONG, AddRef)(THIS) PURE;
' 2. STDMETHOD_(ULONG, Release)(THIS) PURE;
' // ID3DXRenderToEnvMap
' 3. STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* ppDevice) PURE;
' 4. STDMETHOD(GetDesc)(THIS_ D3DXRTE_DESC* pDesc) PURE;
' 5. STDMETHOD(BeginCube)(THIS_
' LPDIRECT3DCUBETEXTURE9 pCubeTex) PURE;
' 6. STDMETHOD(BeginSphere)(THIS_
' LPDIRECT3DTEXTURE9 pTex) PURE;
' 7. STDMETHOD(BeginHemisphere)(THIS_
' LPDIRECT3DTEXTURE9 pTexZPos,
' LPDIRECT3DTEXTURE9 pTexZNeg) PURE;
' 8. STDMETHOD(BeginParabolic)(THIS_
' LPDIRECT3DTEXTURE9 pTexZPos,
' LPDIRECT3DTEXTURE9 pTexZNeg) PURE;
' 9. STDMETHOD(Face)(THIS_ D3DCUBEMAP_FACES Face, DWORD MipFilter) PURE;
' 10. STDMETHOD(End)(THIS_ DWORD MipFilter) PURE;
' 11. STDMETHOD(OnLostDevice)(THIS) PURE;
' 12. STDMETHOD(OnResetDevice)(THIS) PURE;
'};
' ****************************************************************************************
' ****************************************************************************************
' GetDevice method
' Retrieves the Microsoft Direct3D device associated with the environment map.
' Note Calling this method will increase the internal reference count on the
' IDirect3DDevice9 interface. Be sure to call IUnknown::Release when you are done using
' this IDirect3DDevice9 interface or you will have a memory leak.
' HRESULT GetDevice(
' LPDIRECT3DDEVICE9 * ppDevice
' );
' ****************************************************************************************
FUNCTION ID3DXRenderToEnvMap_GetDevice ALIAS "ID3DXRenderToEnvMap_GetDevice" ( _
BYVAL pthis AS DWORD PTR, BYREF ppDevice AS DWORD) EXPORT AS LONG
LOCAL HRESULT AS LONG
IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
CALL DWORD @@pthis[3] USING ID3DXRenderToEnvMap_GetDevice(pthis, ppDevice) TO HRESULT
FUNCTION = HRESULT
END FUNCTION
' ****************************************************************************************
' ****************************************************************************************
' GetDesc method
' Retrieves the description of the render surface.
' HRESULT GetDesc(
' D3DXRTE_DESC * pDesc
' );
' ****************************************************************************************
FUNCTION ID3DXRenderToEnvMap_GetDesc ALIAS "ID3DXRenderToEnvMap_GetDesc" ( _
BYVAL pthis AS DWORD PTR, BYREF pDesc AS D3DXRTE_DESC) EXPORT AS LONG
LOCAL HRESULT AS LONG
IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
CALL DWORD @@pthis[4] USING ID3DXRenderToEnvMap_GetDesc(pthis, pDesc) TO HRESULT
FUNCTION = HRESULT
END FUNCTION
' ****************************************************************************************
' ****************************************************************************************
' BegibCube method
' Initiate the rendering of a cubic environment map.
' HRESULT BeginCube(
' LPDIRECT3DCUBETEXTURE9 pCubeTex
' );
' ****************************************************************************************
FUNCTION ID3DXRenderToEnvMap_BeginCube ALIAS "ID3DXRenderToEnvMap_BeginCube" ( _
BYVAL pthis AS DWORD PTR, BYVAL pCubeTex AS DWORD) EXPORT AS LONG
LOCAL HRESULT AS LONG
IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
CALL DWORD @@pthis[5] USING ID3DXRenderToEnvMap_BeginCube(pthis, pCubeTex) TO HRESULT
FUNCTION = HRESULT
END FUNCTION
' ****************************************************************************************
' ****************************************************************************************
' BeginSphere method
' Initiate the rendering of a spherical environment map.
' HRESULT BeginSphere(
' LPDIRECT3DTEXTURE9 pTex
' );
' ****************************************************************************************
FUNCTION ID3DXRenderToEnvMap_BeginSphere ALIAS "ID3DXRenderToEnvMap_BeginSphere" ( _
BYVAL pthis AS DWORD PTR, BYVAL pTex AS DWORD) EXPORT AS LONG
LOCAL HRESULT AS LONG
IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
CALL DWORD @@pthis[6] USING ID3DXRenderToEnvMap_BeginSphere(pthis, pTex) TO HRESULT
FUNCTION = HRESULT
END FUNCTION
' ****************************************************************************************
' ****************************************************************************************
' BeginHemisphere method
' Initiate the rendering of a hemispheric environment map.
' HRESULT BeginHemisphere(
' LPDIRECT3DTEXTURE9 pTexZPos,
' LPDIRECT3DTEXTURE9 pTexZNeg
' );
' ****************************************************************************************
FUNCTION ID3DXRenderToEnvMap_BeginHemisphere ALIAS "ID3DXRenderToEnvMap_BeginHemisphere" ( _
BYVAL pthis AS DWORD PTR, BYVAL pTexZPos AS DWORD, BYVAL pTexZNeg AS DWORD) EXPORT AS LONG
LOCAL HRESULT AS LONG
IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
CALL DWORD @@pthis[7] USING ID3DXRenderToEnvMap_BeginHemisphere(pthis, pTexZPos, pTexZNeg) TO HRESULT
FUNCTION = HRESULT
END FUNCTION
' ****************************************************************************************
' ****************************************************************************************
' BeginParabolic method
' Initiate the rendering of a parabolic environment map.
' HRESULT BeginParabolic(
' LPDIRECT3DTEXTURE9 pTexZPos,
' LPDIRECT3DTEXTURE9 pTexZNeg
' );
' ****************************************************************************************
FUNCTION ID3DXRenderToEnvMap_BeginParabolic ALIAS "ID3DXRenderToEnvMap_BeginParabolic" ( _
BYVAL pthis AS DWORD PTR, BYVAL pTexZPos AS DWORD, BYVAL pTexZNeg AS DWORD) EXPORT AS LONG
LOCAL HRESULT AS LONG
IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
CALL DWORD @@pthis[8] USING ID3DXRenderToEnvMap_BeginParabolic(pthis, pTexZPos, pTexZNeg) TO HRESULT
FUNCTION = HRESULT
END FUNCTION
' ****************************************************************************************
' ****************************************************************************************
' Face method
' Initiate the drawing of each face of an environment map.
' HRESULT Face(
' D3DCUBEMAP_FACES Face,
' DWORD MipFilter
' );
' ****************************************************************************************
FUNCTION ID3DXRenderToEnvMap_Face ALIAS "ID3DXRenderToEnvMap_Face" ( _
BYVAL pthis AS DWORD PTR, BYVAL Face AS DWORD, BYVAL MipFilter AS DWORD) EXPORT AS LONG
LOCAL HRESULT AS LONG
IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
CALL DWORD @@pthis[9] USING ID3DXRenderToEnvMap_Face(pthis, Face, MipFilter) TO HRESULT
FUNCTION = HRESULT
END FUNCTION
' ****************************************************************************************
' ****************************************************************************************
' End method
' Restore all render targets and, if needed, compose all the rendered faces into the
' environment map surface.
' HRESULT End(
' DWORD MipFilter
' );
' ****************************************************************************************
FUNCTION ID3DXRenderToEnvMap_End ALIAS "ID3DXRenderToEnvMap_End" ( _
BYVAL pthis AS DWORD PTR, BYVAL MipFilter AS DWORD) EXPORT AS LONG
LOCAL HRESULT AS LONG
IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
CALL DWORD @@pthis[10] USING ID3DXRenderToEnvMap_End(pthis, MipFilter) TO HRESULT
FUNCTION = HRESULT
END FUNCTION
' ****************************************************************************************
' ****************************************************************************************
' OnLostDevice method
' Releases all references to video memory resources and deletes all stateblocks.
' HRESULT OnLostDevice();
' ****************************************************************************************
FUNCTION ID3DXRenderToEnvMap_OnLostDevice ALIAS "ID3DXRenderToEnvMap_OnLostDevice" (BYVAL pthis AS DWORD PTR) EXPORT AS LONG
LOCAL HRESULT AS LONG
IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
CALL DWORD @@pthis[11] USING ID3DXRenderToEnvMap_OnLostDevice (pthis) TO HRESULT
FUNCTION = HRESULT
END FUNCTION
' ****************************************************************************************
' ****************************************************************************************
' OnResetDevice method
' Should be called after the device has been reset.
' HRESULT OnResetDevice();
' ****************************************************************************************
FUNCTION ID3DXRenderToEnvMap_OnResetDevice ALIAS "ID3DXRenderToEnvMap_OnResetDevice" (BYVAL pthis AS DWORD PTR) EXPORT AS LONG
LOCAL HRESULT AS LONG
IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
CALL DWORD @@pthis[12] USING ID3DXRenderToEnvMap_OnResetDevice (pthis) TO HRESULT
FUNCTION = HRESULT
END FUNCTION
' ****************************************************************************************
|
Page last updated on Tuesday, 14 March 2006 22:57:24 +0100