Ada计算机图形DirectX之D3DCSX

----------------------------------------
-- Microsoft DirectX Ada binding lib  --
-- File : D3DCSX.ads                  --
-- Translator:Dongfeng.Gu,2018/11/16  --
-- Mail: [email protected]                --
-- Progress:100%                      --
----------------------------------------


with win32;                    use win32;
with win32.rpcdce;
with win32.Objbase;            use win32.Objbase;

with d3d11;                    use d3d11;

package D3DCSX is

   type D3DX11_SCAN_DATA_TYPE is (D3DX11_SCAN_DATA_TYPE_FLOAT,
                                  D3DX11_SCAN_DATA_TYPE_INT,
                                  D3DX11_SCAN_DATA_TYPE_UINT);
   for D3DX11_SCAN_DATA_TYPE use (D3DX11_SCAN_DATA_TYPE_FLOAT=>1,
                                  D3DX11_SCAN_DATA_TYPE_INT=>2,
                                  D3DX11_SCAN_DATA_TYPE_UINT=>3);

   type LPD3DX11_SCAN_DATA_TYPE is access D3DX11_SCAN_DATA_TYPE;

   type D3DX11_SCAN_OPCODE is (D3DX11_SCAN_OPCODE_ADD,
                               D3DX11_SCAN_OPCODE_MIN,
                               D3DX11_SCAN_OPCODE_MAX,
                               D3DX11_SCAN_OPCODE_MUL,
                               D3DX11_SCAN_OPCODE_AND,
                               D3DX11_SCAN_OPCODE_OR,
                               D3DX11_SCAN_OPCODE_XOR);
   for D3DX11_SCAN_OPCODE use (D3DX11_SCAN_OPCODE_ADD=>1,
                               D3DX11_SCAN_OPCODE_MIN=>2,
                               D3DX11_SCAN_OPCODE_MAX=>3,
                               D3DX11_SCAN_OPCODE_MUL=>4,
                               D3DX11_SCAN_OPCODE_AND=>5,
                               D3DX11_SCAN_OPCODE_OR=>6,
                               D3DX11_SCAN_OPCODE_XOR=>7);

   type LPD3DX11_SCAN_OPCODE is access D3DX11_SCAN_OPCODE;

   type D3DX11_SCAN_DIRECTION is (D3DX11_SCAN_DIRECTION_FORWARD,
                                  D3DX11_SCAN_DIRECTION_BACKWARD);
   for D3DX11_SCAN_DIRECTION use (D3DX11_SCAN_DIRECTION_FORWARD=>1,
                                  D3DX11_SCAN_DIRECTION_BACKWARD=>2);

   type LPD3DX11_SCAN_DIRECTION is access D3DX11_SCAN_DIRECTION;


   type ID3DX11Scan;
   type LPID3DX11Scan is access all ID3DX11Scan;
   type LPLPID3DX11Scan is access all LPID3DX11Scan;
   subtype LPD3DX11Scan is LPID3DX11Scan;
   subtype LPLPD3DX11Scan is LPLPID3DX11Scan;

   type ID3DX11SegmentedScan;
   type LPID3DX11SegmentedScan is access all ID3DX11SegmentedScan;
   type LPLPID3DX11SegmentedScan is access all LPID3DX11SegmentedScan;
   subtype LPD3DX11SegmentedScan is LPID3DX11SegmentedScan;
   subtype LPLPD3DX11SegmentedScan is LPLPID3DX11SegmentedScan;

   type ID3DX11FFT;
   type LPID3DX11FFT is access all ID3DX11FFT;
   type LPLPID3DX11FFT is access all LPID3DX11FFT;
   subtype LPD3DX11FFT is LPID3DX11FFT;
   subtype LPLPD3DX11FFT is LPLPID3DX11FFT;



   IID_ID3DX11Scan:constant win32.rpcdce.GUID:=(16#5089b68f#,16#e71d#,16#4d38#,(16#be#,16#8e#,16#f3#,16#63#,16#b9#,16#5a#,16#94#,16#05#));
   type ID3DX11Scan_vtbl is record
      QueryInterface:access function(THIS:LPID3DX11Scan;iid:REFIID;ppv:LPLPVOID) return HRESULT with Convention=>Stdcall;
      AddRef:access function(THIS:LPID3DX11Scan) return ULONG with Convention=>Stdcall;
      Release:access function(THIS:LPID3DX11Scan) return ULONG with Convention=>Stdcall;
      SetScanDirection:access function(THIS:LPID3DX11Scan;Direction:D3DX11_SCAN_DIRECTION) return HRESULT with Convention=>Stdcall;
      Scan:access function(THIS:LPID3DX11Scan;ElementType:D3DX11_SCAN_DATA_TYPE;OpCode:D3DX11_SCAN_OPCODE;ElementScanSize:UINT;pSrc:LPID3D11UnorderedAccessView;pDst:LPID3D11UnorderedAccessView) return HRESULT with Convention=>Stdcall;
      Multiscan:access function(THIS:LPID3DX11Scan;ElementType:D3DX11_SCAN_DATA_TYPE;OpCode:D3DX11_SCAN_OPCODE;ElementScanSize:UINT;ElementScanPitch:UINT;ScanCount:UINT;pSrc:LPID3D11UnorderedAccessView;pDst:LPID3D11UnorderedAccessView) return HRESULT with Convention=>Stdcall;
   end record;
   type ID3DX11Scan is access all ID3DX11Scan_vtbl;

   function D3DX11CreateScan(pDeviceContext:LPID3D11DeviceContext;MaxElementScanSize:UINT;MaxScanCount:UINT;ppScan:LPLPID3DX11Scan) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DX11CreateScan";





   IID_ID3DX11SegmentedScan:constant win32.rpcdce.GUID:=(16#a915128c#,16#d954#,16#4c79#,(16#bf#,16#e1#,16#64#,16#db#,16#92#,16#31#,16#94#,16#d6#));


   type ID3DX11SegmentedScan_vtbl is record
      QueryInterface:access function(THIS:LPID3DX11SegmentedScan;iid:REFIID;ppv:LPLPVOID) return HRESULT with Convention=>Stdcall;
      AddRef:access function(THIS:LPID3DX11SegmentedScan) return ULONG with Convention=>Stdcall;
      Release:access function(THIS:LPID3DX11SegmentedScan) return ULONG with Convention=>Stdcall;
      SetScanDirection:access function(THIS:LPID3DX11SegmentedScan;Direction:D3DX11_SCAN_DIRECTION) return HRESULT with Convention=>Stdcall;
      SegScan:access function(THIS:LPID3DX11SegmentedScan;ElementType:D3DX11_SCAN_DATA_TYPE;OpCode:D3DX11_SCAN_OPCODE;ElementScanSize:UINT;pSrc:LPID3D11UnorderedAccessView;pSrcElementFlags:LPID3D11UnorderedAccessView;pDst:LPID3D11UnorderedAccessView) return HRESULT with Convention=>Stdcall;
   end record;
   type ID3DX11SegmentedScan is access all ID3DX11SegmentedScan_vtbl;

   function D3DX11CreateSegmentedScan(pDeviceContext:LPID3D11DeviceContext;MaxElementScanSize:UINT;ppScan:LPLPID3DX11SegmentedScan) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DX11CreateSegmentedScan";

   D3DX11_FFT_MAX_PRECOMPUTE_BUFFERS : constant := 4;

   D3DX11_FFT_MAX_TEMP_BUFFERS : constant := 4;

   D3DX11_FFT_MAX_DIMENSIONS : constant := 32;

   IID_ID3DX11FFT:constant win32.rpcdce.GUID:=(16#b3f7a938#,16#4c93#,16#4310#,(16#a6#,16#75#,16#b3#,16#0d#,16#6d#,16#e5#,16#05#,16#53#));


   type ID3DX11FFT_vtbl is record
      QueryInterface:access function(THIS:LPID3DX11FFT;iid:REFIID;ppv:LPLPVOID) return HRESULT with Convention=>Stdcall;
      AddRef:access function(THIS:LPID3DX11FFT) return ULONG with Convention=>Stdcall;
      Release:access function(THIS:LPID3DX11FFT) return ULONG with Convention=>Stdcall;
      SetForwardScale:access function(THIS:LPID3DX11FFT;ForwardScale:FLOAT) return HRESULT with Convention=>Stdcall;
      GetForwardScale:access function(THIS:LPID3DX11FFT) return FLOAT with Convention=>Stdcall;
      SetInverseScale:access function(THIS:LPID3DX11FFT;InverseScale:FLOAT) return HRESULT with Convention=>Stdcall;
      GetInverseScale:access function(THIS:LPID3DX11FFT) return FLOAT with Convention=>Stdcall;
      AttachBuffersAndPrecompute:access function(THIS:LPID3DX11FFT;NumTempBuffers:UINT;ppTempBuffers:LPLPID3D11UnorderedAccessView;NumPrecomputeBuffers:UINT;ppPrecomputeBufferSizes:LPLPID3D11UnorderedAccessView) return HRESULT with Convention=>Stdcall;
      ForwardTransform:access function(THIS:LPID3DX11FFT;pInputBuffer:LPID3D11UnorderedAccessView;ppOutputBuffer:LPLPID3D11UnorderedAccessView) return HRESULT with Convention=>Stdcall;
      InverseTransform:access function(THIS:LPID3DX11FFT;pInputBuffer:LPID3D11UnorderedAccessView;ppOutputBuffer:LPLPID3D11UnorderedAccessView) return HRESULT with Convention=>Stdcall;
   end record;
   type ID3DX11FFT is access all ID3DX11FFT_vtbl;

   type D3DX11_FFT_DATA_TYPE is (D3DX11_FFT_DATA_TYPE_REAL,
                                 D3DX11_FFT_DATA_TYPE_COMPLEX);

   type LPD3DX11_FFT_DATA_TYPE is access D3DX11_FFT_DATA_TYPE;

   type D3DX11_FFT_DIM_MASK is (D3DX11_FFT_DIM_MASK_1D,
                                D3DX11_FFT_DIM_MASK_2D,
                                D3DX11_FFT_DIM_MASK_3D);
   for D3DX11_FFT_DIM_MASK use (D3DX11_FFT_DIM_MASK_1D=>16#1#,
                                D3DX11_FFT_DIM_MASK_2D=>16#3#,
                                D3DX11_FFT_DIM_MASK_3D=>16#7#);

   type LPD3DX11_FFT_DIM_MASK is access D3DX11_FFT_DIM_MASK;

   type D3DX11_FFT_DESC is record
      NumDimensions: UINT;
      ElementLengths: UINT_Array(0..D3DX11_FFT_MAX_DIMENSIONS-1);
      DimensionMask: UINT;
      Typ: D3DX11_FFT_DATA_TYPE;
   end record;

   type LPD3DX11_FFT_DESC is access all D3DX11_FFT_DESC;
   type LPCD3DX11_FFT_DESC is access constant D3DX11_FFT_DESC;

   type D3DX11_FFT_BUFFER_INFO is record
      NumTempBufferSizes: UINT;
      TempBufferFloatSizes: UINT_Array(0..D3DX11_FFT_MAX_TEMP_BUFFERS-1);
      NumPrecomputeBufferSizes: UINT;
      PrecomputeBufferFloatSizes: UINT_Array(0..D3DX11_FFT_MAX_PRECOMPUTE_BUFFERS-1);
   end record;

   type LPD3DX11_FFT_BUFFER_INFO is access all D3DX11_FFT_BUFFER_INFO;

   type D3DX11_FFT_CREATE_FLAG is (D3DX11_FFT_CREATE_FLAG_NO_PRECOMPUTE_BUFFERS);
   for D3DX11_FFT_CREATE_FLAG use (D3DX11_FFT_CREATE_FLAG_NO_PRECOMPUTE_BUFFERS=>16#01#);

   type LPD3DX11_FFT_CREATE_FLAG  is access D3DX11_FFT_CREATE_FLAG;

   function D3DX11CreateFFT(pDeviceContext:LPID3D11DeviceContext;pDesc:LPCD3DX11_FFT_DESC;Flags:UINT;pBufferInfo:LPD3DX11_FFT_BUFFER_INFO;ppFFT:LPLPID3DX11FFT) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DX11CreateFFT";

   function D3DX11CreateFFT1DReal(pDeviceContext:LPID3D11DeviceContext;X:UINT;Flags:UINT;pBufferInfo:LPD3DX11_FFT_BUFFER_INFO;ppFFT:LPLPID3DX11FFT) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DX11CreateFFT1DReal";

   function D3DX11CreateFFT1DComplex(pDeviceContext:LPID3D11DeviceContext;X:UINT;Flags:UINT;pBufferInfo:LPD3DX11_FFT_BUFFER_INFO;ppFFT:LPLPID3DX11FFT) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DX11CreateFFT1DComplex";

   function D3DX11CreateFFT2DReal(pDeviceContext:LPID3D11DeviceContext;X:UINT;Y:UINT;Flags:UINT;pBufferInfo:LPD3DX11_FFT_BUFFER_INFO;ppFFT:LPLPID3DX11FFT) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DX11CreateFFT2DReal";

   function D3DX11CreateFFT2DComplex(pDeviceContext:LPID3D11DeviceContext;X:UINT;Y:UINT;Flags:UINT;pBufferInfo:LPD3DX11_FFT_BUFFER_INFO;ppFFT:LPLPID3DX11FFT) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DX11CreateFFT2DComplex";

   function D3DX11CreateFFT3DReal(pDeviceContext:LPID3D11DeviceContext;X:UINT;Y:UINT;Z:UINT;Flags:UINT;pBufferInfo:LPD3DX11_FFT_BUFFER_INFO;ppFFT:LPLPID3DX11FFT) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DX11CreateFFT3DReal";

   function D3DX11CreateFFT3DComplex(pDeviceContext:LPID3D11DeviceContext;X:UINT;Y:UINT;Z:UINT;Flags:UINT;pBufferInfo:LPD3DX11_FFT_BUFFER_INFO;ppFFT:LPLPID3DX11FFT) return HRESULT with Import,Convention=>stdcall,external_name=>"D3DX11CreateFFT3DComplex";



   --
   -- THE END.
   --


end D3DCSX;











猜你喜欢

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