|
|
|
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