Ada计算机图形DirectX之D3D10_1shader

----------------------------------------
-- File : d3d10_1shader.ads           --
-- Translator:Dongfeng.Gu,2018/10/24  --
-- Mail: 515639@qq.com                --
-- Progress:100%                      --
----------------------------------------

with win32;                        use win32;
with win32.winnt;                  use win32.winnt;
with win32.windef;                 use win32.windef;
with win32.rpcdce;                 use win32.rpcdce;
with win32.Objbase;                use win32.Objbase;

with D3D10;                        use D3D10;
with D3D10shader;                  use D3D10shader;

package D3D10_1shader is

   type tagD3D10_SHADER_DEBUG_REGTYPE is (D3D10_SHADER_DEBUG_REG_INPUT,
                                          D3D10_SHADER_DEBUG_REG_OUTPUT,
                                          D3D10_SHADER_DEBUG_REG_CBUFFER,
                                          D3D10_SHADER_DEBUG_REG_TBUFFER,
                                          D3D10_SHADER_DEBUG_REG_TEMP,
                                          D3D10_SHADER_DEBUG_REG_TEMPARRAY,
                                          D3D10_SHADER_DEBUG_REG_TEXTURE,
                                          D3D10_SHADER_DEBUG_REG_SAMPLER,
                                          D3D10_SHADER_DEBUG_REG_IMMEDIATECBUFFER,
                                          D3D10_SHADER_DEBUG_REG_LITERAL,
                                          D3D10_SHADER_DEBUG_REG_UNUSED,
                                          D3D11_SHADER_DEBUG_REG_INTERFACE_POINTERS,
                                          D3D10_SHADER_DEBUG_REG_FORCE_DWORD) with size=>32;
   for tagD3D10_SHADER_DEBUG_REGTYPE use (D3D10_SHADER_DEBUG_REG_INPUT=>0,
                                          D3D10_SHADER_DEBUG_REG_OUTPUT=>1,
                                          D3D10_SHADER_DEBUG_REG_CBUFFER=>2,
                                          D3D10_SHADER_DEBUG_REG_TBUFFER=>3,
                                          D3D10_SHADER_DEBUG_REG_TEMP=>4,
                                          D3D10_SHADER_DEBUG_REG_TEMPARRAY=>5,
                                          D3D10_SHADER_DEBUG_REG_TEXTURE=>6,
                                          D3D10_SHADER_DEBUG_REG_SAMPLER=>7,
                                          D3D10_SHADER_DEBUG_REG_IMMEDIATECBUFFER=>8,
                                          D3D10_SHADER_DEBUG_REG_LITERAL=>9,
                                          D3D10_SHADER_DEBUG_REG_UNUSED=>10,
                                          D3D11_SHADER_DEBUG_REG_INTERFACE_POINTERS=>11,
                                          D3D10_SHADER_DEBUG_REG_FORCE_DWORD=>16#7fffffff#);


   subtype D3D10_SHADER_DEBUG_REGTYPE is tagD3D10_SHADER_DEBUG_REGTYPE;

   type LPD3D10_SHADER_DEBUG_REGTYPE is access tagD3D10_SHADER_DEBUG_REGTYPE;

   type tagD3D10_SHADER_DEBUG_SCOPETYPE is (D3D10_SHADER_DEBUG_SCOPE_GLOBAL,
                                            D3D10_SHADER_DEBUG_SCOPE_BLOCK,
                                            D3D10_SHADER_DEBUG_SCOPE_FORLOOP,
                                            D3D10_SHADER_DEBUG_SCOPE_STRUCT,
                                            D3D10_SHADER_DEBUG_SCOPE_FUNC_PARAMS,
                                            D3D10_SHADER_DEBUG_SCOPE_STATEBLOCK,
                                            D3D10_SHADER_DEBUG_SCOPE_NAMESPACE,
                                            D3D10_SHADER_DEBUG_SCOPE_ANNOTATION,
                                            D3D10_SHADER_DEBUG_SCOPE_FORCE_DWORD);
   for tagD3D10_SHADER_DEBUG_SCOPETYPE use (D3D10_SHADER_DEBUG_SCOPE_GLOBAL=>0,
                                            D3D10_SHADER_DEBUG_SCOPE_BLOCK=>1,
                                            D3D10_SHADER_DEBUG_SCOPE_FORLOOP=>2,
                                            D3D10_SHADER_DEBUG_SCOPE_STRUCT=>3,
                                            D3D10_SHADER_DEBUG_SCOPE_FUNC_PARAMS=>4,
                                            D3D10_SHADER_DEBUG_SCOPE_STATEBLOCK=>5,
                                            D3D10_SHADER_DEBUG_SCOPE_NAMESPACE=>6,
                                            D3D10_SHADER_DEBUG_SCOPE_ANNOTATION=>7,
                                            D3D10_SHADER_DEBUG_SCOPE_FORCE_DWORD=>16#7fffffff#);


   subtype D3D10_SHADER_DEBUG_SCOPETYPE is tagD3D10_SHADER_DEBUG_SCOPETYPE;

   type LPD3D10_SHADER_DEBUG_SCOPETYPE is access tagD3D10_SHADER_DEBUG_SCOPETYPE;

   type tagD3D10_SHADER_DEBUG_VARTYPE is (D3D10_SHADER_DEBUG_VAR_VARIABLE,
                                          D3D10_SHADER_DEBUG_VAR_FUNCTION,
                                          D3D10_SHADER_DEBUG_VAR_FORCE_DWORD);
   for tagD3D10_SHADER_DEBUG_VARTYPE use (D3D10_SHADER_DEBUG_VAR_VARIABLE=>+ 1,
                                          D3D10_SHADER_DEBUG_VAR_FUNCTION=>+ 1+ 1,
                                          D3D10_SHADER_DEBUG_VAR_FORCE_DWORD=>16#7fffffff#);


   subtype D3D10_SHADER_DEBUG_VARTYPE is tagD3D10_SHADER_DEBUG_VARTYPE;

   type LPD3D10_SHADER_DEBUG_VARTYPE is access tagD3D10_SHADER_DEBUG_VARTYPE;

   type tagD3D10_SHADER_DEBUG_TOKEN_INFO is record
      File:UINT;
      Line:UINT;
      Column:UINT;
      TokenLength:UINT;
      TokenId:UINT;
   end record;

   subtype D3D10_SHADER_DEBUG_TOKEN_INFO is tagD3D10_SHADER_DEBUG_TOKEN_INFO;

   type LPD3D10_SHADER_DEBUG_TOKEN_INFO is access all tagD3D10_SHADER_DEBUG_TOKEN_INFO;

   type tagD3D10_SHADER_DEBUG_VAR_INFO is record
      TokenId:UINT;
      Typ:D3D10_SHADER_VARIABLE_TYPE;
      Register:UINT;
      Component:UINT;
      ScopeVar:UINT;
      ScopeVarOffset:UINT;
   end record;

   subtype D3D10_SHADER_DEBUG_VAR_INFO is tagD3D10_SHADER_DEBUG_VAR_INFO;

   type LPD3D10_SHADER_DEBUG_VAR_INFO is access all tagD3D10_SHADER_DEBUG_VAR_INFO;

   type tagD3D10_SHADER_DEBUG_INPUT_INFO is record
      Var:UINT;
      InitialRegisterSet:D3D10_SHADER_DEBUG_REGTYPE;
      InitialBank:UINT;
      InitialRegister:UINT;
      InitialComponent:UINT;
      InitialValue:UINT;
   end record;

   subtype D3D10_SHADER_DEBUG_INPUT_INFO is tagD3D10_SHADER_DEBUG_INPUT_INFO;

   type LPD3D10_SHADER_DEBUG_INPUT_INFO is access all tagD3D10_SHADER_DEBUG_INPUT_INFO;

   type tagD3D10_SHADER_DEBUG_SCOPEVAR_INFO is record
      TokenId:UINT;
      VarType:D3D10_SHADER_DEBUG_VARTYPE;
      Class:D3D10_SHADER_VARIABLE_CLASS;
      Rows:UINT;
      Columns:UINT;
      StructMemberScope:UINT;
      uArrayIndices:UINT;
      ArrayElements:UINT;
      ArrayStrides:UINT;
      uVariables:UINT;
      uFirstVariable:UINT;
   end record;

   subtype D3D10_SHADER_DEBUG_SCOPEVAR_INFO is tagD3D10_SHADER_DEBUG_SCOPEVAR_INFO;

   type LPD3D10_SHADER_DEBUG_SCOPEVAR_INFO is access all tagD3D10_SHADER_DEBUG_SCOPEVAR_INFO;

   type tagD3D10_SHADER_DEBUG_SCOPE_INFO is record
      ScopeType:D3D10_SHADER_DEBUG_SCOPETYPE;
      Name:UINT;
      uNameLen:UINT;
      uVariables:UINT;
      VariableData:UINT;
   end record;

   subtype D3D10_SHADER_DEBUG_SCOPE_INFO is tagD3D10_SHADER_DEBUG_SCOPE_INFO;

   type LPD3D10_SHADER_DEBUG_SCOPE_INFO is access all tagD3D10_SHADER_DEBUG_SCOPE_INFO;

   type tagD3D10_SHADER_DEBUG_OUTPUTVAR is record
      Var:UINT;
      uValueMin:UINT;
      uValueMax:UINT;
      iValueMin:INT;
      iValueMax:INT;
      fValueMin:FLOAT;
      fValueMax:FLOAT;
      bNaNPossible:BOOL;
      bInfPossible:BOOL;
   end record;

   subtype D3D10_SHADER_DEBUG_OUTPUTVAR is tagD3D10_SHADER_DEBUG_OUTPUTVAR;

   type LPD3D10_SHADER_DEBUG_OUTPUTVAR is access all tagD3D10_SHADER_DEBUG_OUTPUTVAR;
   
   type D3D10_SHADER_DEBUG_OUTPUTVAR_ARRAY is array(Natural range<>) of D3D10_SHADER_DEBUG_OUTPUTVAR;

   type tagD3D10_SHADER_DEBUG_OUTPUTREG_INFO is record
      OutputRegisterSet:D3D10_SHADER_DEBUG_REGTYPE;
      OutputReg:UINT;
      TempArrayReg:UINT;
      OutputComponents:UINT_Array(0..4-1);
      OutputVars:D3D10_SHADER_DEBUG_OUTPUTVAR_Array(0..4-1);
      IndexReg:UINT;
      IndexComp:UINT;
   end record;

   subtype D3D10_SHADER_DEBUG_OUTPUTREG_INFO is tagD3D10_SHADER_DEBUG_OUTPUTREG_INFO;

   type LPD3D10_SHADER_DEBUG_OUTPUTREG_INFO is access all tagD3D10_SHADER_DEBUG_OUTPUTREG_INFO;
   
   type D3D10_SHADER_DEBUG_OUTPUTREG_INFO_ARRAY is array (Natural range<>) of D3D10_SHADER_DEBUG_OUTPUTREG_INFO;
   
   type tagD3D10_SHADER_DEBUG_INST_INFO is record
      Id:UINT;
      Opcode:UINT;
      uOutputs:UINT;
      pOutputs:D3D10_SHADER_DEBUG_OUTPUTREG_INFO_Array(0..2-1);
      TokenId:UINT;
      NestingLevel:UINT;
      Scopes:UINT;
      ScopeInfo:UINT;
      AccessedVars:UINT;
      AccessedVarsInfo:UINT;
   end record;

   subtype D3D10_SHADER_DEBUG_INST_INFO is tagD3D10_SHADER_DEBUG_INST_INFO;

   type LPD3D10_SHADER_DEBUG_INST_INFO is access all tagD3D10_SHADER_DEBUG_INST_INFO;

   type tagD3D10_SHADER_DEBUG_FILE_INFO is record
      FileName:UINT;
      FileNameLen:UINT;
      FileData:UINT;
      FileLen:UINT;
   end record;

   subtype D3D10_SHADER_DEBUG_FILE_INFO is tagD3D10_SHADER_DEBUG_FILE_INFO;

   type LPD3D10_SHADER_DEBUG_FILE_INFO is access all tagD3D10_SHADER_DEBUG_FILE_INFO;

   type tagD3D10_SHADER_DEBUG_INFO is record
      Size:UINT;
      Creator:UINT;
      EntrypointName:UINT;
      ShaderTarget:UINT;
      CompileFlags:UINT;
      Files:UINT;
      FileInfo:UINT;
      Instructions:UINT;
      InstructionInfo:UINT;
      Variables:UINT;
      VariableInfo:UINT;
      InputVariables:UINT;
      InputVariableInfo:UINT;
      Tokens:UINT;
      TokenInfo:UINT;
      Scopes:UINT;
      ScopeInfo:UINT;
      ScopeVariables:UINT;
      ScopeVariableInfo:UINT;
      UintOffset:UINT;
      StringOffset:UINT;
   end record;

   type LPD3D10_SHADER_DEBUG_INFO is access all tagD3D10_SHADER_DEBUG_INFO;



   type ID3D10ShaderReflection1; 
   type LPID3D10SHADERREFLECTION1 is access all ID3D10ShaderReflection1;
   type LPLPID3D10ShaderReflection1 is access all LPID3D10ShaderReflection1;
   subtype LPD3D10ShaderReflection1 is LPID3D10ShaderReflection1;
   subtype LPLPD3D10SHADERREFLECTION1 is LPLPID3D10ShaderReflection1;

   IID_ID3D10ShaderReflection1:constant win32.rpcdce.GUID:=(16#c3457783#,16#a846#,16#47ce#,(16#95#,16#20#,16#ce#,16#a6#,16#f6#,16#6e#,16#74#,16#47#));


   type ID3D10ShaderReflection1 is record
      QueryInterface:access procedure(THIS:LPID3D10ShaderReflection1;iid:REFIID;ppv:LPLPVOID) with Convention=>Stdcall;
      AddRef:access function(THIS:LPID3D10ShaderReflection1) return ULONG with Convention=>Stdcall;
      Release:access function(THIS:LPID3D10ShaderReflection1) return ULONG with Convention=>Stdcall;
      GetDesc:access procedure(THIS:LPID3D10ShaderReflection1;pDesc:LPD3D10_SHADER_DESC) with Convention=>Stdcall;
      GetConstantBufferByIndex:access function(THIS:LPID3D10ShaderReflection1;Index:UINT) return LPID3D10ShaderReflectionConstantBuffer with Convention=>Stdcall;
      GetConstantBufferByName:access function(THIS:LPID3D10ShaderReflection1;Name:LPCSTR) return LPID3D10ShaderReflectionConstantBuffer with Convention=>Stdcall;
      GetResourceBindingDesc:access procedure(THIS:LPID3D10ShaderReflection1;ResourceIndex:UINT;pDesc:LPD3D10_SHADER_INPUT_BIND_DESC) with Convention=>Stdcall;
      GetInputParameterDesc:access procedure(THIS:LPID3D10ShaderReflection1;ParameterIndex:UINT;pDesc:LPD3D10_SIGNATURE_PARAMETER_DESC) with Convention=>Stdcall;
      GetOutputParameterDesc:access procedure(THIS:LPID3D10ShaderReflection1;ParameterIndex:UINT;pDesc:LPD3D10_SIGNATURE_PARAMETER_DESC) with Convention=>Stdcall;
      GetVariableByName:access function(THIS:LPID3D10ShaderReflection1;Name:LPCSTR) return LPID3D10ShaderReflectionVariable with Convention=>Stdcall;
      GetResourceBindingDescByName:access procedure(THIS:LPID3D10ShaderReflection1;Name:LPCSTR;pDesc:LPD3D10_SHADER_INPUT_BIND_DESC) with Convention=>Stdcall;
      GetMovInstructionCount:access procedure(THIS:LPID3D10ShaderReflection1;pCount:LPUINT) with Convention=>Stdcall;
      GetMovcInstructionCount:access procedure(THIS:LPID3D10ShaderReflection1;pCount:LPUINT) with Convention=>Stdcall;
      GetConversionInstructionCount:access procedure(THIS:LPID3D10ShaderReflection1;pCount:LPUINT) with Convention=>Stdcall;
      GetBitwiseInstructionCount:access procedure(THIS:LPID3D10ShaderReflection1;pCount:LPUINT) with Convention=>Stdcall;
      GetGSInputPrimitive:access procedure(THIS:LPID3D10ShaderReflection1;pPrim:access D3D10_PRIMITIVE) with Convention=>Stdcall;
      IsLevel9Shader:access procedure(THIS:LPID3D10ShaderReflection1;pbLevel9Shader:LPBOOL) with Convention=>Stdcall;
      IsSampleFrequencyShader:access procedure(THIS:LPID3D10ShaderReflection1;pbSampleFrequency:LPBOOL) with Convention=>Stdcall;
   end record;






end D3D10_1shader;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值