Ada计算机图形DirectX之d3d10

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

with win32;                           use win32;
with win32.windef;                    use win32.windef;
with win32.winnt;                     use win32.winnt;
with win32.rpcdce;                    use win32.rpcdce;
with win32.objbase;                   use win32.objbase;
with win32.Winerror;

with Interfaces.C;
with Ada.Unchecked_Conversion;

with GXGIFormat;                      use GXGIFormat;

package d3d10 is
   
   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));
   
   type LPCIUNKNOWN is access constant IUNKNOWN;
   subtype UINT8 is uchar;
   type float_Array is array(Natural range<>) of float;
   subtype UINT64 is win32.ULONGLONG;
   
   

   --
   -- 预定义接口
   --
   type ID3D10DeviceChild;
   type LPID3D10DeviceChild is access all ID3D10DeviceChild;
   type LPLPID3D10DeviceChild is access all LPID3D10DeviceChild;
   subtype LPD3D10DeviceChild is LPID3D10DeviceChild;
   subtype LPLPD3D10DeviceChild is LPLPID3D10DeviceChild;
   
   type ID3D10DepthStencilState;
   type LPID3D10DepthStencilState is access all ID3D10DepthStencilState;
   type LPLPID3D10DepthStencilState is access all LPID3D10DepthStencilState;
   subtype LPD3D10DepthStencilState is LPID3D10DepthStencilState;
   subtype LPLPD3D10DepthStencilState is LPLPID3D10DepthStencilState;
   
   type ID3D10BlendState;
   type LPID3D10BlendState is access all ID3D10BlendState;
   type LPLPID3D10BlendState is access all LPID3D10BlendState;
   subtype LPD3D10BlendState is LPID3D10BlendState;
   subtype LPLPD3D10BlendState is LPLPID3D10BlendState;
   
   type ID3D10RasterizerState;
   type LPID3D10RasterizerState is access all ID3D10RasterizerState;
   type LPLPID3D10RasterizerState is access all LPID3D10RasterizerState;
   subtype LPD3D10RasterizerState is LPID3D10RasterizerState;
   subtype LPLPD3D10RasterizerState is LPLPID3D10RasterizerState;
   
   type ID3D10Resource;
   type LPID3D10Resource is access all ID3D10Resource;
   type LPLPID3D10Resource is access all LPID3D10Resource;
   subtype LPD3D10Resource is lpID3D10Resource;
   subtype LPLPD3D10Resource is LPLPID3D10Resource;
   
   type ID3D10Buffer;
   type LPID3D10Buffer is access all ID3D10Buffer;
   type LPLPID3D10Buffer is access all LPID3D10Buffer;
   subtype LPD3D10Buffer is LPID3D10Buffer;
   subtype LPLPD3D10Buffer is LPLPID3D10Buffer;
   type LPCID3D10Buffer is access constant ID3D10Buffer;
   type LPLPCID3D10Buffer is access all LPCID3D10Buffer;
   
   type ID3D10Texture1D;
   type LPID3D10Texture1D is access all ID3D10Texture1D;
   type LPLPID3D10Texture1D is access all LPID3D10Texture1D;
   subtype LPD3D10Texture1D is LPID3D10Texture1D;
   subtype LPLPD3D10Texture1D is LPLPID3D10Texture1D;
   
   type ID3D10Texture2D;
   type LPID3D10Texture2D is access all ID3D10Texture2D;
   type LPLPID3D10Texture2D is access all LPID3D10Texture2D;
   subtype LPD3D10Texture2D is LPID3D10Texture2D;
   subtype LPLPD3D10Texture2D is LPLPID3D10Texture2D;
   
   type ID3D10Texture3D;
   type LPID3D10Texture3D is access all ID3D10Texture3D;
   type LPLPID3D10Texture3D is access all LPID3D10Texture3D;
   subtype LPD3D10Texture3D is LPID3D10Texture3D;
   subtype LPLPD3D10Texture3D is LPLPID3D10Texture3D;
   
   type ID3D10View;
   type LPID3D10View is access all ID3D10View;
   type LPLPID3D10View is access all LPID3D10View;
   subtype LPD3D10View is LPID3D10View;
   subtype LPLPD3D10View is LPLPID3D10View;
   
   type ID3D10ShaderResourceView;
   type LPID3D10ShaderResourceView is access all ID3D10ShaderResourceView;
   type LPLPID3D10ShaderResourceView is access all LPID3D10ShaderResourceView;
   subtype LPD3D10ShaderResourceView is LPID3D10ShaderResourceView;
   subtype LPLPD3D10ShaderResourceView is LPLPID3D10ShaderResourceView;
   type LPCID3D10ShaderResourceView is access constant ID3D10ShaderResourceView;
   type LPLPCID3D10ShaderResourceView is access all LPCID3D10ShaderResourceView;
   
   type ID3D10RenderTargetView;
   type LPID3D10RenderTargetView is access all ID3D10RenderTargetView;
   type LPLPID3D10RenderTargetView is access all LPID3D10RenderTargetView;
   subtype LPD3D10RenderTargetView is LPID3D10RenderTargetView;
   subtype LPLPD3D10RenderTargetView is LPLPID3D10RenderTargetView;
   
   type ID3D10DepthStencilView;
   type LPID3D10DepthStencilView is access all ID3D10DepthStencilView;
   type LPLPID3D10DepthStencilView is access all LPID3D10DepthStencilView;
   subtype LPD3D10DepthStencilView is LPID3D10DepthStencilView;
   subtype LPLPD3D10DepthStencilView is LPLPID3D10DepthStencilView;
   
   type ID3D10VertexShader;
   type LPID3D10VertexShader is access all ID3D10VertexShader;
   type LPLPID3D10VertexShader is access all LPID3D10VertexShader;
   subtype LPD3D10VertexShader is LPID3D10VertexShader;
   subtype LPLPD3D10VertexShader is LPLPID3D10VertexShader;
   
   type ID3D10GeometryShader;
   type LPID3D10GeometryShader is access all ID3D10GeometryShader;
   type LPLPID3D10GeometryShader is access all LPID3D10GeometryShader;
   subtype LPD3D10GeometryShader is LPID3D10GeometryShader;
   subtype LPLPD3D10GeometryShader is LPLPID3D10GeometryShader;
   
   type ID3D10PixelShader;
   type LPID3D10PixelShader is access all ID3D10PixelShader;
   type LPLPID3D10PixelShader is access all LPID3D10PixelShader;
   subtype LPD3D10PixelShader is LPID3D10PixelShader;
   subtype LPLPD3D10PixelShader is LPLPID3D10PixelShader;
   
   type ID3D10InputLayout;
   type LPID3D10InputLayout is access all ID3D10InputLayout;
   type LPLPID3D10InputLayout is access all LPID3D10InputLayout;
   subtype LPD3D10InputLayout is LPID3D10InputLayout;
   subtype LPLPD3D10InputLayout is LPLPID3D10InputLayout;
   
   type ID3D10SamplerState;
   type LPID3D10SamplerState is access all ID3D10SamplerState;
   type LPLPID3D10SamplerState is access all LPID3D10SamplerState;
   subtype LPD3D10SamplerState is LPID3D10SamplerState;
   subtype LPLPD3D10SamplerState is LPLPID3D10SamplerState;
   type LPCID3D10SamplerState is access constant ID3D10SamplerState;
   type LPLPCID3D10SamplerState is access all LPCID3D10SamplerState;
   type LPCLPID3D10SamplerState is access constant LPID3D10SamplerState;
   
   type ID3D10Asynchronous;
   type LPID3D10Asynchronous is access all ID3D10Asynchronous;
   type LPLPID3D10Asynchronous is access all LPID3D10Asynchronous;
   subtype LPD3D10Asynchronous is LPID3D10Asynchronous;
   subtype LPLPD3D10Asynchronous is LPLPID3D10Asynchronous;
   
   type ID3D10Query;
   type LPID3D10Query is access all ID3D10Query;
   type LPLPID3D10Query is access all LPID3D10Query;
   subtype LPD3D10Query is LPID3D10Query;
   subtype LPLPD3D10Query is LPLPID3D10Query;
   
   type ID3D10Predicate;
   type LPID3D10Predicate is access all ID3D10Predicate;
   type LPLPID3D10Predicate is access all LPID3D10Predicate;
   subtype LPD3D10Predicate is LPID3D10Predicate;
   subtype LPLPD3D10Predicate is LPLPID3D10Predicate;
   
   type ID3D10Counter;
   type LPID3D10Counter is access all ID3D10Counter;
   type LPLPID3D10Counter is access all LPID3D10Counter;
   subtype LPD3D10Counter is LPID3D10Counter;
   subtype LPLPD3D10Counter is LPLPID3D10Counter;
   
   type ID3D10Device;
   type LPID3D10Device is access all ID3D10Device;
   type LPLPID3D10Device is access all LPID3D10Device;
   subtype LPD3D10Device is LPID3D10Device;
   subtype LPLPD3D10Device is LPLPID3D10Device;
   
   type ID3D10Multithread;
   type LPID3D10Multithread is access all ID3D10Multithread;
   type LPLPID3D10Multithread is access all LPID3D10Multithread;
   subtype LPD3D10Multithread is LPID3D10Multithread;
   subtype LPLPD3D10Multithread is LPLPID3D10Multithread;
   
   

   REQUIRED_RPCNDR_H_VERSION : constant := 475;

   REQUIRED_RPCSAL_H_VERSION : constant := 100;

   D3D10_16BIT_INDEX_STRIP_CUT_VALUE : constant := ( 16#ffff# );

   D3D10_32BIT_INDEX_STRIP_CUT_VALUE : constant := ( 16#ffffffff# );

   D3D10_8BIT_INDEX_STRIP_CUT_VALUE : constant := ( 16#ff# );

   D3D10_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT : constant := ( 9 );

   D3D10_CLIP_OR_CULL_DISTANCE_COUNT : constant := ( 8 );

   D3D10_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT : constant := ( 2 );

   D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT : constant := ( 14 );

   D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS : constant := ( 4 );

   D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D10_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT : constant := ( 15 );

   D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS : constant := ( 4 );

   D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT : constant := ( 15 );

   D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST : constant := ( 1 );

   D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS : constant := ( 1 );

   D3D10_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT : constant := ( 64 );

   D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS : constant := ( 4 );

   D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT : constant := ( 1 );

   D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST : constant := ( 1 );

   D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS : constant := ( 1 );

   D3D10_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS : constant := ( 1 );

   D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT : constant := ( 128 );

   D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST : constant := ( 1 );

   D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS : constant := ( 1 );

   D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT : constant := ( 128 );

   D3D10_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS : constant := ( 1 );

   D3D10_COMMONSHADER_SAMPLER_REGISTER_COUNT : constant := ( 16 );

   D3D10_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST : constant := ( 1 );

   D3D10_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS : constant := ( 1 );

   D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT : constant := ( 16 );

   D3D10_COMMONSHADER_SUBROUTINE_NESTING_LIMIT : constant := ( 32 );

   D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENTS : constant := ( 4 );

   D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D10_COMMONSHADER_TEMP_REGISTER_COUNT : constant := ( 4096 );

   D3D10_COMMONSHADER_TEMP_REGISTER_READS_PER_INST : constant := ( 3 );

   D3D10_COMMONSHADER_TEMP_REGISTER_READ_PORTS : constant := ( 3 );

   D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX : constant := ( 10 );

   D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN : constant := ( -10 );

   D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE : constant := ( -8 );

   D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE : constant := ( 7 );

   D3D10_DEFAULT_BLEND_FACTOR_ALPHA : constant := ( 1.0 );

   D3D10_DEFAULT_BLEND_FACTOR_BLUE : constant := ( 1.0 );

   D3D10_DEFAULT_BLEND_FACTOR_GREEN : constant := ( 1.0 );

   D3D10_DEFAULT_BLEND_FACTOR_RED : constant := ( 1.0 );

   D3D10_DEFAULT_BORDER_COLOR_COMPONENT : constant := ( 0.0 );

   D3D10_DEFAULT_DEPTH_BIAS : constant := ( 0 );

   D3D10_DEFAULT_DEPTH_BIAS_CLAMP : constant := ( 0.0 );

   D3D10_DEFAULT_MAX_ANISOTROPY : constant := ( 16.0 );

   D3D10_DEFAULT_MIP_LOD_BIAS : constant := ( 0.0 );

   D3D10_DEFAULT_RENDER_TARGET_ARRAY_INDEX : constant := ( 0 );

   D3D10_DEFAULT_SAMPLE_MASK : constant := ( 16#ffffffff# );

   D3D10_DEFAULT_SCISSOR_ENDX : constant := ( 0 );

   D3D10_DEFAULT_SCISSOR_ENDY : constant := ( 0 );

   D3D10_DEFAULT_SCISSOR_STARTX : constant := ( 0 );

   D3D10_DEFAULT_SCISSOR_STARTY : constant := ( 0 );

   D3D10_DEFAULT_SLOPE_SCALED_DEPTH_BIAS : constant := ( 0.0 );

   D3D10_DEFAULT_STENCIL_READ_MASK : constant := ( 16#ff# );

   D3D10_DEFAULT_STENCIL_REFERENCE : constant := ( 0 );

   D3D10_DEFAULT_STENCIL_WRITE_MASK : constant := ( 16#ff# );

   D3D10_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX : constant := ( 0 );

   D3D10_DEFAULT_VIEWPORT_HEIGHT : constant := ( 0 );

   D3D10_DEFAULT_VIEWPORT_MAX_DEPTH : constant := ( 0.0 );

   D3D10_DEFAULT_VIEWPORT_MIN_DEPTH : constant := ( 0.0 );

   D3D10_DEFAULT_VIEWPORT_TOPLEFTX : constant := ( 0 );

   D3D10_DEFAULT_VIEWPORT_TOPLEFTY : constant := ( 0 );

   D3D10_DEFAULT_VIEWPORT_WIDTH : constant := ( 0 );

   D3D10_FLOAT16_FUSED_TOLERANCE_IN_ULP : constant := ( 0.6 );

   D3D10_FLOAT32_MAX : constant := ( 3.402823466e+38 );

   D3D10_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP : constant := ( 0.6 );

   D3D10_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR : constant := ( 2.4 );

   D3D10_FLOAT_TO_SRGB_EXPONENT_NUMERATOR : constant := ( 1.0 );

   D3D10_FLOAT_TO_SRGB_OFFSET : constant := ( 0.055 );

   D3D10_FLOAT_TO_SRGB_SCALE_1 : constant := ( 12.92 );

   D3D10_FLOAT_TO_SRGB_SCALE_2 : constant := ( 1.055 );

   D3D10_FLOAT_TO_SRGB_THRESHOLD : constant := ( 0.0031308);

   D3D10_FTOI_INSTRUCTION_MAX_INPUT : constant := ( 2147483647.999 );

   D3D10_FTOI_INSTRUCTION_MIN_INPUT : constant := ( -2147483648.999 );

   D3D10_FTOU_INSTRUCTION_MAX_INPUT : constant := ( 4294967295.999 );

   D3D10_FTOU_INSTRUCTION_MIN_INPUT : constant := ( 0.0 );

   D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS : constant := ( 1 );

   D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D10_GS_INPUT_PRIM_CONST_REGISTER_COUNT : constant := ( 1 );

   D3D10_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST : constant := ( 2 );

   D3D10_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS : constant := ( 1 );

   D3D10_GS_INPUT_REGISTER_COMPONENTS : constant := ( 4 );

   D3D10_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D10_GS_INPUT_REGISTER_COUNT : constant := ( 16 );

   D3D10_GS_INPUT_REGISTER_READS_PER_INST : constant := ( 2 );

   D3D10_GS_INPUT_REGISTER_READ_PORTS : constant := ( 1 );

   D3D10_GS_INPUT_REGISTER_VERTICES : constant := ( 6 );

   D3D10_GS_OUTPUT_ELEMENTS : constant := ( 32 );

   D3D10_GS_OUTPUT_REGISTER_COMPONENTS : constant := ( 4 );

   D3D10_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D10_GS_OUTPUT_REGISTER_COUNT : constant := ( 32 );

   D3D10_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES : constant := ( 0 );

   D3D10_IA_DEFAULT_PRIMITIVE_TOPOLOGY : constant := ( 0 );

   D3D10_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES : constant := ( 0 );

   D3D10_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT : constant := ( 1 );

   D3D10_IA_INSTANCE_ID_BIT_COUNT : constant := ( 32 );

   D3D10_IA_INTEGER_ARITHMETIC_BIT_COUNT : constant := ( 32 );

   D3D10_IA_PRIMITIVE_ID_BIT_COUNT : constant := ( 32 );

   D3D10_IA_VERTEX_ID_BIT_COUNT : constant := ( 32 );

   D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT : constant := ( 16 );

   D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS : constant := ( 64 );

   D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT : constant := ( 16 );

   D3D10_INTEGER_DIVIDE_BY_ZERO_QUOTIENT : constant := ( 16#ffffffff# );

   D3D10_INTEGER_DIVIDE_BY_ZERO_REMAINDER : constant := ( 16#ffffffff# );

   D3D10_LINEAR_GAMMA : constant := ( 1.0 );

   D3D10_MAX_BORDER_COLOR_COMPONENT : constant := ( 1.0 );

   D3D10_MAX_DEPTH : constant := ( 1.0 );

   D3D10_MAX_MAXANISOTROPY : constant := ( 16 );

   D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT : constant := ( 32 );

   D3D10_MAX_POSITION_VALUE : constant := ( 3.402823466e+34 );

   D3D10_MAX_TEXTURE_DIMENSION_2_TO_EXP : constant := ( 17 );

   D3D10_MIN_BORDER_COLOR_COMPONENT : constant := ( 0.0 );

   D3D10_MIN_DEPTH : constant := ( 0.0 );

   D3D10_MIN_MAXANISOTROPY : constant := ( 0 );

   D3D10_MIP_LOD_BIAS_MAX : constant := ( 15.99 );

   D3D10_MIP_LOD_BIAS_MIN : constant := ( -16.0 );

   D3D10_MIP_LOD_FRACTIONAL_BIT_COUNT : constant := ( 6 );

   D3D10_MIP_LOD_RANGE_BIT_COUNT : constant := ( 8 );

   D3D10_MULTISAMPLE_ANTIALIAS_LINE_WIDTH : constant := ( 1.4 );

   D3D10_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT : constant := ( 0 );

   D3D10_PIXEL_ADDRESS_RANGE_BIT_COUNT : constant := ( 13 );

   D3D10_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT : constant := ( 15 );

   D3D10_PS_FRONTFACING_DEFAULT_VALUE : constant := ( 16#ffffffff#);

   D3D10_PS_FRONTFACING_FALSE_VALUE : constant := ( 0 );

   D3D10_PS_FRONTFACING_TRUE_VALUE : constant := ( 16#ffffffff# );

   D3D10_PS_INPUT_REGISTER_COMPONENTS : constant := ( 4 );

   D3D10_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D10_PS_INPUT_REGISTER_COUNT : constant := ( 32 );

   D3D10_PS_INPUT_REGISTER_READS_PER_INST : constant := ( 2 );

   D3D10_PS_INPUT_REGISTER_READ_PORTS : constant := ( 1 );

   D3D10_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT : constant := ( 0.0 );

   D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS : constant := ( 1 );

   D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D10_PS_OUTPUT_DEPTH_REGISTER_COUNT : constant := ( 1 );

   D3D10_PS_OUTPUT_REGISTER_COMPONENTS : constant := ( 4 );

   D3D10_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D10_PS_OUTPUT_REGISTER_COUNT : constant := ( 8 );

   D3D10_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT : constant := ( 0.5 );

   D3D10_REQ_BLEND_OBJECT_COUNT_PER_CONTEXT : constant := ( 4096 );

   D3D10_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP : constant := ( 27 );

   D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT : constant := ( 4096 );

   D3D10_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_CONTEXT : constant := ( 4096 );

   D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP : constant := ( 32 );

   D3D10_REQ_DRAW_VERTEX_COUNT_2_TO_EXP : constant := ( 32 );

   D3D10_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION : constant := ( 8192 );

   D3D10_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT : constant := ( 1024 );

   D3D10_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT : constant := ( 4096 );

   D3D10_REQ_MAXANISOTROPY : constant := ( 16 );

   D3D10_REQ_MIP_LEVELS : constant := ( 14 );

   D3D10_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES : constant := ( 2048 );

   D3D10_REQ_RASTERIZER_OBJECT_COUNT_PER_CONTEXT : constant := ( 4096 );

   D3D10_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH : constant := ( 8192 );

   D3D10_REQ_RESOURCE_SIZE_IN_MEGABYTES : constant := ( 128 );

   D3D10_REQ_RESOURCE_VIEW_COUNT_PER_CONTEXT_2_TO_EXP : constant := ( 20 );

   D3D10_REQ_SAMPLER_OBJECT_COUNT_PER_CONTEXT : constant := ( 4096 );

   D3D10_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION : constant := ( 512 );

   D3D10_REQ_TEXTURE1D_U_DIMENSION : constant := ( 8192 );

   D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION : constant := ( 512 );

   D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION : constant := ( 8192 );

   D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION : constant := ( 2048 );

   D3D10_REQ_TEXTURECUBE_DIMENSION : constant := ( 8192 );

   D3D10_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL : constant := ( 0 );

   D3D10_SHADER_MAJOR_VERSION : constant := ( 4 );

   D3D10_SHADER_MINOR_VERSION : constant := ( 0 );

   D3D10_SHIFT_INSTRUCTION_PAD_VALUE : constant := ( 0 );

   D3D10_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT : constant := ( 5 );

   D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT : constant := ( 8 );

   D3D10_SO_BUFFER_MAX_STRIDE_IN_BYTES : constant := ( 2048 );

   D3D10_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES : constant := ( 256 );

   D3D10_SO_BUFFER_SLOT_COUNT : constant := ( 4 );

   D3D10_SO_DDI_REGISTER_INDEX_DENOTING_GAP : constant := ( 16#ffffffff# );

   D3D10_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER : constant := ( 1 );

   D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT : constant := ( 64 );

   D3D10_SRGB_GAMMA : constant := ( 2.2);

   D3D10_SRGB_TO_FLOAT_DENOMINATOR_1 : constant := ( 12.92 );

   D3D10_SRGB_TO_FLOAT_DENOMINATOR_2 : constant := ( 1.055 );

   D3D10_SRGB_TO_FLOAT_EXPONENT : constant := ( 2.4 );

   D3D10_SRGB_TO_FLOAT_OFFSET : constant := ( 0.055 );

   D3D10_SRGB_TO_FLOAT_THRESHOLD : constant := ( 0.04045 );

   D3D10_SRGB_TO_FLOAT_TOLERANCE_IN_ULP : constant := ( 0.5);

   D3D10_STANDARD_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D10_STANDARD_COMPONENT_BIT_COUNT_DOUBLED : constant := ( 64 );

   D3D10_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE : constant := ( 4 );

   D3D10_STANDARD_PIXEL_COMPONENT_COUNT : constant := ( 128 );

   D3D10_STANDARD_PIXEL_ELEMENT_COUNT : constant := ( 32 );

   D3D10_STANDARD_VECTOR_SIZE : constant := ( 4 );

   D3D10_STANDARD_VERTEX_ELEMENT_COUNT : constant := ( 16 );

   D3D10_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT : constant := ( 64 );

   D3D10_SUBPIXEL_FRACTIONAL_BIT_COUNT : constant := ( 8 );

   D3D10_SUBTEXEL_FRACTIONAL_BIT_COUNT : constant := ( 6 );

   D3D10_TEXEL_ADDRESS_RANGE_BIT_COUNT : constant := ( 18 );

   D3D10_UNBOUND_MEMORY_ACCESS_RESULT : constant := ( 0 );

   D3D10_VIEWPORT_AND_SCISSORRECT_MAX_INDEX : constant := ( 15 );

   D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE : constant := ( 16 );

   D3D10_VIEWPORT_BOUNDS_MAX : constant := ( 16383 );

   D3D10_VIEWPORT_BOUNDS_MIN : constant := ( -16384 );

   D3D10_VS_INPUT_REGISTER_COMPONENTS : constant := ( 4 );

   D3D10_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D10_VS_INPUT_REGISTER_COUNT : constant := ( 16 );

   D3D10_VS_INPUT_REGISTER_READS_PER_INST : constant := ( 2 );

   D3D10_VS_INPUT_REGISTER_READ_PORTS : constant := ( 1 );

   D3D10_VS_OUTPUT_REGISTER_COMPONENTS : constant := ( 4 );

   D3D10_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D10_VS_OUTPUT_REGISTER_COUNT : constant := ( 16 );

   D3D10_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT : constant := ( 10 );

   D3D10_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP : constant := ( 25 );

   D3D10_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP : constant := ( 25 );

   D3D_MAJOR_VERSION : constant := ( 10 );

   D3D_MINOR_VERSION : constant := ( 0 );

   D3D_SPEC_DATE_DAY : constant := ( 8 );

   D3D_SPEC_DATE_MONTH : constant := ( 8 );

   D3D_SPEC_DATE_YEAR : constant := ( 2006 );

   D3D_SPEC_VERSION : constant := ( 1.050005 );

   D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT : constant := D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT;

   D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT : constant := D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT;

   FACD3D10 : constant := ( 16#879# );

   FACD3D10DEBUG : constant := ( ( FACD3D10 + 1 )  );
   
   --  MACRO FUNCTION,d3d10.h:613
   function MAKE_D3D10_HRESULT( code:WORD ) return HRESULT is (win32.Winerror.MAKE_HRESULT( 1, FACD3D10, code ));
   function MAKE_D3D10_STATUS( code:WORD )  return HRESULT is (win32.Winerror.MAKE_HRESULT( 0, FACD3D10, code ));

   

   D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS : constant HRESULT:= MAKE_D3D10_HRESULT(1);

   D3D10_ERROR_FILE_NOT_FOUND : constant HRESULT:= MAKE_D3D10_HRESULT(2);

   -- d3d10.h:623
   type D3D10_INPUT_CLASSIFICATION is (D3D10_INPUT_PER_VERTEX_DATA,
                                       D3D10_INPUT_PER_INSTANCE_DATA);
   for D3D10_INPUT_CLASSIFICATION use (D3D10_INPUT_PER_VERTEX_DATA=>0,
                                       D3D10_INPUT_PER_INSTANCE_DATA=>1);

   -- d3d10.h:629
   D3D10_APPEND_ALIGNED_ELEMENT : constant := ( 16#ffffffff# );

   -- d3d10.h:631
   type D3D10_INPUT_ELEMENT_DESC is record
      SemanticName:LPCSTR;
      SemanticIndex:UINT;
      Format:DXGI_FORMAT;
      InputSlot:UINT;
      AlignedByteOffset:UINT;
      InputSlotClass:D3D10_INPUT_CLASSIFICATION;
      InstanceDataStepRate:UINT;
   end record;
   
   type LPD3D10_INPUT_ELEMENT_DESC is access all D3D10_INPUT_ELEMENT_DESC;
   type LPCD3D10_INPUT_ELEMENT_DESC is access constant D3D10_INPUT_ELEMENT_DESC;
   type LPLPD3D10_INPUT_ELEMENT_DESC is access all LPD3D10_INPUT_ELEMENT_DESC;

   

   type D3D10_FILL_MODE is (D3D10_FILL_WIREFRAME,
                            D3D10_FILL_SOLID);
   for D3D10_FILL_MODE use (D3D10_FILL_WIREFRAME=>2,
                            D3D10_FILL_SOLID=>3);

   type D3D10_PRIMITIVE_TOPOLOGY is (D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED,
                                     D3D10_PRIMITIVE_TOPOLOGY_POINTLIST,
                                     D3D10_PRIMITIVE_TOPOLOGY_LINELIST,
                                     D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP,
                                     D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
                                     D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
                                     D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ,
                                     D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
                                     D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
                                     D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ);
   for D3D10_PRIMITIVE_TOPOLOGY use (D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED=>0,
                                     D3D10_PRIMITIVE_TOPOLOGY_POINTLIST=>1,
                                     D3D10_PRIMITIVE_TOPOLOGY_LINELIST=>2,
                                     D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP=>3,
                                     D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST=>4,
                                     D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP=>5,
                                     D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ=>10,
                                     D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ=>11,
                                     D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ=>12,
                                     D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ=>13);
   
   type LPD3D10_PRIMITIVE_TOPOLOGY is access all D3D10_PRIMITIVE_TOPOLOGY;

   type D3D10_PRIMITIVE is (D3D10_PRIMITIVE_UNDEFINED,
                            D3D10_PRIMITIVE_POINT,
                            D3D10_PRIMITIVE_LINE,
                            D3D10_PRIMITIVE_TRIANGLE,
                            D3D10_PRIMITIVE_LINE_ADJ,
                            D3D10_PRIMITIVE_TRIANGLE_ADJ);
   for D3D10_PRIMITIVE use (D3D10_PRIMITIVE_UNDEFINED=>0,
                            D3D10_PRIMITIVE_POINT=>1,
                            D3D10_PRIMITIVE_LINE=>2,
                            D3D10_PRIMITIVE_TRIANGLE=>3,
                            D3D10_PRIMITIVE_LINE_ADJ=>6,
                            D3D10_PRIMITIVE_TRIANGLE_ADJ=>7);

   type D3D10_CULL_MODE is (D3D10_CULL_NONE,
                            D3D10_CULL_FRONT,
                            D3D10_CULL_BACK);
   for D3D10_CULL_MODE use (D3D10_CULL_NONE=>1,
                            D3D10_CULL_FRONT=>2,
                            D3D10_CULL_BACK=>3);

   type D3D10_SO_DECLARATION_ENTRY is record
      SemanticName:LPCSTR;
      SemanticIndex:UINT;
      StartComponent:BYTE;
      ComponentCount:BYTE;
      OutputSlot:BYTE;
   end record;
   type LPD3D10_SO_DECLARATION_ENTRY is access all D3D10_SO_DECLARATION_ENTRY;
   type LPCD3D10_SO_DECLARATION_ENTRY is access constant D3D10_SO_DECLARATION_ENTRY;

   

   type D3D10_VIEWPORT is record
      TopLeftX:INT;
      TopLeftY:INT;
      Width:UINT;
      Height:UINT;
      MinDepth:FLOAT;
      MaxDepth:FLOAT;
   end record;
   type LPD3D10_VIEWPORT is access all D3D10_VIEWPORT;
   type LPCD3D10_VIEWPORT is access constant D3D10_VIEWPORT;

   

   type D3D10_RESOURCE_DIMENSION is (D3D10_RESOURCE_DIMENSION_UNKNOWN,
                                     D3D10_RESOURCE_DIMENSION_BUFFER,
                                     D3D10_RESOURCE_DIMENSION_TEXTURE1D,
                                     D3D10_RESOURCE_DIMENSION_TEXTURE2D,
                                     D3D10_RESOURCE_DIMENSION_TEXTURE3D);
   for D3D10_RESOURCE_DIMENSION use (D3D10_RESOURCE_DIMENSION_UNKNOWN=>0,
                                     D3D10_RESOURCE_DIMENSION_BUFFER=>1,
                                     D3D10_RESOURCE_DIMENSION_TEXTURE1D=>2,
                                     D3D10_RESOURCE_DIMENSION_TEXTURE2D=>3,
                                     D3D10_RESOURCE_DIMENSION_TEXTURE3D=>4);
   type LPD3D10_RESOURCE_DIMENSION is access all D3D10_RESOURCE_DIMENSION;

   type D3D10_SRV_DIMENSION is (D3D10_SRV_DIMENSION_UNKNOWN,
                                D3D10_SRV_DIMENSION_BUFFER,
                                D3D10_SRV_DIMENSION_TEXTURE1D,
                                D3D10_SRV_DIMENSION_TEXTURE1DARRAY,
                                D3D10_SRV_DIMENSION_TEXTURE2D,
                                D3D10_SRV_DIMENSION_TEXTURE2DARRAY,
                                D3D10_SRV_DIMENSION_TEXTURE2DMS,
                                D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY,
                                D3D10_SRV_DIMENSION_TEXTURE3D,
                                D3D10_SRV_DIMENSION_TEXTURECUBE);
   for D3D10_SRV_DIMENSION use (D3D10_SRV_DIMENSION_UNKNOWN=>0,
                                D3D10_SRV_DIMENSION_BUFFER=>1,
                                D3D10_SRV_DIMENSION_TEXTURE1D=>2,
                                D3D10_SRV_DIMENSION_TEXTURE1DARRAY=>3,
                                D3D10_SRV_DIMENSION_TEXTURE2D=>4,
                                D3D10_SRV_DIMENSION_TEXTURE2DARRAY=>5,
                                D3D10_SRV_DIMENSION_TEXTURE2DMS=>6,
                                D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY=>7,
                                D3D10_SRV_DIMENSION_TEXTURE3D=>8,
                                D3D10_SRV_DIMENSION_TEXTURECUBE=>9);

   type D3D10_DSV_DIMENSION is (D3D10_DSV_DIMENSION_UNKNOWN,
                                D3D10_DSV_DIMENSION_TEXTURE1D,
                                D3D10_DSV_DIMENSION_TEXTURE1DARRAY,
                                D3D10_DSV_DIMENSION_TEXTURE2D,
                                D3D10_DSV_DIMENSION_TEXTURE2DARRAY,
                                D3D10_DSV_DIMENSION_TEXTURE2DMS,
                                D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY);
   for D3D10_DSV_DIMENSION use (D3D10_DSV_DIMENSION_UNKNOWN=>0,
                                D3D10_DSV_DIMENSION_TEXTURE1D=>1,
                                D3D10_DSV_DIMENSION_TEXTURE1DARRAY=>2,
                                D3D10_DSV_DIMENSION_TEXTURE2D=>3,
                                D3D10_DSV_DIMENSION_TEXTURE2DARRAY=>4,
                                D3D10_DSV_DIMENSION_TEXTURE2DMS=>5,
                                D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY=>6);

   type D3D10_RTV_DIMENSION is (D3D10_RTV_DIMENSION_UNKNOWN,
                                D3D10_RTV_DIMENSION_BUFFER,
                                D3D10_RTV_DIMENSION_TEXTURE1D,
                                D3D10_RTV_DIMENSION_TEXTURE1DARRAY,
                                D3D10_RTV_DIMENSION_TEXTURE2D,
                                D3D10_RTV_DIMENSION_TEXTURE2DARRAY,
                                D3D10_RTV_DIMENSION_TEXTURE2DMS,
                                D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY,
                                D3D10_RTV_DIMENSION_TEXTURE3D);
   for D3D10_RTV_DIMENSION use (D3D10_RTV_DIMENSION_UNKNOWN=>0,
                                D3D10_RTV_DIMENSION_BUFFER=>1,
                                D3D10_RTV_DIMENSION_TEXTURE1D=>2,
                                D3D10_RTV_DIMENSION_TEXTURE1DARRAY=>3,
                                D3D10_RTV_DIMENSION_TEXTURE2D=>4,
                                D3D10_RTV_DIMENSION_TEXTURE2DARRAY=>5,
                                D3D10_RTV_DIMENSION_TEXTURE2DMS=>6,
                                D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY=>7,
                                D3D10_RTV_DIMENSION_TEXTURE3D=>8);

   type D3D10_USAGE is (D3D10_USAGE_DEFAULT,
                        D3D10_USAGE_IMMUTABLE,
                        D3D10_USAGE_DYNAMIC,
                        D3D10_USAGE_STAGING);
   for D3D10_USAGE use (D3D10_USAGE_DEFAULT=>0,
                        D3D10_USAGE_IMMUTABLE=>1,
                        D3D10_USAGE_DYNAMIC=>2,
                        D3D10_USAGE_STAGING=>3);

   type D3D10_BIND_FLAG is (D3D10_BIND_VERTEX_BUFFER,
                            D3D10_BIND_INDEX_BUFFER,
                            D3D10_BIND_CONSTANT_BUFFER,
                            D3D10_BIND_SHADER_RESOURCE,
                            D3D10_BIND_STREAM_OUTPUT,
                            D3D10_BIND_RENDER_TARGET,
                            D3D10_BIND_DEPTH_STENCIL);
   for D3D10_BIND_FLAG use (D3D10_BIND_VERTEX_BUFFER=>16#1#,
                            D3D10_BIND_INDEX_BUFFER=>16#2#,
                            D3D10_BIND_CONSTANT_BUFFER=>16#4#,
                            D3D10_BIND_SHADER_RESOURCE=>16#8#,
                            D3D10_BIND_STREAM_OUTPUT=>16#10#,
                            D3D10_BIND_RENDER_TARGET=>16#20#,
                            D3D10_BIND_DEPTH_STENCIL=>16#40#);

   type D3D10_CPU_ACCESS_FLAG is (D3D10_CPU_ACCESS_WRITE,
                                  D3D10_CPU_ACCESS_READ);
   for D3D10_CPU_ACCESS_FLAG use (D3D10_CPU_ACCESS_WRITE=>16#10000#,
                                  D3D10_CPU_ACCESS_READ=>16#20000#);

   type D3D10_RESOURCE_MISC_FLAG is (D3D10_RESOURCE_MISC_GENERATE_MIPS,
                                     D3D10_RESOURCE_MISC_SHARED,
                                     D3D10_RESOURCE_MISC_TEXTURECUBE,
                                     D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX,
                                     D3D10_RESOURCE_MISC_GDI_COMPATIBLE);
   for D3D10_RESOURCE_MISC_FLAG use (D3D10_RESOURCE_MISC_GENERATE_MIPS=>16#1#,
                                     D3D10_RESOURCE_MISC_SHARED=>16#2#,
                                     D3D10_RESOURCE_MISC_TEXTURECUBE=>16#4#,
                                     D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX=>16#10#,
                                     D3D10_RESOURCE_MISC_GDI_COMPATIBLE=>16#20#);

   type D3D10_MAP is (D3D10_MAP_READ,
                      D3D10_MAP_WRITE,
                      D3D10_MAP_READ_WRITE,
                      D3D10_MAP_WRITE_DISCARD,
                      D3D10_MAP_WRITE_NO_OVERWRITE);
   for D3D10_MAP use (D3D10_MAP_READ=>1,
                      D3D10_MAP_WRITE=>2,
                      D3D10_MAP_READ_WRITE=>3,
                      D3D10_MAP_WRITE_DISCARD=>4,
                      D3D10_MAP_WRITE_NO_OVERWRITE=>5);

   type D3D10_MAP_FLAG is (D3D10_MAP_FLAG_DO_NOT_WAIT);
   for D3D10_MAP_FLAG use (D3D10_MAP_FLAG_DO_NOT_WAIT=>16#100000#);

   type D3D10_RAISE_FLAG is (D3D10_RAISE_FLAG_DRIVER_INTERNAL_ERROR);
   for D3D10_RAISE_FLAG use (D3D10_RAISE_FLAG_DRIVER_INTERNAL_ERROR=>16#1#);

   type D3D10_CLEAR_FLAG is (D3D10_CLEAR_DEPTH,
                             D3D10_CLEAR_STENCIL);
   for D3D10_CLEAR_FLAG use (D3D10_CLEAR_DEPTH=>16#1#,
                             D3D10_CLEAR_STENCIL=>16#2#);

   subtype D3D10_RECT is RECT;
   type LPD3D10_RECT is access all D3D10_RECT;
   type LPCD3D10_RECT is access constant D3D10_RECT;

   type D3D10_BOX is record
      left:UINT;
      top:UINT;
      front:UINT;
      right:UINT;
      bottom:UINT;
      back:UINT;
   end record;

   type LPD3D10_BOX is access all D3D10_BOX;
   type LPCD3D10_BOX is access constant D3D10_BOX;
   
  
   
   

   type ID3D10DeviceChild is record
      QueryInterface:access function(This:LPID3D10DeviceChild;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10DeviceChild) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10DeviceChild) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10DeviceChild;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10DeviceChild;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10DeviceChild;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10DeviceChild;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
   end record;

   

   type D3D10_COMPARISON_FUNC is (D3D10_COMPARISON_NEVER,
                                  D3D10_COMPARISON_LESS,
                                  D3D10_COMPARISON_EQUAL,
                                  D3D10_COMPARISON_LESS_EQUAL,
                                  D3D10_COMPARISON_GREATER,
                                  D3D10_COMPARISON_NOT_EQUAL,
                                  D3D10_COMPARISON_GREATER_EQUAL,
                                  D3D10_COMPARISON_ALWAYS);
   for D3D10_COMPARISON_FUNC use (D3D10_COMPARISON_NEVER=>1,
                                  D3D10_COMPARISON_LESS=>2,
                                  D3D10_COMPARISON_EQUAL=>3,
                                  D3D10_COMPARISON_LESS_EQUAL=>4,
                                  D3D10_COMPARISON_GREATER=>5,
                                  D3D10_COMPARISON_NOT_EQUAL=>6,
                                  D3D10_COMPARISON_GREATER_EQUAL=>7,
                                  D3D10_COMPARISON_ALWAYS=>8);

   type D3D10_DEPTH_WRITE_MASK is (D3D10_DEPTH_WRITE_MASK_ZERO,
                                   D3D10_DEPTH_WRITE_MASK_ALL);
   for D3D10_DEPTH_WRITE_MASK use (D3D10_DEPTH_WRITE_MASK_ZERO=>0,
                                   D3D10_DEPTH_WRITE_MASK_ALL=>1);

   type D3D10_STENCIL_OP is (D3D10_STENCIL_OP_KEEP,
                             D3D10_STENCIL_OP_ZERO,
                             D3D10_STENCIL_OP_REPLACE,
                             D3D10_STENCIL_OP_INCR_SAT,
                             D3D10_STENCIL_OP_DECR_SAT,
                             D3D10_STENCIL_OP_INVERT,
                             D3D10_STENCIL_OP_INCR,
                             D3D10_STENCIL_OP_DECR);
   for D3D10_STENCIL_OP use (D3D10_STENCIL_OP_KEEP=>1,
                             D3D10_STENCIL_OP_ZERO=>2,
                             D3D10_STENCIL_OP_REPLACE=>3,
                             D3D10_STENCIL_OP_INCR_SAT=>4,
                             D3D10_STENCIL_OP_DECR_SAT=>5,
                             D3D10_STENCIL_OP_INVERT=>6,
                             D3D10_STENCIL_OP_INCR=>7,
                             D3D10_STENCIL_OP_DECR=>8);

   type D3D10_DEPTH_STENCILOP_DESC is record
      StencilFailOp:D3D10_STENCIL_OP;
      StencilDepthFailOp:D3D10_STENCIL_OP;
      StencilPassOp:D3D10_STENCIL_OP;
      StencilFunc:D3D10_COMPARISON_FUNC;
   end record;

   type LPD3D10_DEPTH_STENCILOP_DESC is access all D3D10_DEPTH_STENCILOP_DESC;
   type LPCD3D10_DEPTH_STENCILOP_DESC is access constant D3D10_DEPTH_STENCILOP_DESC;

   type D3D10_DEPTH_STENCIL_DESC is record
      DepthEnable:BOOL;
      DepthWriteMask:D3D10_DEPTH_WRITE_MASK;
      DepthFunc:D3D10_COMPARISON_FUNC;
      StencilEnable:BOOL;
      StencilReadMask:UINT8;
      StencilWriteMask:UINT8;
      FrontFace:D3D10_DEPTH_STENCILOP_DESC;
      BackFace:D3D10_DEPTH_STENCILOP_DESC;
   end record;

   type LPD3D10_DEPTH_STENCIL_DESC is access all D3D10_DEPTH_STENCIL_DESC;
   type LPCD3D10_DEPTH_STENCIL_DESC is access constant D3D10_DEPTH_STENCIL_DESC;

   
   
   
   type ID3D10DepthStencilState is record
      QueryInterface:access function(This:LPID3D10DepthStencilState;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10DepthStencilState) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10DepthStencilState) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10DepthStencilState;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10DepthStencilState;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10DepthStencilState;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10DepthStencilState;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D10DepthStencilState;pDesc:LPD3D10_DEPTH_STENCIL_DESC) return void with Convention=>Stdcall;
   end record;

   

   type D3D10_BLEND is (D3D10_BLEND_ZERO,
                        D3D10_BLEND_ONE,
                        D3D10_BLEND_SRC_COLOR,
                        D3D10_BLEND_INV_SRC_COLOR,
                        D3D10_BLEND_SRC_ALPHA,
                        D3D10_BLEND_INV_SRC_ALPHA,
                        D3D10_BLEND_DEST_ALPHA,
                        D3D10_BLEND_INV_DEST_ALPHA,
                        D3D10_BLEND_DEST_COLOR,
                        D3D10_BLEND_INV_DEST_COLOR,
                        D3D10_BLEND_SRC_ALPHA_SAT,
                        D3D10_BLEND_BLEND_FACTOR,
                        D3D10_BLEND_INV_BLEND_FACTOR,
                        D3D10_BLEND_SRC1_COLOR,
                        D3D10_BLEND_INV_SRC1_COLOR,
                        D3D10_BLEND_SRC1_ALPHA,
                        D3D10_BLEND_INV_SRC1_ALPHA);
   for D3D10_BLEND use (D3D10_BLEND_ZERO=>1,
                        D3D10_BLEND_ONE=>2,
                        D3D10_BLEND_SRC_COLOR=>3,
                        D3D10_BLEND_INV_SRC_COLOR=>4,
                        D3D10_BLEND_SRC_ALPHA=>5,
                        D3D10_BLEND_INV_SRC_ALPHA=>6,
                        D3D10_BLEND_DEST_ALPHA=>7,
                        D3D10_BLEND_INV_DEST_ALPHA=>8,
                        D3D10_BLEND_DEST_COLOR=>9,
                        D3D10_BLEND_INV_DEST_COLOR=>10,
                        D3D10_BLEND_SRC_ALPHA_SAT=>11,
                        D3D10_BLEND_BLEND_FACTOR=>14,
                        D3D10_BLEND_INV_BLEND_FACTOR=>15,
                        D3D10_BLEND_SRC1_COLOR=>16,
                        D3D10_BLEND_INV_SRC1_COLOR=>17,
                        D3D10_BLEND_SRC1_ALPHA=>18,
                        D3D10_BLEND_INV_SRC1_ALPHA=>19);

   type D3D10_BLEND_OP is (D3D10_BLEND_OP_ADD,
                           D3D10_BLEND_OP_SUBTRACT,
                           D3D10_BLEND_OP_REV_SUBTRACT,
                           D3D10_BLEND_OP_MIN,
                           D3D10_BLEND_OP_MAX);
   for D3D10_BLEND_OP use (D3D10_BLEND_OP_ADD=>1,
                           D3D10_BLEND_OP_SUBTRACT=>2,
                           D3D10_BLEND_OP_REV_SUBTRACT=>3,
                           D3D10_BLEND_OP_MIN=>4,
                           D3D10_BLEND_OP_MAX=>5);

   type D3D10_COLOR_WRITE_ENABLE is (D3D10_COLOR_WRITE_ENABLE_RED,
                                     D3D10_COLOR_WRITE_ENABLE_GREEN,
                                     D3D10_COLOR_WRITE_ENABLE_BLUE,
                                     D3D10_COLOR_WRITE_ENABLE_ALPHA,
                                     D3D10_COLOR_WRITE_ENABLE_ALL);
   for D3D10_COLOR_WRITE_ENABLE use (D3D10_COLOR_WRITE_ENABLE_RED=>1,
                                     D3D10_COLOR_WRITE_ENABLE_GREEN=>2,
                                     D3D10_COLOR_WRITE_ENABLE_BLUE=>4,
                                     D3D10_COLOR_WRITE_ENABLE_ALPHA=>8,
                                     D3D10_COLOR_WRITE_ENABLE_ALL=>(2#1111#)
                                     --((( D3D10_COLOR_WRITE_ENABLE_RED or D3D10_COLOR_WRITE_ENABLE_GREEN ) or D3D10_COLOR_WRITE_ENABLE_BLUE ) or D3D10_COLOR_WRITE_ENABLE_ALPHA )
                                    );

   type Bool_Array is array(Natural range<>) of Bool;
   type UINT8_ARRAY is array(Natural range<>) of UINT8;
   type D3D10_BLEND_DESC is record
      AlphaToCoverageEnable:BOOL;
      BlendEnable:BOOL_Array(0..7);
      SrcBlEndd:D3D10_BLEND;
      DestBlEndd:D3D10_BLEND;
      BlendOp:D3D10_BLEND_OP;
      SrcBlendAlpha:D3D10_BLEND;
      DestBlendAlpha:D3D10_BLEND;
      BlendOpAlpha:D3D10_BLEND_OP;
      RenderTargetWriteMask:UINT8_Array(0..7);
   end record;

   type LPD3D10_BLEND_DESC is access all D3D10_BLEND_DESC;
   type LPCD3D10_BLEND_DESC is access constant D3D10_BLEND_DESC;

   
   
   type ID3D10BlendState is record
      QueryInterface:access function(This:LPID3D10BlendState;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10BlendState) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10BlendState) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10BlendState;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10BlendState;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10BlendState;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10BlendState;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D10BlendState;pDesc:LPD3D10_BLEND_DESC) return void with Convention=>Stdcall;
   end record;

   

   type D3D10_RASTERIZER_DESC is record
      FillMode:D3D10_FILL_MODE;
      CullMode:D3D10_CULL_MODE;
      FrontCounterClockwise:BOOL;
      DepthBias:INT;
      DepthBiasClamp:FLOAT;
      SlopeScaledDepthBias:FLOAT;
      DepthClipEnable:BOOL;
      ScissorEnable:BOOL;
      MultisampleEnable:BOOL;
      AntialiasedLineEnable:BOOL;
   end record;

   type LPD3D10_RASTERIZER_DESC is access all D3D10_RASTERIZER_DESC;
   type LPCD3D10_RASTERIZER_DESC is access constant D3D10_RASTERIZER_DESC;

   type ID3D10RasterizerState is record
      QueryInterface:access function(This:LPID3D10RasterizerState;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10RasterizerState) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10RasterizerState) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10RasterizerState;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10RasterizerState;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10RasterizerState;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10RasterizerState;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D10RasterizerState;pDesc:LPD3D10_RASTERIZER_DESC) return void with Convention=>Stdcall;
   end record;

   use type Interfaces.C.unsigned;
   -- inline function,d3d10.h:1475
   function D3D10CalcSubresource(MipSlice:UINT;ArraySlice:UINT;MipLevels:UINT) return UINT is (MipSlice + ArraySlice * MipLevels) with Inline_Always;

   type D3D10_SUBRESOURCE_DATA is record
      pSysMem:LPvoid;
      SysMemPitch:UINT;
      SysMemSlicePitch:UINT;
   end record;

   type LPD3D10_SUBRESOURCE_DATA is access all D3D10_SUBRESOURCE_DATA;
   type LPCD3D10_SUBRESOURCE_DATA is access constant D3D10_SUBRESOURCE_DATA;


   
   type ID3D10Resource is record
      QueryInterface:access function(This:LPID3D10Resource;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10Resource) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10Resource) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10Resource;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10Resource;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10Resource;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10Resource;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetType:access function(This:LPID3D10Resource;rType:LPD3D10_RESOURCE_DIMENSION) return void with Convention=>Stdcall;
      SetEvictionPriority:access function(This:LPID3D10Resource;EvictionPriority:UINT) return void with Convention=>Stdcall;
      GetEvictionPriority:access function(This:LPID3D10Resource) return UINT with Convention=>Stdcall;
   end record;

   

   type D3D10_BUFFER_DESC is record
      ByteWidth:UINT;
      Usage:D3D10_USAGE;
      BindFlags:UINT;
      CPUAccessFlags:UINT;
      MiscFlags:UINT;
   end record;

   type LPD3D10_BUFFER_DESC is access all D3D10_BUFFER_DESC;
   type LPCD3D10_BUFFER_DESC is access constant D3D10_BUFFER_DESC;

   
   
   type ID3D10Buffer is record
      QueryInterface:access function(This:LPID3D10Buffer;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10Buffer) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10Buffer) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10Buffer;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10Buffer;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10Buffer;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10Buffer;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetType:access function(This:LPID3D10Buffer;rType:LPD3D10_RESOURCE_DIMENSION) return void with Convention=>Stdcall;
      SetEvictionPriority:access function(This:LPID3D10Buffer;EvictionPriority:UINT) return void with Convention=>Stdcall;
      GetEvictionPriority:access function(This:LPID3D10Buffer) return UINT with Convention=>Stdcall;
      Map:access function(This:LPID3D10Buffer;MapType:D3D10_MAP;MapFlags:UINT;ppData:LPLPvoid) return HRESULT with Convention=>Stdcall;
      Unmap:access function(This:LPID3D10Buffer) return void with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D10Buffer;pDesc:LPD3D10_BUFFER_DESC) return void with Convention=>Stdcall;
   end record;


   type D3D10_TEXTURE1D_DESC is record
      Width:UINT;
      MipLevels:UINT;
      ArraySize:UINT;
      Format:DXGI_FORMAT;
      Usage:D3D10_USAGE;
      BindFlags:UINT;
      CPUAccessFlags:UINT;
      MiscFlags:UINT;
   end record;

   type LPD3D10_TEXTURE1D_DESC is access all D3D10_TEXTURE1D_DESC;
   type LPCD3D10_TEXTURE1D_DESC is access constant D3D10_TEXTURE1D_DESC;

   type ID3D10Texture1D is record
      QueryInterface:access function(This:LPID3D10Texture1D;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10Texture1D) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10Texture1D) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10Texture1D;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10Texture1D;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10Texture1D;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10Texture1D;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetType:access function(This:LPID3D10Texture1D;rType:LPD3D10_RESOURCE_DIMENSION) return void with Convention=>Stdcall;
      SetEvictionPriority:access function(This:LPID3D10Texture1D;EvictionPriority:UINT) return void with Convention=>Stdcall;
      GetEvictionPriority:access function(This:LPID3D10Texture1D) return UINT with Convention=>Stdcall;
      Map:access function(This:LPID3D10Texture1D;Subresource:UINT;MapType:D3D10_MAP;MapFlags:UINT;ppData:LPLPvoid) return HRESULT with Convention=>Stdcall;
      Unmap:access function(This:LPID3D10Texture1D;Subresource:UINT) return void with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D10Texture1D;pDesc:LPD3D10_TEXTURE1D_DESC) return void with Convention=>Stdcall;
   end record;

   -- This type defined in DXGIType.h
   type DXGI_SAMPLE_DESC is record
      Count:UINT;
      Quality:UINT;
   end record;

   type D3D10_TEXTURE2D_DESC is record
      Width:UINT;
      Height:UINT;
      MipLevels:UINT;
      ArraySize:UINT;
      Format:DXGI_FORMAT;
      SampleDesc:DXGI_SAMPLE_DESC;
      Usage:D3D10_USAGE;
      BindFlags:UINT;
      CPUAccessFlags:UINT;
      MiscFlags:UINT;
   end record;

   type LPD3D10_TEXTURE2D_DESC is access all D3D10_TEXTURE2D_DESC;
   type LPCD3D10_TEXTURE2D_DESC is access constant D3D10_TEXTURE2D_DESC;

   type D3D10_MAPPED_TEXTURE2D is record
      pData:LPvoid;
      RowPitch:UINT;
   end record;

   Type LPD3D10_MAPPED_TEXTURE2D is access all D3D10_MAPPED_TEXTURE2D;

   type ID3D10Texture2D is record
      QueryInterface:access function(This:LPID3D10Texture2D;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10Texture2D) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10Texture2D) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10Texture2D;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10Texture2D;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10Texture2D;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10Texture2D;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetType:access function(This:LPID3D10Texture2D;rType:LPD3D10_RESOURCE_DIMENSION) return void with Convention=>Stdcall;
      SetEvictionPriority:access function(This:LPID3D10Texture2D;EvictionPriority:UINT) return void with Convention=>Stdcall;
      GetEvictionPriority:access function(This:LPID3D10Texture2D) return UINT with Convention=>Stdcall;
      Map:access function(This:LPID3D10Texture2D;Subresource:UINT;MapType:D3D10_MAP;MapFlags:UINT;pMappedTex2D:LPD3D10_MAPPED_TEXTURE2D) return HRESULT with Convention=>Stdcall;
      Unmap:access function(This:LPID3D10Texture2D;Subresource:UINT) return void with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D10Texture2D;pDesc:LPD3D10_TEXTURE2D_DESC) return void with Convention=>Stdcall;
   end record;


   type D3D10_TEXTURE3D_DESC is record
      Width:UINT;
      Height:UINT;
      Depth:UINT;
      MipLevels:UINT;
      Format:DXGI_FORMAT;
      Usage:D3D10_USAGE;
      BindFlags:UINT;
      CPUAccessFlags:UINT;
      MiscFlags:UINT;
   end record;

   type LPD3D10_TEXTURE3D_DESC is access all D3D10_TEXTURE3D_DESC;
   type LPCD3D10_TEXTURE3D_DESC is access constant D3D10_TEXTURE3D_DESC;

   type D3D10_MAPPED_TEXTURE3D is record
      pData:LPvoid;
      RowPitch:UINT;
      DepthPitch:UINT;
   end record;

   type LPD3D10_MAPPED_TEXTURE3D is access all D3D10_MAPPED_TEXTURE3D;

   type ID3D10Texture3D is record
      QueryInterface:access function(This:LPID3D10Texture3D;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10Texture3D) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10Texture3D) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10Texture3D;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10Texture3D;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10Texture3D;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10Texture3D;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetType:access function(This:LPID3D10Texture3D;rType:LPD3D10_RESOURCE_DIMENSION) return void with Convention=>Stdcall;
      SetEvictionPriority:access function(This:LPID3D10Texture3D;EvictionPriority:UINT) return void with Convention=>Stdcall;
      GetEvictionPriority:access function(This:LPID3D10Texture3D) return UINT with Convention=>Stdcall;
      Map:access function(This:LPID3D10Texture3D;Subresource:UINT;MapType:D3D10_MAP;MapFlags:UINT;pMappedTex3D:LPD3D10_MAPPED_TEXTURE3D) return HRESULT with Convention=>Stdcall;
      Unmap:access function(This:LPID3D10Texture3D;Subresource:UINT) return void with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D10Texture3D;pDesc:LPD3D10_TEXTURE3D_DESC) return void with Convention=>Stdcall;
   end record;

   

   type D3D10_TEXTURECUBE_FACE is (D3D10_TEXTURECUBE_FACE_POSITIVE_X,
                                   D3D10_TEXTURECUBE_FACE_NEGATIVE_X,
                                   D3D10_TEXTURECUBE_FACE_POSITIVE_Y,
                                   D3D10_TEXTURECUBE_FACE_NEGATIVE_Y,
                                   D3D10_TEXTURECUBE_FACE_POSITIVE_Z,
                                   D3D10_TEXTURECUBE_FACE_NEGATIVE_Z);
   for D3D10_TEXTURECUBE_FACE use (D3D10_TEXTURECUBE_FACE_POSITIVE_X=>0,
                                   D3D10_TEXTURECUBE_FACE_NEGATIVE_X=>1,
                                   D3D10_TEXTURECUBE_FACE_POSITIVE_Y=>2,
                                   D3D10_TEXTURECUBE_FACE_NEGATIVE_Y=>3,
                                   D3D10_TEXTURECUBE_FACE_POSITIVE_Z=>4,
                                   D3D10_TEXTURECUBE_FACE_NEGATIVE_Z=>5);

   
   
   
   
   
   
   type ID3D10View is record
      QueryInterface:access function(This:LPID3D10View;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10View) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10View) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10View;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10View;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10View;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10View;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetResource:access function(This:LPID3D10View;ppResource:LPLPID3D10Resource) return void with Convention=>Stdcall;
   end record;
   
   type D3D10_BUFFER_SRV(b1:Boolean:=True) is record
      case b1 is
         when True=>
            FirstElement:UINT;
            NumElements:UINT;
         when False=>
            ElementOffset:UINT;
            ElementWidth:UINT;
      end case;
   end record with Unchecked_Union;



   type D3D10_TEX1D_SRV is record
      MostDetailedMip:UINT;
      MipLevels:UINT;
   end record;

   type LPD3D10_TEX1D_SRV is access all D3D10_TEX1D_SRV;

   type D3D10_TEX1D_ARRAY_SRV is record
      MostDetailedMip:UINT;
      MipLevels:UINT;
      FirstArraySlice:UINT;
      ArraySize:UINT;
   end record;

   type LPD3D10_TEX1D_ARRAY_SRV is access all D3D10_TEX1D_ARRAY_SRV;

   type D3D10_TEX2D_SRV is record
      MostDetailedMip:UINT;
      MipLevels:UINT;
   end record;

   type LPD3D10_TEX2D_SRV is access all D3D10_TEX2D_SRV;

   type D3D10_TEX2D_ARRAY_SRV is record
      MostDetailedMip:UINT;
      MipLevels:UINT;
      FirstArraySlice:UINT;
      ArraySize:UINT;
   end record;

   type LPD3D10_TEX2D_ARRAY_SRV is access all D3D10_TEX2D_ARRAY_SRV;

   type D3D10_TEX3D_SRV is record
      MostDetailedMip:UINT;
      MipLevels:UINT;
   end record;

   type LPD3D10_TEX3D_SRV is access all D3D10_TEX3D_SRV;

   type D3D10_TEXCUBE_SRV is record
      MostDetailedMip:UINT;
      MipLevels:UINT;
   end record;

   type LPD3D10_TEXCUBE_SRV is access all D3D10_TEXCUBE_SRV;

   type D3D10_TEX2DMS_SRV is record
      UnusedField_NothingToDefine:UINT;
   end record;

   type LPD3D10_TEX2DMS_SRV is access all D3D10_TEX2DMS_SRV;

   type D3D10_TEX2DMS_ARRAY_SRV is record
      FirstArraySlice:UINT;
      ArraySize:UINT;
   end record;

   type LPD3D10_TEX2DMS_ARRAY_SRV is access all D3D10_TEX2DMS_ARRAY_SRV;
   
   
   type D3D10_SHADER_RESOURCE_VIEW_DESC(i:Integer:=0) is record
      Format:DXGI_FORMAT;
      ViewDimension:D3D10_SRV_DIMENSION;
      case i is
         when 0=>
            Buffer:D3D10_BUFFER_SRV;
         when 1=>
            Texture1D:D3D10_TEX1D_SRV;
         when 2=>
            Texture1DArray:D3D10_TEX1D_ARRAY_SRV;
         when 3=>
            Texture2D:D3D10_TEX2D_SRV;
         when 4=>
            Texture2DArray:D3D10_TEX2D_ARRAY_SRV;
         when 5=>
            Texture2DMS:D3D10_TEX2DMS_SRV;
         when 6=>
            Texture2DMSArray:D3D10_TEX2DMS_ARRAY_SRV;
         when 7=>
            Texture3D:D3D10_TEX3D_SRV;
         when others=>
            TextureCube:D3D10_TEXCUBE_SRV;
      end case;
   end record with Unchecked_Union;
   type LPD3D10_SHADER_RESOURCE_VIEW_DESC is access all D3D10_SHADER_RESOURCE_VIEW_DESC;
   type LPCD3D10_SHADER_RESOURCE_VIEW_DESC is access constant D3D10_SHADER_RESOURCE_VIEW_DESC;
   
   
   

   type ID3D10ShaderResourceView is record
      QueryInterface:access function(This:LPID3D10ShaderResourceView;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10ShaderResourceView) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10ShaderResourceView) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10ShaderResourceView;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10ShaderResourceView;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10ShaderResourceView;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10ShaderResourceView;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetResource:access function(This:LPID3D10ShaderResourceView;ppResource:LPLPID3D10Resource) return void with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D10ShaderResourceView;pDesc:LPD3D10_SHADER_RESOURCE_VIEW_DESC) return void with Convention=>Stdcall;
   end record;
   
   type D3D10_BUFFER_RTV(b:Boolean:=True) is record
      case b is
         when True=>
            FirstElement:UINT;
            NumElements:UINT;
         when False=>
            ElementOffset:UINT;
            ElementWidth:UINT;
      end case;
   end record with Unchecked_Union;
   type LPD3D10_BUFFER_RTV is access all D3D10_BUFFER_RTV;
   


   type D3D10_TEX1D_RTV is record
      MipSlice:UINT;
   end record;

   type LPD3D10_TEX1D_RTV is access all D3D10_TEX1D_RTV;

   type D3D10_TEX1D_ARRAY_RTV is record
      MipSlice:UINT;
      FirstArraySlice:UINT;
      ArraySize:UINT;
   end record;

   type LPD3D10_TEX1D_ARRAY_RTV is access all D3D10_TEX1D_ARRAY_RTV;

   type D3D10_TEX2D_RTV is record
      MipSlice:UINT;
   end record;

   type LPD3D10_TEX2D_RTV is access all D3D10_TEX2D_RTV;

   type D3D10_TEX2DMS_RTV is record
      UnusedField_NothingToDefine:UINT;
   end record;

   type LPD3D10_TEX2DMS_RTV is access all D3D10_TEX2DMS_RTV;

   type D3D10_TEX2D_ARRAY_RTV is record
      MipSlice:UINT;
      FirstArraySlice:UINT;
      ArraySize:UINT;
   end record;

   type LPD3D10_TEX2D_ARRAY_RTV is access all D3D10_TEX2D_ARRAY_RTV;

   type D3D10_TEX2DMS_ARRAY_RTV is record
      FirstArraySlice:UINT;
      ArraySize:UINT;
   end record;

   type LPD3D10_TEX2DMS_ARRAY_RTV is access all D3D10_TEX2DMS_ARRAY_RTV;

   type D3D10_TEX3D_RTV is record
      MipSlice:UINT;
      FirstWSlice:UINT;
      WSize:UINT;
   end record;

   type LPD3D10_TEX3D_RTV is access all D3D10_TEX3D_RTV;
   
   type D3D10_RENDER_TARGET_VIEW_DESC(i:Integer:=0) is record
      Format:DXGI_FORMAT;
      ViewDimension:D3D10_RTV_DIMENSION;
      case i is
         when 0=>
            Buffer:D3D10_BUFFER_RTV;
         when 1=>
            Texture1D:D3D10_TEX1D_RTV;
         when 2=>
            Texture1DArray:D3D10_TEX1D_ARRAY_RTV;
         when 3=>
            Texture2D:D3D10_TEX2D_RTV;
         when 4=>
            Texture2DArray:D3D10_TEX2D_ARRAY_RTV;
         when 5=>
            Texture2DMS:D3D10_TEX2DMS_RTV;
         when 6=>
            Texture2DMSArray:D3D10_TEX2DMS_ARRAY_RTV;
         when others=>
            Texture3D:D3D10_TEX3D_RTV;
      end case;
   end record with Unchecked_Union;
   type LPD3D10_RENDER_TARGET_VIEW_DESC is access all D3D10_RENDER_TARGET_VIEW_DESC;
   type LPCD3D10_RENDER_TARGET_VIEW_DESC is access constant D3D10_RENDER_TARGET_VIEW_DESC;
   
   
   

   type ID3D10RenderTargetView is record
      QueryInterface:access function(This:LPID3D10RenderTargetView;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10RenderTargetView) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10RenderTargetView) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10RenderTargetView;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10RenderTargetView;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10RenderTargetView;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10RenderTargetView;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetResource:access function(This:LPID3D10RenderTargetView;ppResource:LPLPID3D10Resource) return void with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D10RenderTargetView;pDesc:LPD3D10_RENDER_TARGET_VIEW_DESC) return void with Convention=>Stdcall;
   end record;

   

   type D3D10_TEX1D_DSV is record
      MipSlice:UINT;
   end record;

   type LPD3D10_TEX1D_DSV is access all  D3D10_TEX1D_DSV;

   type D3D10_TEX1D_ARRAY_DSV is record
      MipSlice:UINT;
      FirstArraySlice:UINT;
      ArraySize:UINT;
   end record;

   type LPD3D10_TEX1D_ARRAY_DSV is access all D3D10_TEX1D_ARRAY_DSV;

   type D3D10_TEX2D_DSV is record
      MipSlice:UINT;
   end record;

   type LPD3D10_TEX2D_DSV is access all D3D10_TEX2D_DSV;

   type D3D10_TEX2D_ARRAY_DSV is record
      MipSlice:UINT;
      FirstArraySlice:UINT;
      ArraySize:UINT;
   end record;

   type LPD3D10_TEX2D_ARRAY_DSV is access all D3D10_TEX2D_ARRAY_DSV;

   type D3D10_TEX2DMS_DSV is record
      UnusedField_NothingToDefine:UINT;
   end record;

   type LPD3D10_TEX2DMS_DSV is access all D3D10_TEX2DMS_DSV;

   type D3D10_TEX2DMS_ARRAY_DSV is record
      FirstArraySlice:UINT;
      ArraySize:UINT;
   end record;

   type LPD3D10_TEX2DMS_ARRAY_DSV is access all D3D10_TEX2DMS_ARRAY_DSV;
   
   
   type D3D10_DEPTH_STENCIL_VIEW_DESC(i:Integer:=0) is record
      Format:DXGI_FORMAT;
      ViewDimension:D3D10_DSV_DIMENSION;
      case i is
         when 0=>
            Texture1D:D3D10_TEX1D_DSV;
         when 1=>
            Texture1DArray:D3D10_TEX1D_ARRAY_DSV;
         when 2=>
            Texture2D:D3D10_TEX2D_DSV;
         when 3=>
            Texture2DArray:D3D10_TEX2D_ARRAY_DSV;
         when 4=>
            Texture2DMS:D3D10_TEX2DMS_DSV;
         when 5=>
            Texture2DMSArray:D3D10_TEX2DMS_ARRAY_DSV;
         when others=>
            null;
      end case;
   end record with Unchecked_Union;
   type LPD3D10_DEPTH_STENCIL_VIEW_DESC is access all D3D10_DEPTH_STENCIL_VIEW_DESC;
   type LPCD3D10_DEPTH_STENCIL_VIEW_DESC is access constant D3D10_DEPTH_STENCIL_VIEW_DESC;
   
   
   
   

   type ID3D10DepthStencilView is record
      QueryInterface:access function(This:LPID3D10DepthStencilView;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10DepthStencilView) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10DepthStencilView) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10DepthStencilView;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10DepthStencilView;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10DepthStencilView;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10DepthStencilView;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetResource:access function(This:LPID3D10DepthStencilView;ppResource:LPLPID3D10Resource) return void with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D10DepthStencilView;pDesc:LPD3D10_DEPTH_STENCIL_VIEW_DESC) return void with Convention=>Stdcall;
   end record;

   

   type ID3D10VertexShader is record
      QueryInterface:access function(This:LPID3D10VertexShader;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10VertexShader) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10VertexShader) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10VertexShader;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10VertexShader;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10VertexShader;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10VertexShader;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
   end record;



   type ID3D10GeometryShader is record
      QueryInterface:access function(This:LPID3D10GeometryShader;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10GeometryShader) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10GeometryShader) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10GeometryShader;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10GeometryShader;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10GeometryShader;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10GeometryShader;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
   end record;



   type ID3D10PixelShader is record
      QueryInterface:access function(This:LPID3D10PixelShader;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10PixelShader) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10PixelShader) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10PixelShader;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10PixelShader;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10PixelShader;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10PixelShader;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
   end record;



   type ID3D10InputLayout is record
      QueryInterface:access function(This:LPID3D10InputLayout;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10InputLayout) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10InputLayout) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10InputLayout;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10InputLayout;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10InputLayout;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10InputLayout;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
   end record;



   type D3D10_FILTER is (D3D10_FILTER_MIN_MAG_MIP_POINT,
                         D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR,
                         D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT,
                         D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR,
                         D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT,
                         D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR,
                         D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT,
                         D3D10_FILTER_MIN_MAG_MIP_LINEAR,
                         D3D10_FILTER_ANISOTROPIC,
                         D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT,
                         D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR,
                         D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT,
                         D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR,
                         D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT,
                         D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR,
                         D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT,
                         D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR,
                         D3D10_FILTER_COMPARISON_ANISOTROPIC,
                         D3D10_FILTER_TEXT_1BIT);
   for D3D10_FILTER use (D3D10_FILTER_MIN_MAG_MIP_POINT=>0,
                         D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR=>16#1#,
                         D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT=>16#4#,
                         D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR=>16#5#,
                         D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT=>16#10#,
                         D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR=>16#11#,
                         D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT=>16#14#,
                         D3D10_FILTER_MIN_MAG_MIP_LINEAR=>16#15#,
                         D3D10_FILTER_ANISOTROPIC=>16#55#,
                         D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT=>16#80#,
                         D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR=>16#81#,
                         D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT=>16#84#,
                         D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR=>16#85#,
                         D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT=>16#90#,
                         D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR=>16#91#,
                         D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT=>16#94#,
                         D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR=>16#95#,
                         D3D10_FILTER_COMPARISON_ANISOTROPIC=>16#d5#,
                         D3D10_FILTER_TEXT_1BIT=>16#80000000#);

   type D3D10_FILTER_TYPE is (D3D10_FILTER_TYPE_POINT,
                              D3D10_FILTER_TYPE_LINEAR);
   for D3D10_FILTER_TYPE use (D3D10_FILTER_TYPE_POINT=>0,
                              D3D10_FILTER_TYPE_LINEAR=>1);

   D3D10_FILTER_TYPE_MASK : constant := ( 16#3# );

   D3D10_MIN_FILTER_SHIFT : constant := ( 4 );

   D3D10_MAG_FILTER_SHIFT : constant := ( 2 );

   D3D10_MIP_FILTER_SHIFT : constant := ( 0 );

   D3D10_COMPARISON_FILTERING_BIT : constant := ( 16#80# );

   D3D10_ANISOTROPIC_FILTERING_BIT : constant := ( 16#40# );

   D3D10_TEXT_1BIT_BIT : constant := ( 16#80000000# );
   
   use type Interfaces.C.unsigned_long;
   
   -- macro function
   function D3D10_ENCODE_BASIC_FILTER( min, mag, mip:dword;bComparison:bool) return dword is (
                                                                                              (if bComparison/=0 then D3D10_COMPARISON_FILTERING_BIT else 0) or
                                                                                                Lsh((Min and D3D10_FILTER_TYPE_MASK),D3D10_MIN_FILTER_SHIFT) or
                                                                                                  Lsh((Mag and D3D10_FILTER_TYPE_MASK),D3D10_MIN_FILTER_SHIFT) or
                                                                                                Lsh((Mip and D3D10_FILTER_TYPE_MASK),D3D10_MIN_FILTER_SHIFT)
                                                                                             );
   
   
   
   
   function AsDWORD is new Ada.Unchecked_Conversion(D3D10_FILTER_TYPE,dword); pragma Warnings(off,AsDWORD);
   
   --function AsDWORD is new Ada.Unchecked_Conversion(Boolean,dword);
   function AsBoolean is new Ada.Unchecked_Conversion(dword,boolean); pragma Warnings(off,AsBoolean);
   
   function D3D10_ENCODE_ANISOTROPIC_FILTER( bComparison:BOOL) return dword is (D3D10_ANISOTROPIC_FILTERING_BIT or D3D10_ENCODE_BASIC_FILTER(AsDWORD(D3D10_FILTER_TYPE_LINEAR),Asdword(D3D10_FILTER_TYPE_LINEAR),Asdword(D3D10_FILTER_TYPE_LINEAR),bComparison));
   
   function D3D10_DECODE_MIN_FILTER( d3d10Filter:dword) return dword is (Rsh(d3d10Filter,D3D10_MIN_FILTER_SHIFT) and D3D10_FILTER_TYPE_MASK);
   
   function D3D10_DECODE_MAG_FILTER( d3d10Filter:dword) return dword is (Rsh(d3d10Filter,D3D10_MAG_FILTER_SHIFT) and D3D10_FILTER_TYPE_MASK);
  
   function D3D10_DECODE_MIP_FILTER( d3d10Filter:dword) return dword is (Rsh(d3d10Filter,D3D10_MIP_FILTER_SHIFT) and D3D10_FILTER_TYPE_MASK);
   
   function D3D10_DECODE_IS_COMPARISON_FILTER( d3d10Filter:dword) return Boolean is (AsBoolean(d3d10Filter and D3D10_COMPARISON_FILTERING_BIT));
   
   function D3D10_DECODE_IS_ANISOTROPIC_FILTER( d3d10Filter:dword) return Boolean is (
                                                                                      AsBoolean(d3d10Filter and D3D10_ANISOTROPIC_FILTERING_BIT) and
                                                                                        (AsDWORD(D3D10_FILTER_TYPE_LINEAR)=D3D10_DECODE_MIN_FILTER(d3d10Filter)) and
                                                                                          (AsDWORD(D3D10_FILTER_TYPE_LINEAR)=D3D10_DECODE_MAG_FILTER(d3d10Filter)) and
                                                                                        (AsDWORD(D3D10_FILTER_TYPE_LINEAR)=D3D10_DECODE_MIP_FILTER(d3d10Filter))
                                                                                     );

   function D3D10_DECODE_IS_TEXT_1BIT_FILTER( d3d10Filter:dword) return Boolean is (d3d10Filter = D3D10_TEXT_1BIT_BIT);
                                                                                 
   type D3D10_TEXTURE_ADDRESS_MODE is (D3D10_TEXTURE_ADDRESS_WRAP,
                                       D3D10_TEXTURE_ADDRESS_MIRROR,
                                       D3D10_TEXTURE_ADDRESS_CLAMP,
                                       D3D10_TEXTURE_ADDRESS_BORDER,
                                       D3D10_TEXTURE_ADDRESS_MIRROR_ONCE);
   for D3D10_TEXTURE_ADDRESS_MODE use (D3D10_TEXTURE_ADDRESS_WRAP=>1,
                                       D3D10_TEXTURE_ADDRESS_MIRROR=>2,
                                       D3D10_TEXTURE_ADDRESS_CLAMP=>3,
                                       D3D10_TEXTURE_ADDRESS_BORDER=>4,
                                       D3D10_TEXTURE_ADDRESS_MIRROR_ONCE=>5);

   type D3D10_SAMPLER_DESC is record
      Filter:D3D10_FILTER;
      AddressU:D3D10_TEXTURE_ADDRESS_MODE;
      AddressV:D3D10_TEXTURE_ADDRESS_MODE;
      AddressW:D3D10_TEXTURE_ADDRESS_MODE;
      MipLODBias:FLOAT;
      MaxAnisotropy:UINT;
      ComparisonFunc:D3D10_COMPARISON_FUNC;
      BorderColor:FLOAT_Array(0..3);
      MinLOD:FLOAT;
      MaxLOD:FLOAT;
   end record;

   type LPD3D10_SAMPLER_DESC is access all D3D10_SAMPLER_DESC;
   type LPCD3D10_SAMPLER_DESC is access constant D3D10_SAMPLER_DESC;

   type ID3D10SamplerState is record
      QueryInterface:access function(This:LPID3D10SamplerState;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10SamplerState) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10SamplerState) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10SamplerState;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10SamplerState;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10SamplerState;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10SamplerState;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D10SamplerState;pDesc:LPD3D10_SAMPLER_DESC) return void with Convention=>Stdcall;
   end record;


   type D3D10_FORMAT_SUPPORT is (D3D10_FORMAT_SUPPORT_BUFFER,
                                 D3D10_FORMAT_SUPPORT_IA_VERTEX_BUFFER,
                                 D3D10_FORMAT_SUPPORT_IA_INDEX_BUFFER,
                                 D3D10_FORMAT_SUPPORT_SO_BUFFER,
                                 D3D10_FORMAT_SUPPORT_TEXTURE1D,
                                 D3D10_FORMAT_SUPPORT_TEXTURE2D,
                                 D3D10_FORMAT_SUPPORT_TEXTURE3D,
                                 D3D10_FORMAT_SUPPORT_TEXTURECUBE,
                                 D3D10_FORMAT_SUPPORT_SHADER_LOAD,
                                 D3D10_FORMAT_SUPPORT_SHADER_SAMPLE,
                                 D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON,
                                 D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT,
                                 D3D10_FORMAT_SUPPORT_MIP,
                                 D3D10_FORMAT_SUPPORT_MIP_AUTOGEN,
                                 D3D10_FORMAT_SUPPORT_RENDER_TARGET,
                                 D3D10_FORMAT_SUPPORT_BLENDABLE,
                                 D3D10_FORMAT_SUPPORT_DEPTH_STENCIL,
                                 D3D10_FORMAT_SUPPORT_CPU_LOCKABLE,
                                 D3D10_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE,
                                 D3D10_FORMAT_SUPPORT_DISPLAY,
                                 D3D10_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT,
                                 D3D10_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET,
                                 D3D10_FORMAT_SUPPORT_MULTISAMPLE_LOAD,
                                 D3D10_FORMAT_SUPPORT_SHADER_GATHER,
                                 D3D10_FORMAT_SUPPORT_BACK_BUFFER_CAST);
   for D3D10_FORMAT_SUPPORT use (D3D10_FORMAT_SUPPORT_BUFFER=>16#1#,
                                 D3D10_FORMAT_SUPPORT_IA_VERTEX_BUFFER=>16#2#,
                                 D3D10_FORMAT_SUPPORT_IA_INDEX_BUFFER=>16#4#,
                                 D3D10_FORMAT_SUPPORT_SO_BUFFER=>16#8#,
                                 D3D10_FORMAT_SUPPORT_TEXTURE1D=>16#10#,
                                 D3D10_FORMAT_SUPPORT_TEXTURE2D=>16#20#,
                                 D3D10_FORMAT_SUPPORT_TEXTURE3D=>16#40#,
                                 D3D10_FORMAT_SUPPORT_TEXTURECUBE=>16#80#,
                                 D3D10_FORMAT_SUPPORT_SHADER_LOAD=>16#100#,
                                 D3D10_FORMAT_SUPPORT_SHADER_SAMPLE=>16#200#,
                                 D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON=>16#400#,
                                 D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT=>16#800#,
                                 D3D10_FORMAT_SUPPORT_MIP=>16#1000#,
                                 D3D10_FORMAT_SUPPORT_MIP_AUTOGEN=>16#2000#,
                                 D3D10_FORMAT_SUPPORT_RENDER_TARGET=>16#4000#,
                                 D3D10_FORMAT_SUPPORT_BLENDABLE=>16#8000#,
                                 D3D10_FORMAT_SUPPORT_DEPTH_STENCIL=>16#10000#,
                                 D3D10_FORMAT_SUPPORT_CPU_LOCKABLE=>16#20000#,
                                 D3D10_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE=>16#40000#,
                                 D3D10_FORMAT_SUPPORT_DISPLAY=>16#80000#,
                                 D3D10_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT=>16#100000#,
                                 D3D10_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET=>16#200000#,
                                 D3D10_FORMAT_SUPPORT_MULTISAMPLE_LOAD=>16#400000#,
                                 D3D10_FORMAT_SUPPORT_SHADER_GATHER=>16#800000#,
                                 D3D10_FORMAT_SUPPORT_BACK_BUFFER_CAST=>16#1000000#);

   type ID3D10Asynchronous is record
      QueryInterface:access function(This:LPID3D10Asynchronous;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10Asynchronous) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10Asynchronous) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10Asynchronous;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10Asynchronous;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10Asynchronous;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10Asynchronous;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      Beginn:access function(This:LPID3D10Asynchronous) return void with Convention=>Stdcall;
      Endd:access function(This:LPID3D10Asynchronous) return void with Convention=>Stdcall;
      GetData:access function(This:LPID3D10Asynchronous;pData:LPvoid;DataSize:UINT;GetDataFlags:UINT) return HRESULT with Convention=>Stdcall;
      GetDataSize:access function(This:LPID3D10Asynchronous) return UINT with Convention=>Stdcall;
   end record;

   

   type D3D10_ASYNC_GETDATA_FLAG is (D3D10_ASYNC_GETDATA_DONOTFLUSH);
   for D3D10_ASYNC_GETDATA_FLAG use (D3D10_ASYNC_GETDATA_DONOTFLUSH=>16#1#);

   type D3D10_QUERY is (D3D10_QUERY_EVENT,
                        D3D10_QUERY_OCCLUSION,
                        D3D10_QUERY_TIMESTAMP,
                        D3D10_QUERY_TIMESTAMP_DISJOINT,
                        D3D10_QUERY_PIPELINE_STATISTICS,
                        D3D10_QUERY_OCCLUSION_PREDICATE,
                        D3D10_QUERY_SO_STATISTICS,
                        D3D10_QUERY_SO_OVERFLOW_PREDICATE);
   for D3D10_QUERY use (D3D10_QUERY_EVENT=>0,
                        D3D10_QUERY_OCCLUSION=>1,
                        D3D10_QUERY_TIMESTAMP=>2 ,
                        D3D10_QUERY_TIMESTAMP_DISJOINT=>3 ,
                        D3D10_QUERY_PIPELINE_STATISTICS=>4 ,
                        D3D10_QUERY_OCCLUSION_PREDICATE=>5 ,
                        D3D10_QUERY_SO_STATISTICS=>6 ,
                        D3D10_QUERY_SO_OVERFLOW_PREDICATE=>7);

   type D3D10_QUERY_MISC_FLAG is (D3D10_QUERY_MISC_PREDICATEHINT);
   for D3D10_QUERY_MISC_FLAG use (D3D10_QUERY_MISC_PREDICATEHINT=>16#1#);

   type D3D10_QUERY_DESC is record
      Query:D3D10_QUERY;
      MiscFlags:UINT;
   end record;

   type LPD3D10_QUERY_DESC is access all D3D10_QUERY_DESC;
   type LPCD3D10_QUERY_DESC is access constant D3D10_QUERY_DESC;

   type ID3D10Query is record
      QueryInterface:access function(This:LPID3D10Query;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10Query) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10Query) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10Query;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10Query;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10Query;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10Query;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      Beginn:access function(This:LPID3D10Query) return void with Convention=>Stdcall;
      Endd:access function(This:LPID3D10Query) return void with Convention=>Stdcall;
      GetData:access function(This:LPID3D10Query;pData:LPvoid;DataSize:UINT;GetDataFlags:UINT) return HRESULT with Convention=>Stdcall;
      GetDataSize:access function(This:LPID3D10Query) return UINT with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D10Query;pDesc:LPD3D10_QUERY_DESC) return void with Convention=>Stdcall;
   end record;

   

   type ID3D10Predicate is record
      QueryInterface:access function(This:LPID3D10Predicate;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10Predicate) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10Predicate) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10Predicate;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10Predicate;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10Predicate;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10Predicate;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      Beginn:access function(This:LPID3D10Predicate) return void with Convention=>Stdcall;
      Endd:access function(This:LPID3D10Predicate) return void with Convention=>Stdcall;
      GetData:access function(This:LPID3D10Predicate;pData:LPvoid;DataSize:UINT;GetDataFlags:UINT) return HRESULT with Convention=>Stdcall;
      GetDataSize:access function(This:LPID3D10Predicate) return UINT with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D10Predicate;pDesc:LPD3D10_QUERY_DESC) return void with Convention=>Stdcall;
   end record;

   

   type D3D10_QUERY_DATA_TIMESTAMP_DISJOINT is record
      Frequency:UINT64;
      Disjoint:BOOL;
   end record;

   type LPD3D10_QUERY_DATA_TIMESTAMP_DISJOINT is access all D3D10_QUERY_DATA_TIMESTAMP_DISJOINT;

   type D3D10_QUERY_DATA_PIPELINE_STATISTICS is record
      IAVertices:UINT64;
      IAPrimitives:UINT64;
      VSInvocations:UINT64;
      GSInvocations:UINT64;
      GSPrimitives:UINT64;
      CInvocations:UINT64;
      CPrimitives:UINT64;
      PSInvocations:UINT64;
   end record;

   type LPD3D10_QUERY_DATA_PIPELINE_STATISTICS is access all D3D10_QUERY_DATA_PIPELINE_STATISTICS;

   type D3D10_QUERY_DATA_SO_STATISTICS is record
      NumPrimitivesWritten:UINT64;
      PrimitivesStorageNeeded:UINT64;
   end record;

   type LPD3D10_QUERY_DATA_SO_STATISTICS is access all D3D10_QUERY_DATA_SO_STATISTICS;

   type D3D10_COUNTER is (D3D10_COUNTER_GPU_IDLE,
                          D3D10_COUNTER_VERTEX_PROCESSING,
                          D3D10_COUNTER_GEOMETRY_PROCESSING,
                          D3D10_COUNTER_PIXEL_PROCESSING,
                          D3D10_COUNTER_OTHER_GPU_PROCESSING,
                          D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION,
                          D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION,
                          D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION,
                          D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION,
                          D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION,
                          D3D10_COUNTER_VS_MEMORY_LIMITED,
                          D3D10_COUNTER_VS_COMPUTATION_LIMITED,
                          D3D10_COUNTER_GS_MEMORY_LIMITED,
                          D3D10_COUNTER_GS_COMPUTATION_LIMITED,
                          D3D10_COUNTER_PS_MEMORY_LIMITED,
                          D3D10_COUNTER_PS_COMPUTATION_LIMITED,
                          D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE,
                          D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE,
                          D3D10_COUNTER_DEVICE_DEPENDENT_0);
   for D3D10_COUNTER use (D3D10_COUNTER_GPU_IDLE=>0,
                          D3D10_COUNTER_VERTEX_PROCESSING=>1 ,
                          D3D10_COUNTER_GEOMETRY_PROCESSING=>2 ,
                          D3D10_COUNTER_PIXEL_PROCESSING=>3 ,
                          D3D10_COUNTER_OTHER_GPU_PROCESSING=>4 ,
                          D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION=>5 ,
                          D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION=>6 ,
                          D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION=>7 ,
                          D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION=>8 ,
                          D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION=>9 ,
                          D3D10_COUNTER_VS_MEMORY_LIMITED=>10 ,
                          D3D10_COUNTER_VS_COMPUTATION_LIMITED=>11 ,
                          D3D10_COUNTER_GS_MEMORY_LIMITED=>12 ,
                          D3D10_COUNTER_GS_COMPUTATION_LIMITED=>13 ,
                          D3D10_COUNTER_PS_MEMORY_LIMITED=>14 ,
                          D3D10_COUNTER_PS_COMPUTATION_LIMITED=>15 ,
                          D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE=>16 ,
                          D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE=>17 ,
                          D3D10_COUNTER_DEVICE_DEPENDENT_0=>16#40000000#);

   type D3D10_COUNTER_TYPE is (D3D10_COUNTER_TYPE_FLOAT32,
                               D3D10_COUNTER_TYPE_UINT16,
                               D3D10_COUNTER_TYPE_UINT32,
                               D3D10_COUNTER_TYPE_UINT64);
   for D3D10_COUNTER_TYPE use (D3D10_COUNTER_TYPE_FLOAT32=>0,
                               D3D10_COUNTER_TYPE_UINT16=>1 ,
                               D3D10_COUNTER_TYPE_UINT32=>2 ,
                               D3D10_COUNTER_TYPE_UINT64=>3 );
   
   type LPD3D10_COUNTER_TYPE is access all D3D10_COUNTER_TYPE;

   type D3D10_COUNTER_DESC is record
      Counter:D3D10_COUNTER;
      MiscFlags:UINT;
   end record;

   type LPD3D10_COUNTER_DESC is access all D3D10_COUNTER_DESC;
   type LPCD3D10_COUNTER_DESC is access constant D3D10_COUNTER_DESC;

   type D3D10_COUNTER_INFO is record
      LastDeviceDependentCounter:D3D10_COUNTER;
      NumSimultaneousCounters:UINT;
      NumDetectableParallelUnits:UINT8;
   end record;

   type LPD3D10_COUNTER_INFO is access all D3D10_COUNTER_INFO;

   type ID3D10Counter is record
      QueryInterface:access function(This:LPID3D10Counter;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10Counter) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10Counter) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D10Counter;ppDevice:LPLPID3D10Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10Counter;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10Counter;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10Counter;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      Beginn:access function(This:LPID3D10Counter) return void with Convention=>Stdcall;
      Endd:access function(This:LPID3D10Counter) return void with Convention=>Stdcall;
      GetData:access function(This:LPID3D10Counter;pData:LPvoid;DataSize:UINT;GetDataFlags:UINT) return HRESULT with Convention=>Stdcall;
      GetDataSize:access function(This:LPID3D10Counter) return UINT with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D10Counter;pDesc:LPD3D10_COUNTER_DESC) return void with Convention=>Stdcall;
   end record;

   subtype float_array_0_to_3 is float_Array(0..3);

   type ID3D10Device is record
      QueryInterface:access function(This:LPID3D10Device;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10Device) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10Device) return ULONG with Convention=>Stdcall;
      VSSetConstantBuffers:access function(This:LPID3D10Device;StartSlot:UINT;NumBuffers:UINT;ppConstantBuffers:LPLPID3D10Buffer) return void with Convention=>Stdcall;
      PSSetShaderResources:access function(This:LPID3D10Device;StartSlot:UINT;NumViews:UINT;ppShaderResourceViews:LPLPID3D10ShaderResourceView) return void with Convention=>Stdcall;
      PSSetShader:access function(This:LPID3D10Device;pPixelShader:LPID3D10PixelShader) return void with Convention=>Stdcall;
      PSSetSamplers:access function(This:LPID3D10Device;StartSlot:UINT;NumSamplers:UINT;ppSamplers:LPLPID3D10SamplerState) return void with Convention=>Stdcall;
      VSSetShader:access function(This:LPID3D10Device;pVertexShader:LPID3D10VertexShader) return void with Convention=>Stdcall;
      DrawIndexed:access function(This:LPID3D10Device;IndexCount:UINT;StartIndexLocation:UINT;BaseVertexLocation:INT) return void with Convention=>Stdcall;
      Draw:access function(This:LPID3D10Device;VertexCount:UINT;StartVertexLocation:UINT) return void with Convention=>Stdcall;
      PSSetConstantBuffers:access function(This:LPID3D10Device;StartSlot:UINT;NumBuffers:UINT;ppConstantBuffers:LPLPID3D10Buffer) return void with Convention=>Stdcall;
      IASetInputLayout:access function(This:LPID3D10Device;pInputLayout:LPID3D10InputLayout) return void with Convention=>Stdcall;
      IASetVertexBuffers:access function(This:LPID3D10Device;StartSlot:UINT;NumBuffers:UINT;ppVertexBuffers:LPLPID3D10Buffer;pStrides:LPCUINT;pOffsets:LPCUINT) return void with Convention=>Stdcall;
      IASetIndexBuffer:access function(This:LPID3D10Device;pIndexBuffer:LPID3D10Buffer;Format:DXGI_FORMAT;Offset:UINT) return void with Convention=>Stdcall;
      DrawIndexedInstanced:access function(This:LPID3D10Device;IndexCountPerInstance:UINT;InstanceCount:UINT;StartIndexLocation:UINT;BaseVertexLocation:INT;StartInstanceLocation:UINT) return void with Convention=>Stdcall;
      DrawInstanced:access function(This:LPID3D10Device;VertexCountPerInstance:UINT;InstanceCount:UINT;StartVertexLocation:UINT;StartInstanceLocation:UINT) return void with Convention=>Stdcall;
      GSSetConstantBuffers:access function(This:LPID3D10Device;StartSlot:UINT;NumBuffers:UINT;ppConstantBuffers:LPLPID3D10Buffer) return void with Convention=>Stdcall;
      GSSetShader:access function(This:LPID3D10Device;pShader:LPID3D10GeometryShader) return void with Convention=>Stdcall;
      IASetPrimitiveTopology:access function(This:LPID3D10Device;Topology:D3D10_PRIMITIVE_TOPOLOGY) return void with Convention=>Stdcall;
      VSSetShaderResources:access function(This:LPID3D10Device;StartSlot:UINT;NumViews:UINT;ppShaderResourceViews:LPLPID3D10ShaderResourceView) return void with Convention=>Stdcall;
      VSSetSamplers:access function(This:LPID3D10Device;StartSlot:UINT;NumSamplers:UINT;ppSamplers:LPLPID3D10SamplerState) return void with Convention=>Stdcall;
      SetPredication:access function(This:LPID3D10Device;pPredicate:LPID3D10Predicate;PredicateValue:BOOL) return void with Convention=>Stdcall;
      GSSetShaderResources:access function(This:LPID3D10Device;StartSlot:UINT;NumViews:UINT;ppShaderResourceViews:LPLPID3D10ShaderResourceView) return void with Convention=>Stdcall;
      GSSetSamplers:access function(This:LPID3D10Device;StartSlot:UINT;NumSamplers:UINT;ppSamplers:LPLPID3D10SamplerState) return void with Convention=>Stdcall;
      OMSetRenderTargets:access function(This:LPID3D10Device;NumViews:UINT;ppRenderTargetViews:LPLPID3D10RenderTargetView;pDepthStencilView:LPID3D10DepthStencilView) return void with Convention=>Stdcall;
      OMSetBlendState:access function(This:LPID3D10Device;pBlendState:LPID3D10BlendState;BlendFactor:FLOAT_array_0_to_3;SampleMask:UINT) return void with Convention=>Stdcall;
      OMSetDepthStencilState:access function(This:LPID3D10Device;pDepthStencilState:LPID3D10DepthStencilState;StencilRef:UINT) return void with Convention=>Stdcall;
      SOSetTargets:access function(This:LPID3D10Device;NumBuffers:UINT;ppSOTargets:LPLPID3D10Buffer;pOffsets:LPCUINT) return void with Convention=>Stdcall;
      DrawAuto:access function(This:LPID3D10Device) return void with Convention=>Stdcall;
      RSSetState:access function(This:LPID3D10Device;pRasterizerState:LPID3D10RasterizerState) return void with Convention=>Stdcall;
      RSSetViewports:access function(This:LPID3D10Device;NumViewports:UINT;pViewports:LPCD3D10_VIEWPORT) return void with Convention=>Stdcall;
      RSSetScissorRects:access function(This:LPID3D10Device;NumRects:UINT;pRects:LPCD3D10_RECT) return void with Convention=>Stdcall;
      CopySubresourceRegion:access function(This:LPID3D10Device;pDstResource:LPID3D10Resource;DstSubresource:UINT;DstX:UINT;DstY:UINT;DstZ:UINT;pSrcResource:LPID3D10Resource;SrcSubresource:UINT;pSrcBox:LPCD3D10_BOX) return void with Convention=>Stdcall;
      CopyResource:access function(This:LPID3D10Device;pDstResource:LPID3D10Resource;pSrcResource:LPID3D10Resource) return void with Convention=>Stdcall;
      UpdateSubresource:access function(This:LPID3D10Device;pDstResource:LPID3D10Resource;DstSubresource:UINT;pDstBox:LPCD3D10_BOX;pSrcData:LPCvoid;SrcRowPitch:UINT;SrcDepthPitch:UINT) return void with Convention=>Stdcall;
      ClearRenderTargetView:access function(This:LPID3D10Device;pRenderTargetView:LPID3D10RenderTargetView;ColorRGBA:Float_Array) return void with Convention=>Stdcall;
      ClearDepthStencilView:access function(This:LPID3D10Device;pDepthStencilView:LPID3D10DepthStencilView;ClearFlags:UINT;Depth:FLOAT;Stencil:UINT8) return void with Convention=>Stdcall;
      GenerateMips:access function(This:LPID3D10Device;pShaderResourceView:LPID3D10ShaderResourceView) return void with Convention=>Stdcall;
      ResolveSubresource:access function(This:LPID3D10Device;pDstResource:LPID3D10Resource;DstSubresource:UINT;pSrcResource:LPID3D10Resource;SrcSubresource:UINT;Format:DXGI_FORMAT) return void with Convention=>Stdcall;
      VSGetConstantBuffers:access function(This:LPID3D10Device;StartSlot:UINT;NumBuffers:UINT;ppConstantBuffers:LPLPID3D10Buffer) return void with Convention=>Stdcall;
      PSGetShaderResources:access function(This:LPID3D10Device;StartSlot:UINT;NumViews:UINT;ppShaderResourceViews:LPLPID3D10ShaderResourceView) return void with Convention=>Stdcall;
      PSGetShader:access function(This:LPID3D10Device;ppPixelShader:LPLPID3D10PixelShader) return void with Convention=>Stdcall;
      PSGetSamplers:access function(This:LPID3D10Device;StartSlot:UINT;NumSamplers:UINT;ppSamplers:LPLPID3D10SamplerState) return void with Convention=>Stdcall;
      VSGetShader:access function(This:LPID3D10Device;ppVertexShader:LPLPID3D10VertexShader) return void with Convention=>Stdcall;
      PSGetConstantBuffers:access function(This:LPID3D10Device;StartSlot:UINT;NumBuffers:UINT;ppConstantBuffers:LPLPID3D10Buffer) return void with Convention=>Stdcall;
      IAGetInputLayout:access function(This:LPID3D10Device;ppInputLayout:LPLPID3D10InputLayout) return void with Convention=>Stdcall;
      IAGetVertexBuffers:access function(This:LPID3D10Device;StartSlot:UINT;NumBuffers:UINT;ppVertexBuffers:LPLPID3D10Buffer;pStrides:LPUINT;pOffsets:LPUINT) return void with Convention=>Stdcall;
      IAGetIndexBuffer:access function(This:LPID3D10Device;pIndexBuffer:LPLPID3D10Buffer;Format:LPDXGI_FORMAT;Offset:LPUINT) return void with Convention=>Stdcall;
      GSGetConstantBuffers:access function(This:LPID3D10Device;StartSlot:UINT;NumBuffers:UINT;ppConstantBuffers:LPLPID3D10Buffer) return void with Convention=>Stdcall;
      GSGetShader:access function(This:LPID3D10Device;ppGeometryShader:LPLPID3D10GeometryShader) return void with Convention=>Stdcall;
      IAGetPrimitiveTopology:access function(This:LPID3D10Device;pTopology:LPD3D10_PRIMITIVE_TOPOLOGY) return void with Convention=>Stdcall;
      VSGetShaderResources:access function(This:LPID3D10Device;StartSlot:UINT;NumViews:UINT;ppShaderResourceViews:LPLPID3D10ShaderResourceView) return void with Convention=>Stdcall;
      VSGetSamplers:access function(This:LPID3D10Device;StartSlot:UINT;NumSamplers:UINT;ppSamplers:LPLPID3D10SamplerState) return void with Convention=>Stdcall;
      GetPredication:access function(This:LPID3D10Device;ppPredicate:LPLPID3D10Predicate;pPredicateValue:LPBOOL) return void with Convention=>Stdcall;
      GSGetShaderResources:access function(This:LPID3D10Device;StartSlot:UINT;NumViews:UINT;ppShaderResourceViews:LPLPID3D10ShaderResourceView) return void with Convention=>Stdcall;
      GSGetSamplers:access function(This:LPID3D10Device;StartSlot:UINT;NumSamplers:UINT;ppSamplers:LPLPID3D10SamplerState) return void with Convention=>Stdcall;
      OMGetRenderTargets:access function(This:LPID3D10Device;NumViews:UINT;ppRenderTargetViews:LPLPID3D10RenderTargetView;ppDepthStencilView:LPLPID3D10DepthStencilView) return void with Convention=>Stdcall;
      OMGetBlendState:access function(This:LPID3D10Device;ppBlendState:LPLPID3D10BlendState;BlendFactor:FLOAT_Array_0_to_3;pSampleMask:LPUINT) return void with Convention=>Stdcall;
      OMGetDepthStencilState:access function(This:LPID3D10Device;ppDepthStencilState:LPLPID3D10DepthStencilState;pStencilRef:LPUINT) return void with Convention=>Stdcall;
      SOGetTargets:access function(This:LPID3D10Device;NumBuffers:UINT;ppSOTargets:LPLPID3D10Buffer;pOffsets:LPUINT) return void with Convention=>Stdcall;
      RSGetState:access function(This:LPID3D10Device;ppRasterizerState:LPLPID3D10RasterizerState) return void with Convention=>Stdcall;
      RSGetViewports:access function(This:LPID3D10Device;NumViewports:LPUINT;pViewports:LPD3D10_VIEWPORT) return void with Convention=>Stdcall;
      RSGetScissorRects:access function(This:LPID3D10Device;NumRects:LPUINT;pRects:LPD3D10_RECT) return void with Convention=>Stdcall;
      GetDeviceRemovedReason:access function(This:LPID3D10Device) return HRESULT with Convention=>Stdcall;
      SetExceptionMode:access function(This:LPID3D10Device;RaiseFlags:UINT) return HRESULT with Convention=>Stdcall;
      GetExceptionMode:access function(This:LPID3D10Device) return UINT with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D10Device;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D10Device;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D10Device;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      ClearState:access function(This:LPID3D10Device) return void with Convention=>Stdcall;
      Flush:access function(This:LPID3D10Device) return void with Convention=>Stdcall;
      CreateBuffer:access function(This:LPID3D10Device;pDesc:LPCD3D10_BUFFER_DESC;pInitialData:LPCD3D10_SUBRESOURCE_DATA;ppBuffer:LPLPID3D10Buffer) return HRESULT with Convention=>Stdcall;
      CreateTexture1D:access function(This:LPID3D10Device;pDesc:LPCD3D10_TEXTURE1D_DESC;pInitialData:LPCD3D10_SUBRESOURCE_DATA;ppTexture1D:LPLPID3D10Texture1D) return HRESULT with Convention=>Stdcall;
      CreateTexture2D:access function(This:LPID3D10Device;pDesc:LPCD3D10_TEXTURE2D_DESC;pInitialData:LPCD3D10_SUBRESOURCE_DATA;ppTexture2D:LPLPID3D10Texture2D) return HRESULT with Convention=>Stdcall;
      CreateTexture3D:access function(This:LPID3D10Device;pDesc:LPCD3D10_TEXTURE3D_DESC;pInitialData:LPCD3D10_SUBRESOURCE_DATA;ppTexture3D:LPLPID3D10Texture3D) return HRESULT with Convention=>Stdcall;
      CreateShaderResourceView:access function(This:LPID3D10Device;pResource:LPID3D10Resource;pDesc:LPCD3D10_SHADER_RESOURCE_VIEW_DESC;ppSRView:LPLPID3D10ShaderResourceView) return HRESULT with Convention=>Stdcall;
      CreateRenderTargetView:access function(This:LPID3D10Device;pResource:LPID3D10Resource;pDesc:LPCD3D10_RENDER_TARGET_VIEW_DESC;ppRTView:LPLPID3D10RenderTargetView) return HRESULT with Convention=>Stdcall;
      CreateDepthStencilView:access function(This:LPID3D10Device;pResource:LPID3D10Resource;pDesc:LPCD3D10_DEPTH_STENCIL_VIEW_DESC;ppDepthStencilView:LPLPID3D10DepthStencilView) return HRESULT with Convention=>Stdcall;
      CreateInputLayout:access function(This:LPID3D10Device;pInputElementDescs:LPCD3D10_INPUT_ELEMENT_DESC;NumElements:UINT;pShaderBytecodeWithInputSignature:LPCvoid;BytecodeLength:SIZE_T;ppInputLayout:LPLPID3D10InputLayout) return HRESULT with Convention=>Stdcall;
      CreateVertexShader:access function(This:LPID3D10Device;pShaderBytecode:LPCvoid;BytecodeLength:SIZE_T;ppVertexShader:LPLPID3D10VertexShader) return HRESULT with Convention=>Stdcall;
      CreateGeometryShader:access function(This:LPID3D10Device;pShaderBytecode:LPCvoid;BytecodeLength:SIZE_T;ppGeometryShader:LPLPID3D10GeometryShader) return HRESULT with Convention=>Stdcall;
      CreateGeometryShaderWithStreamOutput:access function(This:LPID3D10Device;pShaderBytecode:LPCvoid;BytecodeLength:SIZE_T;pSODeclaration:LPCD3D10_SO_DECLARATION_ENTRY;NumEntries:UINT;OutputStreamStride:UINT;ppGeometryShader:LPLPID3D10GeometryShader) return HRESULT with Convention=>Stdcall;
      CreatePixelShader:access function(This:LPID3D10Device;pShaderBytecode:LPCvoid;BytecodeLength:SIZE_T;ppPixelShader:LPLPID3D10PixelShader) return HRESULT with Convention=>Stdcall;
      CreateBlendState:access function(This:LPID3D10Device;pBlendStateDesc:LPCD3D10_BLEND_DESC;ppBlendState:LPLPID3D10BlendState) return HRESULT with Convention=>Stdcall;
      CreateDepthStencilState:access function(This:LPID3D10Device;pDepthStencilDesc:LPCD3D10_DEPTH_STENCIL_DESC;ppDepthStencilState:LPLPID3D10DepthStencilState) return HRESULT with Convention=>Stdcall;
      CreateRasterizerState:access function(This:LPID3D10Device;pRasterizerDesc:LPCD3D10_RASTERIZER_DESC;ppRasterizerState:LPLPID3D10RasterizerState) return HRESULT with Convention=>Stdcall;
      CreateSamplerState:access function(This:LPID3D10Device;pSamplerDesc:LPCD3D10_SAMPLER_DESC;ppSamplerState:LPLPID3D10SamplerState) return HRESULT with Convention=>Stdcall;
      CreateQuery:access function(This:LPID3D10Device;pQueryDesc:LPCD3D10_QUERY_DESC;ppQuery:LPLPID3D10Query) return HRESULT with Convention=>Stdcall;
      CreatePredicate:access function(This:LPID3D10Device;pPredicateDesc:LPCD3D10_QUERY_DESC;ppPredicate:LPLPID3D10Predicate) return HRESULT with Convention=>Stdcall;
      CreateCounter:access function(This:LPID3D10Device;pCounterDesc:LPCD3D10_COUNTER_DESC;ppCounter:LPLPID3D10Counter) return HRESULT with Convention=>Stdcall;
      CheckFormatSupport:access function(This:LPID3D10Device;Format:DXGI_FORMAT;pFormatSupport:LPUINT) return HRESULT with Convention=>Stdcall;
      CheckMultisampleQualityLevels:access function(This:LPID3D10Device;Format:DXGI_FORMAT;SampleCount:UINT;pNumQualityLevels:LPUINT) return HRESULT with Convention=>Stdcall;
      CheckCounterInfo:access function(This:LPID3D10Device;pCounterInfo:LPD3D10_COUNTER_INFO) return void with Convention=>Stdcall;
      CheckCounter:access function(This:LPID3D10Device;pDesc:LPCD3D10_COUNTER_DESC;pType:LPD3D10_COUNTER_TYPE;pActiveCounters:LPUINT;szName:LPSTR;pNameLength:LPUINT;szUnits:LPSTR;pUnitsLength:LPUINT;szDescription:LPSTR;pDescriptionLength:LPUINT) return HRESULT with Convention=>Stdcall;
      GetCreationFlags:access function(This:LPID3D10Device) return UINT with Convention=>Stdcall;
      OpenSharedResource:access function(This:LPID3D10Device;hResource:HANDLE;ReturnedInterface:REFIID;ppResource:LPLPvoid) return HRESULT with Convention=>Stdcall;
      SetTextFilterSize:access function(This:LPID3D10Device;Width:UINT;Height:UINT) return void with Convention=>Stdcall;
      GetTextFilterSize:access function(This:LPID3D10Device;pWidth:LPUINT;pHeight:LPUINT) return void with Convention=>Stdcall;
   end record;

   

   type ID3D10Multithread is record
      QueryInterface:access function(This:LPID3D10Multithread;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D10Multithread) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D10Multithread) return ULONG with Convention=>Stdcall;
      Enter:access function(This:LPID3D10Multithread) return void with Convention=>Stdcall;
      Leave:access function(This:LPID3D10Multithread) return void with Convention=>Stdcall;
      SetMultithreadProtected:access function(This:LPID3D10Multithread;bMTProtect:BOOL) return BOOL with Convention=>Stdcall;
      GetMultithreadProtected:access function(This:LPID3D10Multithread) return BOOL with Convention=>Stdcall;
   end record;

   

   type D3D10_CREATE_DEVICE_FLAG is (D3D10_CREATE_DEVICE_SINGLETHREADED,
                                     D3D10_CREATE_DEVICE_DEBUG,
                                     D3D10_CREATE_DEVICE_SWITCH_TO_REF,
                                     D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS,
                                     D3D10_CREATE_DEVICE_ALLOW_NULL_FROM_MAP,
                                     D3D10_CREATE_DEVICE_BGRA_SUPPORT,
                                     D3D10_CREATE_DEVICE_STRICT_VALIDATION);
   for D3D10_CREATE_DEVICE_FLAG use (D3D10_CREATE_DEVICE_SINGLETHREADED=>16#1#,
                                     D3D10_CREATE_DEVICE_DEBUG=>16#2#,
                                     D3D10_CREATE_DEVICE_SWITCH_TO_REF=>16#4#,
                                     D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS=>16#8#,
                                     D3D10_CREATE_DEVICE_ALLOW_NULL_FROM_MAP=>16#10#,
                                     D3D10_CREATE_DEVICE_BGRA_SUPPORT=>16#20#,
                                     D3D10_CREATE_DEVICE_STRICT_VALIDATION=>16#200#);

   D3D10_SDK_VERSION : constant := (29);

   IID_ID3D10DeviceChild:constant win32.rpcdce.GUID:=(16#9B7E4C00#,16#342C#,16#4106#,(16#A1#,16#9F#,16#4F#,16#27#,16#04#,16#F6#,16#89#,16#F0#));
   IID_ID3D10DepthStencilState:constant win32.rpcdce.GUID:=(16#2B4B1CC8#,16#A4AD#,16#41f8#,(16#83#,16#22#,16#CA#,16#86#,16#FC#,16#3E#,16#C6#,16#75#));
   IID_ID3D10BlendState:constant win32.rpcdce.GUID:=(16#EDAD8D19#,16#8A35#,16#4d6d#,(16#85#,16#66#,16#2E#,16#A2#,16#76#,16#CD#,16#E1#,16#61#));
   IID_ID3D10RasterizerState:constant win32.rpcdce.GUID:=(16#A2A07292#,16#89AF#,16#4345#,(16#BE#,16#2E#,16#C5#,16#3D#,16#9F#,16#BB#,16#6E#,16#9F#));
   IID_ID3D10Resource:constant win32.rpcdce.GUID:=(16#9B7E4C01#,16#342C#,16#4106#,(16#A1#,16#9F#,16#4F#,16#27#,16#04#,16#F6#,16#89#,16#F0#));
   IID_ID3D10Buffer:constant win32.rpcdce.GUID:=(16#9B7E4C02#,16#342C#,16#4106#,(16#A1#,16#9F#,16#4F#,16#27#,16#04#,16#F6#,16#89#,16#F0#));
   IID_ID3D10Texture1D:constant win32.rpcdce.GUID:=(16#9B7E4C03#,16#342C#,16#4106#,(16#A1#,16#9F#,16#4F#,16#27#,16#04#,16#F6#,16#89#,16#F0#));
   IID_ID3D10Texture2D:constant win32.rpcdce.GUID:=(16#9B7E4C04#,16#342C#,16#4106#,(16#A1#,16#9F#,16#4F#,16#27#,16#04#,16#F6#,16#89#,16#F0#));
   IID_ID3D10Texture3D:constant win32.rpcdce.GUID:=(16#9B7E4C05#,16#342C#,16#4106#,(16#A1#,16#9F#,16#4F#,16#27#,16#04#,16#F6#,16#89#,16#F0#));
   IID_ID3D10View:constant win32.rpcdce.GUID:=(16#C902B03F#,16#60A7#,16#49BA#,(16#99#,16#36#,16#2A#,16#3A#,16#B3#,16#7A#,16#7E#,16#33#));
   IID_ID3D10ShaderResourceView:constant win32.rpcdce.GUID:=(16#9B7E4C07#,16#342C#,16#4106#,(16#A1#,16#9F#,16#4F#,16#27#,16#04#,16#F6#,16#89#,16#F0#));
   IID_ID3D10RenderTargetView:constant win32.rpcdce.GUID:=(16#9B7E4C08#,16#342C#,16#4106#,(16#A1#,16#9F#,16#4F#,16#27#,16#04#,16#F6#,16#89#,16#F0#));
   IID_ID3D10DepthStencilView:constant win32.rpcdce.GUID:=(16#9B7E4C09#,16#342C#,16#4106#,(16#A1#,16#9F#,16#4F#,16#27#,16#04#,16#F6#,16#89#,16#F0#));
   IID_ID3D10VertexShader:constant win32.rpcdce.GUID:=(16#9B7E4C0A#,16#342C#,16#4106#,(16#A1#,16#9F#,16#4F#,16#27#,16#04#,16#F6#,16#89#,16#F0#));
   IID_ID3D10GeometryShader:constant win32.rpcdce.GUID:=(16#6316BE88#,16#54CD#,16#4040#,(16#AB#,16#44#,16#20#,16#46#,16#1B#,16#C8#,16#1F#,16#68#));
   IID_ID3D10PixelShader:constant win32.rpcdce.GUID:=(16#4968B601#,16#9D00#,16#4cde#,(16#83#,16#46#,16#8E#,16#7F#,16#67#,16#58#,16#19#,16#B6#));
   IID_ID3D10InputLayout:constant win32.rpcdce.GUID:=(16#9B7E4C0B#,16#342C#,16#4106#,(16#A1#,16#9F#,16#4F#,16#27#,16#04#,16#F6#,16#89#,16#F0#));
   IID_ID3D10SamplerState:constant win32.rpcdce.GUID:=(16#9B7E4C0C#,16#342C#,16#4106#,(16#A1#,16#9F#,16#4F#,16#27#,16#04#,16#F6#,16#89#,16#F0#));
   IID_ID3D10Asynchronous:constant win32.rpcdce.GUID:=(16#9B7E4C0D#,16#342C#,16#4106#,(16#A1#,16#9F#,16#4F#,16#27#,16#04#,16#F6#,16#89#,16#F0#));
   IID_ID3D10Query:constant win32.rpcdce.GUID:=(16#9B7E4C0E#,16#342C#,16#4106#,(16#A1#,16#9F#,16#4F#,16#27#,16#04#,16#F6#,16#89#,16#F0#));
   IID_ID3D10Predicate:constant win32.rpcdce.GUID:=(16#9B7E4C10#,16#342C#,16#4106#,(16#A1#,16#9F#,16#4F#,16#27#,16#04#,16#F6#,16#89#,16#F0#));
   IID_ID3D10Counter:constant win32.rpcdce.GUID:=(16#9B7E4C11#,16#342C#,16#4106#,(16#A1#,16#9F#,16#4F#,16#27#,16#04#,16#F6#,16#89#,16#F0#));
   IID_ID3D10Device:constant win32.rpcdce.GUID:=(16#9B7E4C0F#,16#342C#,16#4106#,(16#A1#,16#9F#,16#4F#,16#27#,16#04#,16#F6#,16#89#,16#F0#));
   IID_ID3D10Multithread:constant win32.rpcdce.GUID:=(16#9B7E4E00#,16#342C#,16#4106#,(16#A1#,16#9F#,16#4F#,16#27#,16#04#,16#F6#,16#89#,16#F0#));


   
   --
   -- THE END
   --



end d3d10;

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值