ID3DXEffect Interface

 

 

' ****************************************************************************************
' ID3DXEffect interface
' $IID_ID3DXEffect = GUID$("{0F0DCC9F-6152-4117-A933-FFAC29C43AA4}")
' ****************************************************************************************

' ****************************************************************************************
' Used to set and query effects, and to choose techniques. An effect object can contain
' multiple techniques to render the same effect.
' Remarks
'    The ID3DXEffect interface is obtained by calling D3DXCreateEffect, D3DXCreateEffectFromFile,
'    or D3DXCreateEffectFromResource.
'    The LPD3DXEFFECT type is defined as a pointer to this interface.
' Interface Information
'    Stock Implementation   d3d9.dll
'    Custom Implementation  No
'    Inherits from  ID3DXBaseEffect
'    Header     d3dx9effect.h
'    Import library     d3dx9.lib
'    Minimum operating systems  Windows 98
' ****************************************************************************************

' ****************************************************************************************
'DECLARE_INTERFACE_(ID3DXEffect, ID3DXBaseEffect)
'{
'    // ID3DXBaseEffect
'  0.  STDMETHOD(QueryInterface)(THIS_ REFIID iid, LPVOID *ppv) PURE;
'  1.  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
'  2.  STDMETHOD_(ULONG, Release)(THIS) PURE;

'    // Descs
'  3.  STDMETHOD(GetDesc)(THIS_ ID3DXEffect_DESC* pDesc) PURE;
'  4.  STDMETHOD(GetParameterDesc)(THIS_ D3DXHANDLE hParameter, D3DXPARAMETER_DESC* pDesc) PURE;
'  5.  STDMETHOD(GetTechniqueDesc)(THIS_ D3DXHANDLE hTechnique, D3DXTECHNIQUE_DESC* pDesc) PURE;
'  6.  STDMETHOD(GetPassDesc)(THIS_ D3DXHANDLE hPass, D3DXPASS_DESC* pDesc) PURE;
'  7.  STDMETHOD(GetFunctionDesc)(THIS_ D3DXHANDLE hShader, D3DXFUNCTION_DESC* pDesc) PURE;

'    // Handle operations
'  8.  STDMETHOD_(D3DXHANDLE, GetParameter)(THIS_ D3DXHANDLE hParameter, UINT Index) PURE;
'  9.  STDMETHOD_(D3DXHANDLE, GetParameterByName)(THIS_ D3DXHANDLE hParameter, LPCSTR pName) PURE;
' 10.  STDMETHOD_(D3DXHANDLE, GetParameterBySemantic)(THIS_ D3DXHANDLE hParameter, LPCSTR pSemantic) PURE;
' 11.  STDMETHOD_(D3DXHANDLE, GetParameterElement)(THIS_ D3DXHANDLE hParameter, UINT Index) PURE;
' 12.  STDMETHOD_(D3DXHANDLE, GetTechnique)(THIS_ UINT Index) PURE;
' 13.  STDMETHOD_(D3DXHANDLE, GetTechniqueByName)(THIS_ LPCSTR pName) PURE;
' 14.  STDMETHOD_(D3DXHANDLE, GetPass)(THIS_ D3DXHANDLE hTechnique, UINT Index) PURE;
' 15.  STDMETHOD_(D3DXHANDLE, GetPassByName)(THIS_ D3DXHANDLE hTechnique, LPCSTR pName) PURE;
' 16.  STDMETHOD_(D3DXHANDLE, GetFunction)(THIS_ UINT Index) PURE;
' 17.  STDMETHOD_(D3DXHANDLE, GetFunctionByName)(THIS_ LPCSTR pName) PURE;
' 18.  STDMETHOD_(D3DXHANDLE, GetAnnotation)(THIS_ D3DXHANDLE hObject, UINT Index) PURE;
' 19.  STDMETHOD_(D3DXHANDLE, GetAnnotationByName)(THIS_ D3DXHANDLE hObject, LPCSTR pName) PURE;

'    // Get/Set Parameters
' 20.  STDMETHOD(SetValue)(THIS_ D3DXHANDLE hParameter, LPCVOID pData, UINT Bytes) PURE;
' 21.  STDMETHOD(GetValue)(THIS_ D3DXHANDLE hParameter, LPVOID pData, UINT Bytes) PURE;
' 22.  STDMETHOD(SetBool)(THIS_ D3DXHANDLE hParameter, BOOL b) PURE;
' 23.  STDMETHOD(GetBool)(THIS_ D3DXHANDLE hParameter, BOOL* pb) PURE;
' 24.  STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE hParameter, CONST BOOL* pb, UINT Count) PURE;
' 25.  STDMETHOD(GetBoolArray)(THIS_ D3DXHANDLE hParameter, BOOL* pb, UINT Count) PURE;
' 26.  STDMETHOD(SetInt)(THIS_ D3DXHANDLE hParameter, INT n) PURE;
' 27.  STDMETHOD(GetInt)(THIS_ D3DXHANDLE hParameter, INT* pn) PURE;
' 28.  STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE hParameter, CONST INT* pn, UINT Count) PURE;
' 29.  STDMETHOD(GetIntArray)(THIS_ D3DXHANDLE hParameter, INT* pn, UINT Count) PURE;
' 30.  STDMETHOD(SetFloat)(THIS_ D3DXHANDLE hParameter, FLOAT f) PURE;
' 31.  STDMETHOD(GetFloat)(THIS_ D3DXHANDLE hParameter, FLOAT* pf) PURE;
' 32.  STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE hParameter, CONST FLOAT* pf, UINT Count) PURE;
' 33.  STDMETHOD(GetFloatArray)(THIS_ D3DXHANDLE hParameter, FLOAT* pf, UINT Count) PURE;
' 34.  STDMETHOD(SetVector)(THIS_ D3DXHANDLE hParameter, CONST D3DXVECTOR4* pVector) PURE;
' 35.  STDMETHOD(GetVector)(THIS_ D3DXHANDLE hParameter, D3DXVECTOR4* pVector) PURE;
' 36.  STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXVECTOR4* pVector, UINT Count) PURE;
' 37.  STDMETHOD(GetVectorArray)(THIS_ D3DXHANDLE hParameter, D3DXVECTOR4* pVector, UINT Count) PURE;
' 38.  STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX* pMatrix) PURE;
' 39.  STDMETHOD(GetMatrix)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX* pMatrix) PURE;
' 40.  STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX* pMatrix, UINT Count) PURE;
' 41.  STDMETHOD(GetMatrixArray)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count) PURE;
' 42.  STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX** ppMatrix, UINT Count) PURE;
' 43.  STDMETHOD(GetMatrixPointerArray)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count) PURE;
' 44.  STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX* pMatrix) PURE;
' 45.  STDMETHOD(GetMatrixTranspose)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX* pMatrix) PURE;
' 46.  STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX* pMatrix, UINT Count) PURE;
' 47.  STDMETHOD(GetMatrixTransposeArray)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX* pMatrix, UINT Count) PURE;
' 48.  STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE hParameter, CONST D3DXMATRIX** ppMatrix, UINT Count) PURE;
' 49.  STDMETHOD(GetMatrixTransposePointerArray)(THIS_ D3DXHANDLE hParameter, D3DXMATRIX** ppMatrix, UINT Count) PURE;
' 50.  STDMETHOD(SetString)(THIS_ D3DXHANDLE hParameter, LPCSTR pString) PURE;
' 51.  STDMETHOD(GetString)(THIS_ D3DXHANDLE hParameter, LPCSTR* ppString) PURE;
' 52.  STDMETHOD(SetTexture)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DBASETEXTURE9 pTexture) PURE;
' 53.  STDMETHOD(GetTexture)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DBASETEXTURE9 *ppTexture) PURE;
' 54.  STDMETHOD(SetPixelShader)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DPIXELSHADER9 pPShader) PURE;
' 55.  STDMETHOD(GetPixelShader)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DPIXELSHADER9 *ppPShader) PURE;
' 56.  STDMETHOD(SetVertexShader)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DVERTEXSHADER9 pVShader) PURE;
' 57.  STDMETHOD(GetVertexShader)(THIS_ D3DXHANDLE hParameter, LPDIRECT3DVERTEXSHADER9 *ppVShader) PURE;

'   //Set Range of an Array to pass to device
'   //Usefull for sending only a subrange of an array down to the device
' 58. STDMETHOD(SetArrayRange)(THIS_ D3DXHANDLE hParameter, UINT uStart, UINT uEnd) PURE;
'   // ID3DXBaseEffect

'    // Pool
' 59.  STDMETHOD(GetPool)(THIS_ LPD3DXEFFECTPOOL* ppPool) PURE;

'    // Selecting and setting a technique
' 60.  STDMETHOD(SetTechnique)(THIS_ D3DXHANDLE hTechnique) PURE;
' 61.  STDMETHOD_(D3DXHANDLE, GetCurrentTechnique)(THIS) PURE;
' 62.  STDMETHOD(ValidateTechnique)(THIS_ D3DXHANDLE hTechnique) PURE;
' 63.  STDMETHOD(FindNextValidTechnique)(THIS_ D3DXHANDLE hTechnique, D3DXHANDLE *pTechnique) PURE;
' 64.  STDMETHOD_(BOOL, IsParameterUsed)(THIS_ D3DXHANDLE hParameter, D3DXHANDLE hTechnique) PURE;

'    // Using current technique
'    // Begin           starts active technique
'    // BeginPass       begins a pass
'    // CommitChanges   updates changes to any set calls in the pass. This should be called before
'    //                 any DrawPrimitive call to d3d
'    // EndPass         ends a pass
'    // End             ends active technique
' 65.  STDMETHOD(Begin)(THIS_ UINT *pPasses, DWORD Flags) PURE;
' 66.  STDMETHOD(BeginPass)(THIS_ UINT Pass) PURE;
' 67.  STDMETHOD(CommitChanges)(THIS) PURE;
' 68.  STDMETHOD(EndPass)(THIS) PURE;
' 69.  STDMETHOD(End)(THIS) PURE;

'    // Managing D3D Device
' 70.  STDMETHOD(GetDevice)(THIS_ LPDIRECT3DDEVICE9* ppDevice) PURE;
' 71.  STDMETHOD(OnLostDevice)(THIS) PURE;
' 72.  STDMETHOD(OnResetDevice)(THIS) PURE;

'    // Logging device calls
' 73.  STDMETHOD(SetStateManager)(THIS_ LPD3DXEFFECTSTATEMANAGER pManager) PURE;
' 74.  STDMETHOD(GetStateManager)(THIS_ LPD3DXEFFECTSTATEMANAGER *ppManager) PURE;

'    // Parameter blocks
' 75.  STDMETHOD(BeginParameterBlock)(THIS) PURE;
' 76.  STDMETHOD_(D3DXHANDLE, EndParameterBlock)(THIS) PURE;
' 77.  STDMETHOD(ApplyParameterBlock)(THIS_ D3DXHANDLE hParameterBlock) PURE;

'    // Cloning
' 78.  STDMETHOD(CloneEffect)(THIS_ LPDIRECT3DDEVICE9 pDevice, LPD3DXEFFECT* ppEffect) PURE;
'};
' ****************************************************************************************

' ****************************************************************************************
' GetPool
' Gets a pointer to the pool of shared parameters.
' HRESULT GetPool(
'    LPD3DXEFFECTPOOL* ppPool
' );
' ****************************************************************************************
FUNCTION ID3DXEffect_GetPool ALIAS "ID3DXEffect_GetPool" ( _
    BYVAL pthis AS DWORD PTR, BYREF ppPool AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[59] USING ID3DXEffect_GetPool(pthis, ppPool) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' SetTechnique
' Sets the active technique.
' HRESULT SetTechnique(
'    D3DXHANDLE hTechnique
' );
' ****************************************************************************************
FUNCTION ID3DXEffect_SetTechnique ALIAS "ID3DXEffect_SetTechnique" ( _
    BYVAL pthis AS DWORD PTR, BYVAL hTechnique AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[60] USING ID3DXEffect_SetTechnique(pthis, hTechnique) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' GetCurrentTechnique
' Gets the current technique.
' D3DXHANDLE GetCurrentTechnique(VOID);
' ****************************************************************************************
FUNCTION ID3DXEffect_GetCurrentTechnique ALIAS "ID3DXEffect_GetCurrentTechnique" (BYVAL pthis AS DWORD PTR) EXPORT AS DWORD

    LOCAL DWRESULT AS DWORD
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[61] USING ID3DXEffect_GetCurrentTechnique(pthis) TO DWRESULT
    FUNCTION = DWRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' ValidateTechnique
' Validate a technique.
' HRESULT ValidateTechnique(
'   D3DXHANDLE hTechnique
' );
' ****************************************************************************************
FUNCTION ID3DXEffect_ValidateTechnique ALIAS "ID3DXEffect_ValidateTechnique" ( _
    BYVAL pthis AS DWORD PTR, BYVAL hTechnique AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[62] USING ID3DXEffect_ValidateTechnique(pthis, hTechnique) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' FindNextValidTechnique
' Searches for the next valid technique, starting at the technique after the specified
' technique.
' HRESULT FindNextValidTechnique(
'   D3DXHANDLE hTechnique,
'   D3DXHANDLE* pTechnique
' );
' ****************************************************************************************
FUNCTION ID3DXEffect_FindNextValidTechnique ALIAS "ID3DXEffect_FindNextValidTechnique" ( _
    BYVAL pthis AS DWORD PTR, BYVAL hTechnique AS DWORD, BYREF pTechnique AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[63] USING ID3DXEffect_FindNextValidTechnique(pthis, hTechnique, pTechnique) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' IsParameterUsed
' Determines if a parameter is used by the technique.
' BOOL IsParameterUsed(
'   D3DXHANDLE hParameter,
'   D3DXHANDLE hTechnique
' );
' ****************************************************************************************
FUNCTION ID3DXEffect_IsParameterUsed ALIAS "ID3DXEffect_IsParameterUsed" ( _
    BYVAL pthis AS DWORD PTR, BYVAL hParameter AS DWORD, BYVAL hTechnique AS DWORD) EXPORT AS LONG

    LOCAL LRESULT AS LONG
    IF pthis = %NULL THEN EXIT FUNCTION
    CALL DWORD @@pthis[64] USING ID3DXEffect_IsParameterUsed(pthis, hParameter, hTechnique) TO LRESULT
    FUNCTION = LRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' Begin
' Starts an active technique.
' HRESULT Begin(
'   UINT* pPasses,
'   DWORD Flags
' );
' ****************************************************************************************
FUNCTION ID3DXEffect_Begin ALIAS "ID3DXEffect_Begin" ( _
    BYVAL pthis AS DWORD PTR, BYVAL pPasses AS DWORD, BYVAL Flags AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[65] USING ID3DXEffect_Begin(pthis, pPasses, Flags) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' BeginPass
' Begins a pass, within the active technique.
' HRESULT BeginPass(
'   UINT Pass
' );
' ****************************************************************************************
FUNCTION ID3DXEffect_BeginPass ALIAS "ID3DXEffect_BeginPass" ( _
    BYVAL pthis AS DWORD PTR, BYVAL Pass AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[66] USING ID3DXEffect_BeginPass(pthis, Pass) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' CommitChanges
' Propagate state changes that occur inside of an active pass to the device before
' rendering.
' HRESULT CommitChanges();
' ****************************************************************************************
FUNCTION ID3DXEffect_CommitChanges ALIAS "ID3DXEffect_CommitChanges" (BYVAL pthis AS DWORD PTR) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[67] USING ID3DXEffect_CommitChanges(pthis) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' EndPass
' End an active pass.
' HRESULT EndPass();
' ****************************************************************************************
FUNCTION ID3DXEffect_EndPass ALIAS "ID3DXEffect_EndPass" (BYVAL pthis AS DWORD PTR) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[68] USING ID3DXEffect_EndPass(pthis) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' End
' Ends an active technique.
' HRESULT End();
' ****************************************************************************************
FUNCTION ID3DXEffect_End ALIAS "ID3DXEffect_End" (BYVAL pthis AS DWORD PTR) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[69] USING ID3DXEffect_End(pthis) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' GetDevice method
' Retrieves the device associated with the effect.
' HRESULT GetDevice(
'   LPDIRECT3DDEVICE9* ppDevice
' );
' ****************************************************************************************
FUNCTION ID3DXEffect_GetDevice ALIAS "ID3DXEffect_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[70] USING ID3DXEffect_GetDevice(pthis, ppDevice) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' OnLostDevice method
' Releases all references to video memory resources and deletes all state blocks.
' HRESULT OnLostDevice();
' ****************************************************************************************
FUNCTION ID3DXEffect_OnLostDevice ALIAS "ID3DXEffect_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[71] USING ID3DXEffect_OnLostDevice (pthis) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' OnResetDevice method
' Should be called after the device has been reset.
' HRESULT OnResetDevice();
' ****************************************************************************************
FUNCTION ID3DXEffect_OnResetDevice ALIAS "ID3DXEffect_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[72] USING ID3DXEffect_OnResetDevice (pthis) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' SetStateManager method
' Set the effect state manager.
' HRESULT SetStateManager(
'   LPD3DXEFFECTSTATEMANAGER pManager
' );
' ****************************************************************************************
FUNCTION ID3DXEffect_SetStateManager ALIAS "ID3DXEffect_SetStateManager" ( _
    BYVAL pthis AS DWORD PTR, BYVAL pManager AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[73] USING ID3DXEffect_SetStateManager (pthis, pManager) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' GetStateManager method
' Get the effect state manager.
' HRESULT GetStateManager(
'   LPD3DXEFFECTSTATEMANAGER* ppManager
' );
' ****************************************************************************************
FUNCTION ID3DXEffect_GetStateManager ALIAS "ID3DXEffect_GetStateManager" ( _
    BYVAL pthis AS DWORD PTR, BYVAL ppManager AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[74] USING ID3DXEffect_GetStateManager (pthis, ppManager) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' BeginParameterBlock method
' Capture parameter effect state changes.
' HRESULT BeginParameterBlock();
' ****************************************************************************************
FUNCTION ID3DXEffect_BeginParameterBlock ALIAS "ID3DXEffect_BeginParameterBlock" (BYVAL pthis AS DWORD PTR) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[75] USING ID3DXEffect_BeginParameterBlock (pthis) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' EndParameterBlock method
' Stop capturing effect parameter state changes.
' D3DXHANDLE EndParameterBlock();
' ****************************************************************************************
FUNCTION ID3DXEffect_EndParameterBlock ALIAS "ID3DXEffect_EndParameterBlock" (BYVAL pthis AS DWORD PTR) EXPORT AS DWORD

    LOCAL DWRESULT AS DWORD
    IF pthis = %NULL THEN EXIT FUNCTION
    CALL DWORD @@pthis[76] USING ID3DXEffect_EndParameterBlock (pthis) TO DWRESULT
    FUNCTION = DWRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' ApplyParameterBlock method
' Assign a state value to each effect parameter in a parameter block.
' HRESULT ApplyParameterBlock(
'   D3DXHANDLE  hParameterBlock
' );
' ****************************************************************************************
FUNCTION ID3DXEffect_ApplyParameterBlock ALIAS "ID3DXEffect_ApplyParameterBlock" ( _
    BYVAL pthis AS DWORD PTR, BYVAL hParameterBlock AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[77] USING ID3DXEffect_ApplyParameterBlock (pthis, hParameterBlock) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************

' ****************************************************************************************
' CloneEffect method
' Creates a clone of an effect.
' HRESULT CloneEffect(
'   LPDIRECT3DDEVICE9 pDevice,
'   LPD3DXEFFECT* ppEffect
' );
' ****************************************************************************************
FUNCTION ID3DXEffect_CloneEffect ALIAS "ID3DXEffect_CloneEffect" ( _
    BYVAL pthis AS DWORD PTR, BYVAL pDevice AS DWORD, BYREF ppEffect AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[78] USING ID3DXEffect_CloneEffect (pthis, pDevice, ppEffect) TO HRESULT
    FUNCTION = HRESULT

END FUNCTION
' ****************************************************************************************
 

 

Page last updated on Wednesday, 15 March 2006 00:35:59 +0100