Ada计算机图形DirectX之d3dx9effect

----------------------------------------
-- File : d3dx9effect.ads             --
-- Translator:Dongfeng.Gu,2018/10/12  --
-- Mail: [email protected]                --
-- Progress:100%                      --
----------------------------------------

with win32;                       use win32;
with win32.windef;                use win32.windef;
with win32.wingdi;                use win32.wingdi;
with win32.objbase;               use win32.objbase;
with win32.rpcdce;                use win32.rpcdce;
with Interfaces.C;

with d3d9;                        use d3d9;
with d3d9types;                   use d3d9types;
with d3dx9shader;                 use d3dx9shader;
with d3dx9core;                   use d3dx9core;

package d3dx9effect is

   use type interfaces.C.unsigned;
   use type interfaces.C.unsigned_Long;


   function Shift_Left(A:dword;B:Natural) return dword with import,convention=>Intrinsic;
   function Lsh(A:dword;B:Natural) return dword is (Shift_Left(A,B));

   function Shift_Right(A:dword;B:Natural) return dword with import,convention=>Intrinsic;
   function Rsh(A:dword;B:Natural) return dword is (Shift_Right(A,B));

   subtype LPLPVOID is PPVOID;
   subtype LPUINT is win32.PUINT;
   type LPCBOOL is access constant Bool;
   type LPCInt is access constant int;
   type LPCFLOAT is access constant float;
   type LPCDWORD is access constant dword;
   type LPLPCVOID is access LPCVOID;
   type LPFLOAT is access all FLOAT;




   D3DXFX_DONOTSAVESTATE : constant dword:= Lsh(1,0);

   D3DXFX_DONOTSAVESHADERSTATE : constant dword:= Lsh(1,1);

   D3DXFX_DONOTSAVESAMPLERSTATE : constant dword:= Lsh(1,2);

   D3DXFX_NOT_CLONEABLE : constant dword:= Lsh(1,11);

   D3DXFX_LARGEADDRESSAWARE : constant dword:= Lsh(1,17);

   D3DX_PARAMETER_SHARED : constant dword:= Lsh(1,0);

   D3DX_PARAMETER_LITERAL : constant dword:= Lsh(1,1);

   D3DX_PARAMETER_ANNOTATION : constant dword:= Lsh(1,2);

   type tagD3DXEFFECT_DESC is record
      Creator:LPCSTR;
      Parameters:UINT;
      Techniques:UINT;
      Functions:UINT;
   end record;


   --type D3DXPARAMETER_CLASS;

   subtype D3DXEFFECT_DESC is tagD3DXEFFECT_DESC;
   type LPD3DXEFFECT_DESC is access all D3DXEFFECT_DESC;

   type tagD3DXPARAMETER_DESC is record
      Name:LPCSTR;
      Semantic:LPCSTR;
      Class:D3DXPARAMETER_CLASS;
      Typ:D3DXPARAMETER_TYPE;
      Rows:UINT;
      Columns:UINT;
      Elements:UINT;
      Annotations:UINT;
      StructMembers:UINT;
      Flags:DWORD;
      Bytes:UINT;
   end record;

   subtype D3DXPARAMETER_DESC is tagD3DXPARAMETER_DESC;
   type  LPD3DXPARAMETER_DESC is access all D3DXPARAMETER_DESC;

   type tagD3DXTECHNIQUE_DESC is record
      Name:LPCSTR;
      Passes:UINT;
      Annotations:UINT;
   end record;

   subtype D3DXTECHNIQUE_DESC is tagD3DXTECHNIQUE_DESC;
   type  LPD3DXTECHNIQUE_DESC is access all D3DXTECHNIQUE_DESC;


   type tagD3DXPASS_DESC is record
      Name:LPCSTR;
      Annotations:UINT;
      pVertexShaderFunction:LPCDWORD;
      pPixelShaderFunction:LPCDWORD;
   end record;

   subtype D3DXPASS_DESC is tagD3DXPASS_DESC;
   type  LPD3DXPASS_DESC is access all D3DXPASS_DESC;

   type tagD3DXFUNCTION_DESC is record
      Name:LPCSTR;
      Annotations:UINT;
   end record;

   subtype D3DXFUNCTION_DESC is tagD3DXFUNCTION_DESC;
   type LPD3DXFUNCTION_DESC is access all D3DXFUNCTION_DESC;

   type ID3DXEffectPool;

   type LPID3DXEFFECTPOOL is access all ID3DXEffectPool;
   subtype LPD3DXEFFECTPOOL is LPID3DXEFFECTPOOL;

   IID_ID3DXEffectPool:constant win32.rpcdce.GUID:=(16#9537ab04#,16#3250#,16#412e#,(16#82#,16#13#,16#fc#,16#d2#,16#f8#,16#67#,16#79#,16#33#));


   type ID3DXEffectPool is record
      QueryInterface:access procedure(THIS:LPID3DXEffectPool;iid:REFIID;ppv:LPLPVOID) with Convention=>Stdcall;
      AddRef:access function(THIS:LPID3DXEffectPool) return ULONG with Convention=>Stdcall;
      Release:access function(THIS:LPID3DXEffectPool) return ULONG with Convention=>Stdcall;
   end record;

   type ID3DXBaseEffect;

   type LPID3DXBASEEFFECT is access all ID3DXBaseEffect;
   subtype LPD3DXBASEEFFECT is LPID3DXBASEEFFECT;
   type LPLPD3DXBASEEFFECT is access all LPD3DXBASEEFFECT;

   IID_ID3DXBaseEffect:constant win32.rpcdce.GUID:=(16#17c18ac#,16#103f#,16#4417#,(16#8c#,16#51#,16#6b#,16#f6#,16#ef#,16#1e#,16#56#,16#be#));
   type ID3DXBaseEffect is record
      QueryInterface:access procedure(THIS:LPID3DXBaseEffect;iid:REFIID;ppv:LPLPVOID) with Convention=>Stdcall;
      AddRef:access function(THIS:LPID3DXBaseEffect) return ULONG with Convention=>Stdcall;
      Release:access function(THIS:LPID3DXBaseEffect) return ULONG with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3DXBaseEffect;pDesc:LPD3DXEFFECT_DESC) with Convention=>Stdcall;
      GetParameterDesc:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pDesc:LPD3DXPARAMETER_DESC) with Convention=>Stdcall;
      GetTechniqueDesc:access procedure(THIS:LPID3DXBaseEffect;hTechnique:D3DXHANDLE;pDesc:LPD3DXTECHNIQUE_DESC) with Convention=>Stdcall;
      GetPassDesc:access procedure(THIS:LPID3DXBaseEffect;hPass:D3DXHANDLE;pDesc:LPD3DXPASS_DESC) with Convention=>Stdcall;
      GetFunctionDesc:access procedure(THIS:LPID3DXBaseEffect;hShader:D3DXHANDLE;pDesc:LPD3DXFUNCTION_DESC) with Convention=>Stdcall;
      GetParameter:access function(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;Index:UINT) return D3DXHANDLE with Convention=>Stdcall;
      GetParameterByName:access function(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pName:LPCSTR) return D3DXHANDLE with Convention=>Stdcall;
      GetParameterBySemantic:access function(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pSemantic:LPCSTR) return D3DXHANDLE with Convention=>Stdcall;
      GetParameterElement:access function(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;Index:UINT) return D3DXHANDLE with Convention=>Stdcall;
      GetTechnique:access function(THIS:LPID3DXBaseEffect;Index:UINT) return D3DXHANDLE with Convention=>Stdcall;
      GetTechniqueByName:access function(THIS:LPID3DXBaseEffect;pName:LPCSTR) return D3DXHANDLE with Convention=>Stdcall;
      GetPass:access function(THIS:LPID3DXBaseEffect;hTechnique:D3DXHANDLE;Index:UINT) return D3DXHANDLE with Convention=>Stdcall;
      GetPassByName:access function(THIS:LPID3DXBaseEffect;hTechnique:D3DXHANDLE;pName:LPCSTR) return D3DXHANDLE with Convention=>Stdcall;
      GetFunction:access function(THIS:LPID3DXBaseEffect;Index:UINT) return D3DXHANDLE with Convention=>Stdcall;
      GetFunctionByName:access function(THIS:LPID3DXBaseEffect;pName:LPCSTR) return D3DXHANDLE with Convention=>Stdcall;
      GetAnnotation:access function(THIS:LPID3DXBaseEffect;hObject:D3DXHANDLE;Index:UINT) return D3DXHANDLE with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3DXBaseEffect;hObject:D3DXHANDLE;pName:LPCSTR) return D3DXHANDLE with Convention=>Stdcall;
      SetValue:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pData:LPCVOID;Bytes:UINT) with Convention=>Stdcall;
      GetValue:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pData:LPVOID;Bytes:UINT) with Convention=>Stdcall;
      SetBool:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;b:BOOL) with Convention=>Stdcall;
      GetBool:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pb:LPBOOL) with Convention=>Stdcall;
      SetBoolArray:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pb:LPCBOOL;Count:UINT) with Convention=>Stdcall;
      GetBoolArray:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pb:LPBOOL;Count:UINT) with Convention=>Stdcall;
      SetInt:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;n:INT) with Convention=>Stdcall;
      GetInt:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pn:LPINT) with Convention=>Stdcall;
      SetIntArray:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pn:LPCINT;Count:UINT) with Convention=>Stdcall;
      GetIntArray:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pn:LPINT;Count:UINT) with Convention=>Stdcall;
      SetFloat:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;f:FLOAT) with Convention=>Stdcall;
      GetFloat:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pf:LPFLOAT) with Convention=>Stdcall;
      SetFloatArray:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pf:LPCFLOAT;Count:UINT) with Convention=>Stdcall;
      GetFloatArray:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pf:LPFLOAT;Count:UINT) with Convention=>Stdcall;
      SetVector:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pVector:access constant D3DXVECTOR4) with Convention=>Stdcall;
      GetVector:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pVector:access D3DXVECTOR4) with Convention=>Stdcall;
      SetVectorArray:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pVector:access constant D3DXVECTOR4;Count:UINT) with Convention=>Stdcall;
      GetVectorArray:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pVector:access D3DXVECTOR4;Count:UINT) with Convention=>Stdcall;
      SetMatrix:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pMatrix:access constant D3DMATRIX) with Convention=>Stdcall;
      GetMatrix:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pMatrix:access D3DMATRIX) with Convention=>Stdcall;
      SetMatrixArray:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pMatrix:access constant D3DMATRIX;Count:UINT) with Convention=>Stdcall;
      GetMatrixArray:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pMatrix:access D3DMATRIX;Count:UINT) with Convention=>Stdcall;
      SetMatrixPointerArray:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;ppMatrix:access LPCD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      GetMatrixPointerArray:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;ppMatrix:access LPD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      SetMatrixTranspose:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pMatrix:LPCD3DMATRIX) with Convention=>Stdcall;
      GetMatrixTranspose:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pMatrix:LPD3DMATRIX) with Convention=>Stdcall;
      SetMatrixTransposeArray:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pMatrix:LPCD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      GetMatrixTransposeArray:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pMatrix:LPD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      SetMatrixTransposePointerArray:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;ppMatrix:access LPCD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      GetMatrixTransposePointerArray:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;ppMatrix:access LPD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      SetString:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pString:LPCSTR) with Convention=>Stdcall;
      GetString:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;ppString:access LPCSTR) with Convention=>Stdcall;
      SetTexture:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;pTexture:LPDIRECT3DBASETEXTURE9) with Convention=>Stdcall;
      GetTexture:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;ppTexture:LPLPDIRECT3DBASETEXTURE9) with Convention=>Stdcall;
      GetPixelShader:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;ppPShader:access LPDIRECT3DPIXELSHADER9) with Convention=>Stdcall;
      GetVertexShader:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;ppVShader:access LPDIRECT3DVERTEXSHADER9) with Convention=>Stdcall;
      SetArrayRange:access procedure(THIS:LPID3DXBaseEffect;hParameter:D3DXHANDLE;uStart:UINT;uEnd:UINT) with Convention=>Stdcall;
   end record;

   type ID3DXEffectStateManager;
   type LPID3DXEffectStateManager is access all ID3DXEffectStateManager;
   type LPD3DXEFFECTSTATEMANAGER is access all ID3DXEffectStateManager;
   type LPLPLPD3DXEFFECTSTATEMANAGER is access all LPD3DXEFFECTSTATEMANAGER;

   IID_ID3DXEffectStateManager:constant win32.rpcdce.GUID:=(16#79aab587#,16#6dbc#,16#4fa7#,(16#82#,16#de#,16#37#,16#fa#,16#17#,16#81#,16#c5#,16#ce#));
   type ID3DXEffectStateManager is record
      QueryInterface:access procedure(THIS:LPID3DXEffectStateManager;iid:REFIID;ppv:LPLPVOID) with Convention=>Stdcall;
      AddRef:access function(THIS:LPID3DXEffectStateManager) return ULONG with Convention=>Stdcall;
      Release:access function(THIS:LPID3DXEffectStateManager) return ULONG with Convention=>Stdcall;
      SetTransform:access procedure(THIS:LPID3DXEffectStateManager;State:D3DTRANSFORMSTATETYPE;pMatrix:LPCD3DMATRIX) with Convention=>Stdcall;
      SetMaterial:access procedure(THIS:LPID3DXEffectStateManager;pMaterial:access constant D3DMATERIAL9) with Convention=>Stdcall;
      SetLight:access procedure(THIS:LPID3DXEffectStateManager;Index:DWORD;pLight:access constant D3DLIGHT9) with Convention=>Stdcall;
      LightEnable:access procedure(THIS:LPID3DXEffectStateManager;Index:DWORD;Enable:BOOL) with Convention=>Stdcall;
      SetRenderState:access procedure(THIS:LPID3DXEffectStateManager;State:D3DRENDERSTATETYPE;Value:DWORD) with Convention=>Stdcall;
      SetTexture:access procedure(THIS:LPID3DXEffectStateManager;Stage:DWORD;pTexture:LPDIRECT3DBASETEXTURE9) with Convention=>Stdcall;
      SetTextureStageState:access procedure(THIS:LPID3DXEffectStateManager;Stage:DWORD;Typ:D3DTEXTURESTAGESTATETYPE;Value:DWORD) with Convention=>Stdcall;
      SetSamplerState:access procedure(THIS:LPID3DXEffectStateManager;Sampler:DWORD;Typ:D3DSAMPLERSTATETYPE;Value:DWORD) with Convention=>Stdcall;
      SetNPatchMode:access procedure(THIS:LPID3DXEffectStateManager;NumSegments:FLOAT) with Convention=>Stdcall;
      SetFVF:access procedure(THIS:LPID3DXEffectStateManager;FVF:DWORD) with Convention=>Stdcall;
      SetVertexShader:access procedure(THIS:LPID3DXEffectStateManager;pShader:LPDIRECT3DVERTEXSHADER9) with Convention=>Stdcall;
      SetVertexShaderConstantF:access procedure(THIS:LPID3DXEffectStateManager;RegisterIndex:UINT;pConstantData:LPCFLOAT;RegisterCount:UINT) with Convention=>Stdcall;
      SetVertexShaderConstantI:access procedure(THIS:LPID3DXEffectStateManager;RegisterIndex:UINT;pConstantData:LPCINT;RegisterCount:UINT) with Convention=>Stdcall;
      SetVertexShaderConstantB:access procedure(THIS:LPID3DXEffectStateManager;RegisterIndex:UINT;pConstantData:LPCBOOL;RegisterCount:UINT) with Convention=>Stdcall;
      SetPixelShader:access procedure(THIS:LPID3DXEffectStateManager;pShader:LPDIRECT3DPIXELSHADER9) with Convention=>Stdcall;
      SetPixelShaderConstantF:access procedure(THIS:LPID3DXEffectStateManager;RegisterIndex:UINT;pConstantData:LPCFLOAT;RegisterCount:UINT) with Convention=>Stdcall;
      SetPixelShaderConstantI:access procedure(THIS:LPID3DXEffectStateManager;RegisterIndex:UINT;pConstantData:LPCINT;RegisterCount:UINT) with Convention=>Stdcall;
      SetPixelShaderConstantB:access procedure(THIS:LPID3DXEffectStateManager;RegisterIndex:UINT;pConstantData:LPCBOOL;RegisterCount:UINT) with Convention=>Stdcall;
   end record;


   type ID3DXEFFECT;
   type LPID3DXEFFECT is access all ID3DXEFFECT;
   type LPD3DXEFFECT is access all ID3DXEFFECT;
   type LPLPD3DXEFFECT is access all LPD3DXEFFECT;

   IID_ID3DXEffect:constant win32.rpcdce.GUID:=(16#f6ceb4b3#,16#4e4c#,16#40dd#,(16#b8#,16#83#,16#8d#,16#8d#,16#e5#,16#ea#,16#c#,16#d5#));


   type ID3DXEffect is record
      QueryInterface:access procedure(THIS:LPID3DXEffect;iid:REFIID;ppv:LPLPVOID) with Convention=>Stdcall;
      AddRef:access function(THIS:LPID3DXEffect) return ULONG with Convention=>Stdcall;
      Release:access function(THIS:LPID3DXEffect) return ULONG with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3DXEffect;pDesc:LPD3DXEFFECT_DESC) with Convention=>Stdcall;
      GetParameterDesc:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pDesc:LPD3DXPARAMETER_DESC) with Convention=>Stdcall;
      GetTechniqueDesc:access procedure(THIS:LPID3DXEffect;hTechnique:D3DXHANDLE;pDesc:LPD3DXTECHNIQUE_DESC) with Convention=>Stdcall;
      GetPassDesc:access procedure(THIS:LPID3DXEffect;hPass:D3DXHANDLE;pDesc:LPD3DXPASS_DESC) with Convention=>Stdcall;
      GetFunctionDesc:access procedure(THIS:LPID3DXEffect;hShader:D3DXHANDLE;pDesc:LPD3DXFUNCTION_DESC) with Convention=>Stdcall;
      GetParameter:access function(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;Index:UINT) return D3DXHANDLE with Convention=>Stdcall;
      GetParameterByName:access function(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pName:LPCSTR) return D3DXHANDLE with Convention=>Stdcall;
      GetParameterBySemantic:access function(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pSemantic:LPCSTR) return D3DXHANDLE with Convention=>Stdcall;
      GetParameterElement:access function(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;Index:UINT) return D3DXHANDLE with Convention=>Stdcall;
      GetTechnique:access function(THIS:LPID3DXEffect;Index:UINT) return D3DXHANDLE with Convention=>Stdcall;
      GetTechniqueByName:access function(THIS:LPID3DXEffect;pName:LPCSTR) return D3DXHANDLE with Convention=>Stdcall;
      GetPass:access function(THIS:LPID3DXEffect;hTechnique:D3DXHANDLE;Index:UINT) return D3DXHANDLE with Convention=>Stdcall;
      GetPassByName:access function(THIS:LPID3DXEffect;hTechnique:D3DXHANDLE;pName:LPCSTR) return D3DXHANDLE with Convention=>Stdcall;
      GetFunction:access function(THIS:LPID3DXEffect;Index:UINT) return D3DXHANDLE with Convention=>Stdcall;
      GetFunctionByName:access function(THIS:LPID3DXEffect;pName:LPCSTR) return D3DXHANDLE with Convention=>Stdcall;
      GetAnnotation:access function(THIS:LPID3DXEffect;hObject:D3DXHANDLE;Index:UINT) return D3DXHANDLE with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3DXEffect;hObject:D3DXHANDLE;pName:LPCSTR) return D3DXHANDLE with Convention=>Stdcall;
      SetValue:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pData:LPCVOID;Bytes:UINT) with Convention=>Stdcall;
      GetValue:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pData:LPVOID;Bytes:UINT) with Convention=>Stdcall;
      SetBool:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;b:BOOL) with Convention=>Stdcall;
      GetBool:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pb:LPBOOL) with Convention=>Stdcall;
      SetBoolArray:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pb:LPCBOOL;Count:UINT) with Convention=>Stdcall;
      GetBoolArray:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pb:LPBOOL;Count:UINT) with Convention=>Stdcall;
      SetInt:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;n:INT) with Convention=>Stdcall;
      GetInt:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pn:LPINT) with Convention=>Stdcall;
      SetIntArray:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pn:LPCINT;Count:UINT) with Convention=>Stdcall;
      GetIntArray:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pn:LPINT;Count:UINT) with Convention=>Stdcall;
      SetFloat:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;f:FLOAT) with Convention=>Stdcall;
      GetFloat:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pf:LPFLOAT) with Convention=>Stdcall;
      SetFloatArray:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pf:LPCFLOAT;Count:UINT) with Convention=>Stdcall;
      GetFloatArray:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pf:LPFLOAT;Count:UINT) with Convention=>Stdcall;
      SetVector:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pVector:access constant D3DXVECTOR4) with Convention=>Stdcall;
      GetVector:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pVector:access D3DXVECTOR4) with Convention=>Stdcall;
      SetVectorArray:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pVector:access constant D3DXVECTOR4;Count:UINT) with Convention=>Stdcall;
      GetVectorArray:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pVector:access D3DXVECTOR4;Count:UINT) with Convention=>Stdcall;
      SetMatrix:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pMatrix:LPCD3DMATRIX) with Convention=>Stdcall;
      GetMatrix:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pMatrix:LPD3DMATRIX) with Convention=>Stdcall;
      SetMatrixArray:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pMatrix:LPCD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      GetMatrixArray:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pMatrix:LPD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      SetMatrixPointerArray:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;ppMatrix:access LPCD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      GetMatrixPointerArray:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;ppMatrix:access LPD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      SetMatrixTranspose:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pMatrix:LPCD3DMATRIX) with Convention=>Stdcall;
      GetMatrixTranspose:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pMatrix:LPD3DMATRIX) with Convention=>Stdcall;
      SetMatrixTransposeArray:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pMatrix:LPCD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      GetMatrixTransposeArray:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pMatrix:LPD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      SetMatrixTransposePointerArray:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;ppMatrix:access LPCD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      GetMatrixTransposePointerArray:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;ppMatrix:access LPD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      SetString:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pString:LPCSTR) with Convention=>Stdcall;
      GetString:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;ppString:access LPCSTR) with Convention=>Stdcall;
      SetTexture:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pTexture:LPDIRECT3DBASETEXTURE9) with Convention=>Stdcall;
      GetTexture:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;ppTexture:LPLPDIRECT3DBASETEXTURE9) with Convention=>Stdcall;
      GetPixelShader:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;ppPShader:access LPDIRECT3DPIXELSHADER9) with Convention=>Stdcall;
      GetVertexShader:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;ppVShader:access LPDIRECT3DVERTEXSHADER9) with Convention=>Stdcall;
      SetArrayRange:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;uStart:UINT;uEnd:UINT) with Convention=>Stdcall;
      GetPool:access procedure(THIS:LPID3DXEffect;ppPool:access LPD3DXEFFECTPOOL) with Convention=>Stdcall;
      SetTechnique:access procedure(THIS:LPID3DXEffect;hTechnique:D3DXHANDLE) with Convention=>Stdcall;
      GetCurrentTechnique:access function(THIS:LPID3DXEffect) return D3DXHANDLE with Convention=>Stdcall;
      ValidateTechnique:access procedure(THIS:LPID3DXEffect;hTechnique:D3DXHANDLE) with Convention=>Stdcall;
      FindNextValidTechnique:access procedure(THIS:LPID3DXEffect;hTechnique:D3DXHANDLE;pTechnique:LPD3DXHANDLE) with Convention=>Stdcall;
      IsParameterUsed:access function(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;hTechnique:D3DXHANDLE) return BOOL with Convention=>Stdcall;
      Beginn:access procedure(THIS:LPID3DXEffect;pPasses:LPUINT;Flags:DWORD) with Convention=>Stdcall;
      BeginPass:access procedure(THIS:LPID3DXEffect;Pass:UINT) with Convention=>Stdcall;
      CommitChanges:access procedure(THIS:LPID3DXEffect) with Convention=>Stdcall;
      EndPass:access procedure(THIS:LPID3DXEffect) with Convention=>Stdcall;
      Endd:access procedure(THIS:LPID3DXEffect) with Convention=>Stdcall;
      GetDevice:access procedure(THIS:LPID3DXEffect;ppDevice:LPLPDIRECT3DDEVICE9) with Convention=>Stdcall;
      OnLostDevice:access procedure(THIS:LPID3DXEffect) with Convention=>Stdcall;
      OnResetDevice:access procedure(THIS:LPID3DXEffect) with Convention=>Stdcall;
      SetStateManager:access procedure(THIS:LPID3DXEffect;pManager:LPD3DXEFFECTSTATEMANAGER) with Convention=>Stdcall;
      GetStateManager:access procedure(THIS:LPID3DXEffect;ppManager:access LPD3DXEFFECTSTATEMANAGER) with Convention=>Stdcall;
      BeginParameterBlock:access procedure(THIS:LPID3DXEffect) with Convention=>Stdcall;
      EndParameterBlock:access function(THIS:LPID3DXEffect) return D3DXHANDLE with Convention=>Stdcall;
      ApplyParameterBlock:access procedure(THIS:LPID3DXEffect;hParameterBlock:D3DXHANDLE) with Convention=>Stdcall;
      DeleteParameterBlock:access procedure(THIS:LPID3DXEffect;hParameterBlock:D3DXHANDLE) with Convention=>Stdcall;
      CloneEffect:access procedure(THIS:LPID3DXEffect;pDevice:LPDIRECT3DDEVICE9;ppEffect:LPLPD3DXEFFECT) with Convention=>Stdcall;
      SetRawValue:access procedure(THIS:LPID3DXEffect;hParameter:D3DXHANDLE;pData:LPCVOID;ByteOffset:UINT;Bytes:UINT) with Convention=>Stdcall;
   end record;

   type ID3DXEffectCompiler;
   type LPID3DXEFFECTCOMPILER is access all ID3DXEffectCompiler;
   subtype LPD3DXEFFECTCOMPILER is LPID3DXEFFECTCOMPILER;
   type LPLPLPD3DXEFFECTCOMPILER is access all LPD3DXEFFECTCOMPILER;

   IID_ID3DXEffectCompiler:constant win32.rpcdce.GUID:=(16#51b8a949#,16#1a31#,16#47e6#,(16#be#,16#a0#,16#4b#,16#30#,16#db#,16#53#,16#f1#,16#e0#));

   type ID3DXEffectCompiler is record
      QueryInterface:access procedure(THIS:LPID3DXEffectCompiler;iid:REFIID;ppv:LPLPVOID) with Convention=>Stdcall;
      AddRef:access function(THIS:LPID3DXEffectCompiler) return ULONG with Convention=>Stdcall;
      Release:access function(THIS:LPID3DXEffectCompiler) return ULONG with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3DXEffectCompiler;pDesc:LPD3DXEFFECT_DESC) with Convention=>Stdcall;
      GetParameterDesc:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pDesc:LPD3DXPARAMETER_DESC) with Convention=>Stdcall;
      GetTechniqueDesc:access procedure(THIS:LPID3DXEffectCompiler;hTechnique:D3DXHANDLE;pDesc:LPD3DXTECHNIQUE_DESC) with Convention=>Stdcall;
      GetPassDesc:access procedure(THIS:LPID3DXEffectCompiler;hPass:D3DXHANDLE;pDesc:LPD3DXPASS_DESC) with Convention=>Stdcall;
      GetFunctionDesc:access procedure(THIS:LPID3DXEffectCompiler;hShader:D3DXHANDLE;pDesc:LPD3DXFUNCTION_DESC) with Convention=>Stdcall;
      GetParameter:access function(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;Index:UINT) return D3DXHANDLE with Convention=>Stdcall;
      GetParameterByName:access function(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pName:LPCSTR) return D3DXHANDLE with Convention=>Stdcall;
      GetParameterBySemantic:access function(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pSemantic:LPCSTR) return D3DXHANDLE with Convention=>Stdcall;
      GetParameterElement:access function(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;Index:UINT) return D3DXHANDLE with Convention=>Stdcall;
      GetTechnique:access function(THIS:LPID3DXEffectCompiler;Index:UINT) return D3DXHANDLE with Convention=>Stdcall;
      GetTechniqueByName:access function(THIS:LPID3DXEffectCompiler;pName:LPCSTR) return D3DXHANDLE with Convention=>Stdcall;
      GetPass:access function(THIS:LPID3DXEffectCompiler;hTechnique:D3DXHANDLE;Index:UINT) return D3DXHANDLE with Convention=>Stdcall;
      GetPassByName:access function(THIS:LPID3DXEffectCompiler;hTechnique:D3DXHANDLE;pName:LPCSTR) return D3DXHANDLE with Convention=>Stdcall;
      GetFunction:access function(THIS:LPID3DXEffectCompiler;Index:UINT) return D3DXHANDLE with Convention=>Stdcall;
      GetFunctionByName:access function(THIS:LPID3DXEffectCompiler;pName:LPCSTR) return D3DXHANDLE with Convention=>Stdcall;
      GetAnnotation:access function(THIS:LPID3DXEffectCompiler;hObject:D3DXHANDLE;Index:UINT) return D3DXHANDLE with Convention=>Stdcall;
      GetAnnotationByName:access function(THIS:LPID3DXEffectCompiler;hObject:D3DXHANDLE;pName:LPCSTR) return D3DXHANDLE with Convention=>Stdcall;
      SetValue:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pData:LPCVOID;Bytes:UINT) with Convention=>Stdcall;
      GetValue:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pData:LPVOID;Bytes:UINT) with Convention=>Stdcall;
      SetBool:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;b:BOOL) with Convention=>Stdcall;
      GetBool:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pb:LPBOOL) with Convention=>Stdcall;
      SetBoolArray:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pb:LPCBOOL;Count:UINT) with Convention=>Stdcall;
      GetBoolArray:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pb:LPBOOL;Count:UINT) with Convention=>Stdcall;
      SetInt:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;n:INT) with Convention=>Stdcall;
      GetInt:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pn:LPINT) with Convention=>Stdcall;
      SetIntArray:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pn:LPCINT;Count:UINT) with Convention=>Stdcall;
      GetIntArray:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pn:LPINT;Count:UINT) with Convention=>Stdcall;
      SetFloat:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;f:FLOAT) with Convention=>Stdcall;
      GetFloat:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pf:LPFLOAT) with Convention=>Stdcall;
      SetFloatArray:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pf:LPCFLOAT;Count:UINT) with Convention=>Stdcall;
      GetFloatArray:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pf:LPFLOAT;Count:UINT) with Convention=>Stdcall;
      SetVector:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pVector:access constant D3DXVECTOR4) with Convention=>Stdcall;
      GetVector:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pVector:access D3DXVECTOR4) with Convention=>Stdcall;
      SetVectorArray:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pVector:access constant D3DXVECTOR4;Count:UINT) with Convention=>Stdcall;
      GetVectorArray:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pVector:access D3DXVECTOR4;Count:UINT) with Convention=>Stdcall;
      SetMatrix:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pMatrix:LPCD3DMATRIX) with Convention=>Stdcall;
      GetMatrix:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pMatrix:LPD3DMATRIX) with Convention=>Stdcall;
      SetMatrixArray:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pMatrix:LPCD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      GetMatrixArray:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pMatrix:LPD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      SetMatrixPointerArray:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;ppMatrix:access LPCD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      GetMatrixPointerArray:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;ppMatrix:access LPD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      SetMatrixTranspose:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pMatrix:LPCD3DMATRIX) with Convention=>Stdcall;
      GetMatrixTranspose:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pMatrix:LPD3DMATRIX) with Convention=>Stdcall;
      SetMatrixTransposeArray:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pMatrix:LPCD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      GetMatrixTransposeArray:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pMatrix:LPD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      SetMatrixTransposePointerArray:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;ppMatrix:access LPCD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      GetMatrixTransposePointerArray:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;ppMatrix:access LPD3DMATRIX;Count:UINT) with Convention=>Stdcall;
      SetString:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pString:LPCSTR) with Convention=>Stdcall;
      GetString:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;ppString:access LPCSTR) with Convention=>Stdcall;
      SetTexture:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pTexture:LPDIRECT3DBASETEXTURE9) with Convention=>Stdcall;
      GetTexture:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;ppTexture:LPLPDIRECT3DBASETEXTURE9) with Convention=>Stdcall;
      GetPixelShader:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;ppPShader:access LPDIRECT3DPIXELSHADER9) with Convention=>Stdcall;
      GetVertexShader:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;ppVShader:access LPDIRECT3DVERTEXSHADER9) with Convention=>Stdcall;
      SetArrayRange:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;uStart:UINT;uEnd:UINT) with Convention=>Stdcall;
      SetLiteral:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;Literal:BOOL) with Convention=>Stdcall;
      GetLiteral:access procedure(THIS:LPID3DXEffectCompiler;hParameter:D3DXHANDLE;pLiteral:LPBOOL) with Convention=>Stdcall;
      CompileEffect:access procedure(THIS:LPID3DXEffectCompiler;Flags:DWORD;ppEffect:access LPD3DXBUFFER;ppErrorMsgs:access LPD3DXBUFFER) with Convention=>Stdcall;
      CompileShader:access procedure(THIS:LPID3DXEffectCompiler;hFunction:D3DXHANDLE;pTarget:LPCSTR;Flags:DWORD;ppShader:LPLPD3DXBUFFER;ppErrorMsgs:LPLPD3DXBUFFER;ppConstantTable:access LPD3DXCONSTANTTABLE) with Convention=>Stdcall;
   end record;

   function D3DXCreateEffectPool(ppPool:access LPD3DXEFFECTPOOL) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectPool";

   function D3DXCreateEffectFromFileA(pDevice:LPDIRECT3DDEVICE9;pSrcFile:LPCSTR;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;Flags:DWORD;pPool:LPD3DXEFFECTPOOL;ppEffect:LPLPD3DXEFFECT;ppCompilationErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectFromFileA";
   function D3DXCreateEffectFromFile(pDevice:LPDIRECT3DDEVICE9;pSrcFile:LPCSTR;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;Flags:DWORD;pPool:LPD3DXEFFECTPOOL;ppEffect:LPLPD3DXEFFECT;ppCompilationErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectFromFileA";

   function D3DXCreateEffectFromFileW(pDevice:LPDIRECT3DDEVICE9;pSrcFile:LPCWSTR;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;Flags:DWORD;pPool:LPD3DXEFFECTPOOL;ppEffect:LPLPD3DXEFFECT;ppCompilationErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectFromFileW";



   function D3DXCreateEffectFromResourceA(pDevice:LPDIRECT3DDEVICE9;hSrcModule:HMODULE;pSrcResource:LPCSTR;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;Flags:DWORD;pPool:LPD3DXEFFECTPOOL;ppEffect:LPLPD3DXEFFECT;ppCompilationErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectFromResourceA";
   function D3DXCreateEffectFromResource(pDevice:LPDIRECT3DDEVICE9;hSrcModule:HMODULE;pSrcResource:LPCSTR;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;Flags:DWORD;pPool:LPD3DXEFFECTPOOL;ppEffect:LPLPD3DXEFFECT;ppCompilationErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectFromResourceA";

   function D3DXCreateEffectFromResourceW(pDevice:LPDIRECT3DDEVICE9;hSrcModule:HMODULE;pSrcResource:LPCWSTR;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;Flags:DWORD;pPool:LPD3DXEFFECTPOOL;ppEffect:LPLPD3DXEFFECT;ppCompilationErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectFromResourceW";



   function D3DXCreateEffect(pDevice:LPDIRECT3DDEVICE9;pSrcData:LPCVOID;SrcDataLen:UINT;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;Flags:DWORD;pPool:LPD3DXEFFECTPOOL;ppEffect:LPLPD3DXEFFECT;ppCompilationErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffect";

   function D3DXCreateEffectFromFileExA(pDevice:LPDIRECT3DDEVICE9;pSrcFile:LPCSTR;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;pSkipConstants:LPCSTR;Flags:DWORD;pPool:LPD3DXEFFECTPOOL;ppEffect:LPLPD3DXEFFECT;ppCompilationErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectFromFileExA";
   function D3DXCreateEffectFromFileEx(pDevice:LPDIRECT3DDEVICE9;pSrcFile:LPCSTR;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;pSkipConstants:LPCSTR;Flags:DWORD;pPool:LPD3DXEFFECTPOOL;ppEffect:LPLPD3DXEFFECT;ppCompilationErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectFromFileExA";

   function D3DXCreateEffectFromFileExW(pDevice:LPDIRECT3DDEVICE9;pSrcFile:LPCWSTR;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;pSkipConstants:LPCSTR;Flags:DWORD;pPool:LPD3DXEFFECTPOOL;ppEffect:LPLPD3DXEFFECT;ppCompilationErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectFromFileExW";



   function D3DXCreateEffectFromResourceExA(pDevice:LPDIRECT3DDEVICE9;hSrcModule:HMODULE;pSrcResource:LPCSTR;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;pSkipConstants:LPCSTR;Flags:DWORD;pPool:LPD3DXEFFECTPOOL;ppEffect:LPLPD3DXEFFECT;ppCompilationErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectFromResourceExA";
   function D3DXCreateEffectFromResourceEx(pDevice:LPDIRECT3DDEVICE9;hSrcModule:HMODULE;pSrcResource:LPCSTR;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;pSkipConstants:LPCSTR;Flags:DWORD;pPool:LPD3DXEFFECTPOOL;ppEffect:LPLPD3DXEFFECT;ppCompilationErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectFromResourceExA";

   function D3DXCreateEffectFromResourceExW(pDevice:LPDIRECT3DDEVICE9;hSrcModule:HMODULE;pSrcResource:LPCWSTR;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;pSkipConstants:LPCSTR;Flags:DWORD;pPool:LPD3DXEFFECTPOOL;ppEffect:LPLPD3DXEFFECT;ppCompilationErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectFromResourceExW";



   function D3DXCreateEffectEx(pDevice:LPDIRECT3DDEVICE9;pSrcData:LPCVOID;SrcDataLen:UINT;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;pSkipConstants:LPCSTR;Flags:DWORD;pPool:LPD3DXEFFECTPOOL;ppEffect:LPLPD3DXEFFECT;ppCompilationErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectEx";

   function D3DXCreateEffectCompilerFromFileA(pSrcFile:LPCSTR;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;Flags:DWORD;ppCompiler:access LPD3DXEFFECTCOMPILER;ppParseErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectCompilerFromFileA";
   function D3DXCreateEffectCompilerFromFile(pSrcFile:LPCSTR;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;Flags:DWORD;ppCompiler:access LPD3DXEFFECTCOMPILER;ppParseErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectCompilerFromFileA";

   function D3DXCreateEffectCompilerFromFileW(pSrcFile:LPCWSTR;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;Flags:DWORD;ppCompiler:access LPD3DXEFFECTCOMPILER;ppParseErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectCompilerFromFileW";



   function D3DXCreateEffectCompilerFromResourceA(hSrcModule:HMODULE;pSrcResource:LPCSTR;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;Flags:DWORD;ppCompiler:access LPD3DXEFFECTCOMPILER;ppParseErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectCompilerFromResourceA";
   function D3DXCreateEffectCompilerFromResource(hSrcModule:HMODULE;pSrcResource:LPCSTR;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;Flags:DWORD;ppCompiler:access LPD3DXEFFECTCOMPILER;ppParseErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectCompilerFromResourceA";

   function D3DXCreateEffectCompilerFromResourceW(hSrcModule:HMODULE;pSrcResource:LPCWSTR;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;Flags:DWORD;ppCompiler:access LPD3DXEFFECTCOMPILER;ppParseErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectCompilerFromResourceW";



   function D3DXCreateEffectCompiler(pSrcData:LPCSTR;SrcDataLen:UINT;pDefines:access constant D3DXMACRO;pInclude:LPD3DXINCLUDE;Flags:DWORD;ppCompiler:access LPD3DXEFFECTCOMPILER;ppParseErrors:LPLPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXCreateEffectCompiler";

   function D3DXDisassembleEffect(pEffect:LPD3DXEFFECT;EnableColorCode:BOOL;ppDisassembly:access LPD3DXBUFFER) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DXDisassembleEffect";






   --
   -- THE END
   --



end d3dx9effect;













猜你喜欢

转载自blog.csdn.net/adacore/article/details/83106398
今日推荐