ID3DXEffectCompiler Interface

 

 

' ****************************************************************************************
' ID3DXEffectCompiler interface
' $IID_ID3DXEffectCompiler = GUID$("{15A709EB-5A8E-40a0-86A9-0C024124339B}")
' ****************************************************************************************

' ****************************************************************************************
' The ID3DXEffectCompiler interface compiles an effect from a function or from a vertex shader.
' Remarks
'    The ID3DXEffectCompiler interface is obtained by calling D3DXCreateEffectCompiler,
'    D3DXCreateEffectCompilerFromFile, or D3DXCreateEffectCompilerFromResource.
'    The LPD3DXEFFECTCOMPILER 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_(ID3DXEffectCompiler, 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

'    // Parameter sharing, specialization, and information
' 59.  STDMETHOD(SetLiteral)(THIS_ D3DXHANDLE hParameter, BOOL Literal) PURE;
' 60.  STDMETHOD(GetLiteral)(THIS_ D3DXHANDLE hParameter, BOOL *pLiteral) PURE;

'    // Compilation
' 61.  STDMETHOD(CompileEffect)(THIS_ DWORD Flags,
'        LPD3DXBUFFER* ppEffect, LPD3DXBUFFER* ppErrorMsgs) PURE;

' 62.  STDMETHOD(CompileShader)(THIS_ D3DXHANDLE hFunction, LPCSTR pTarget, DWORD Flags,
'        LPD3DXBUFFER* ppShader, LPD3DXBUFFER* ppErrorMsgs, LPD3DXCONSTANTTABLE* ppConstantTable) PURE;
'};
' ****************************************************************************************

' ****************************************************************************************
' SetLiteral
' Toggles the literal status of a parameter. A literal parameter has a value that doesn't
' change during the lifetime of an effect.
' HRESULT SetLiteral(
'    D3DXHANDLE hParameter,
'    BOOL Literal
' );
' ****************************************************************************************
FUNCTION ID3DXEffectCompiler_SetLiteral ALIAS "ID3DXEffectCompiler_SetLiteral" ( _
    BYVAL pthis AS DWORD PTR, BYVAL hParameter AS DWORD, BYVAL Literal AS LONG) EXPORT AS LONG

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

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

' ****************************************************************************************
' GetLiteral method
' Gets a literal status of a parameter. A literal parameter has a value that doesn't
' change during the lifetime of an effect.
' HRESULT GetLiteral(
'    D3DXHANDLE hParameter,
'    BOOL* pLiteral
' );
' ****************************************************************************************
FUNCTION ID3DXEffectCompiler_GetLiteral ALIAS "ID3DXEffectCompiler_GetLiteral" ( _
    BYVAL pthis AS DWORD PTR, BYVAL hParameter AS DWORD, BYREF Literal AS LONG) EXPORT AS LONG

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

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

' ****************************************************************************************
' CompileEffect method
' Compile an effect.
' HRESULT CompileEffect(
'   DWORD Flags,
'   LPD3DXBUFFER * ppEffect,
'   LPD3DXBUFFER * ppErrorMsgs
' );
' ****************************************************************************************
FUNCTION ID3DXEffectCompiler_CompileEffect ALIAS "ID3DXEffectCompiler_CompileEffect" ( _
    BYVAL pthis AS DWORD PTR, BYVAL Flags AS DWORD, BYREF ppEffect AS DWORD, _
    BYREF ppErrorMsgs AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[61] USING ID3DXEffectCompiler_CompileEffect(pthis, Flags, ppEffect, ppErrorMsgs) TO HRESULT
    FUNCTION = HRESULT

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

' ****************************************************************************************
' CompileShader method
' Compile a shader from an effect that contains one or more functions.
' HRESULT CompileShader(
'   D3DXHANDLE hFunction,
'   LPCSTR pTarget,
'   DWORD Flags,
'   LPD3DXBUFFER* ppShader,
'   LPD3DXBUFFER* ppErrorMsgs,
'   LPD3DXCONSTANTTABLE* ppConstantTable
' );
' ****************************************************************************************
FUNCTION ID3DXEffectCompiler_CompileShader ALIAS "ID3DXEffectCompiler_CompileShader" ( _
    BYVAL pthis AS DWORD PTR, BYVAL hFunction AS DWORD, BYREF pTarget AS ASCIIZ, _
    BYVAL Flags AS DWORD, BYREF ppShader AS DWORD, BYREF ppErrorMsgs AS DWORD, _
    BYREF ppConstantTable AS DWORD) EXPORT AS LONG

    LOCAL HRESULT AS LONG
    IF pthis = %NULL THEN FUNCTION = %E_POINTER : EXIT FUNCTION
    CALL DWORD @@pthis[62] USING ID3DXEffectCompiler_CompileShader(pthis, hFunction, pTarget, Flags, ppShader, ppErrorMsgs, ppConstantTable) TO HRESULT
    FUNCTION = HRESULT

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

 

Page last updated on Wednesday, 15 March 2006 00:38:58 +0100