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