Ada计算机图形DirectX之D3D11

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

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

with d3dcommon;                       use d3dcommon;
with DXGIFormat;                      use DXGIFormat;
with DXGI;                            use DXGI;

package d3d11 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;
   subtype float_array_0_to_3 is float_Array(0..3);
   subtype uint_array_0_to_3 is UINT_Array(0..3);
   
   
   type ID3D11DeviceChild;
   type LPID3D11DeviceChild is access all ID3D11DeviceChild;
   type LPLPID3D11DeviceChild is access all LPID3D11DeviceChild;
   subtype LPD3D11DeviceChild is LPID3D11DeviceChild;
   subtype LPLPD3D11DeviceChild is LPLPID3D11DeviceChild;
   
   type ID3D11DepthStencilState;
   type LPID3D11DepthStencilState is access all ID3D11DepthStencilState;
   type LPLPID3D11DepthStencilState is access all LPID3D11DepthStencilState;
   subtype LPD3D11DepthStencilState is LPID3D11DepthStencilState;
   subtype LPLPD3D11DepthStencilState is LPLPID3D11DepthStencilState;
   
   type ID3D11BlendState;
   type LPID3D11BlendState is access all ID3D11BlendState;
   type LPLPID3D11BlendState is access all LPID3D11BlendState;
   subtype LPD3D11BlendState is LPID3D11BlendState;
   subtype LPLPD3D11BlendState is LPLPID3D11BlendState;
   
   type ID3D11RasterizerState;
   type LPID3D11RasterizerState is access all ID3D11RasterizerState;
   type LPLPID3D11RasterizerState is access all LPID3D11RasterizerState;
   subtype LPD3D11RasterizerState is LPID3D11RasterizerState;
   subtype LPLPD3D11RasterizerState is LPLPID3D11RasterizerState;
   
   type ID3D11Resource;
   type LPID3D11Resource is access all ID3D11Resource;
   type LPLPID3D11Resource is access all LPID3D11Resource;
   subtype LPD3D11Resource is LPID3D11Resource;
   subtype LPLPD3D11Resource is LPLPID3D11Resource;
   
   type ID3D11Buffer;
   type LPID3D11Buffer is access all ID3D11Buffer;
   type LPLPID3D11Buffer is access all LPID3D11Buffer;
   subtype LPD3D11Buffer is LPID3D11Buffer;
   subtype LPLPD3D11Buffer is LPLPID3D11Buffer;
   
   type ID3D11Texture1D;
   type LPID3D11Texture1D is access all ID3D11Texture1D;
   type LPLPID3D11Texture1D is access all LPID3D11Texture1D;
   subtype LPD3D11Texture1D is LPID3D11Texture1D;
   subtype LPLPD3D11Texture1D is LPLPID3D11Texture1D;
   
   type ID3D11Texture2D;
   type LPID3D11Texture2D is access all ID3D11Texture2D;
   type LPLPID3D11Texture2D is access all LPID3D11Texture2D;
   subtype LPD3D11Texture2D is LPID3D11Texture2D;
   subtype LPLPD3D11Texture2D is LPLPID3D11Texture2D;
   
   type ID3D11Texture3D;
   type LPID3D11Texture3D is access all ID3D11Texture3D;
   type LPLPID3D11Texture3D is access all LPID3D11Texture3D;
   subtype LPD3D11Texture3D is LPID3D11Texture3D;
   subtype LPLPD3D11Texture3D is LPLPID3D11Texture3D;
   
   type ID3D11View;
   type LPID3D11View is access all ID3D11View;
   type LPLPID3D11View is access all LPID3D11View;
   subtype LPD3D11View is LPID3D11View;
   subtype LPLPD3D11View is LPLPID3D11View;
   
   type ID3D11ShaderResourceView;
   type LPID3D11ShaderResourceView is access all ID3D11ShaderResourceView;
   type LPLPID3D11ShaderResourceView is access all LPID3D11ShaderResourceView;
   subtype LPD3D11ShaderResourceView is LPID3D11ShaderResourceView;
   subtype LPLPD3D11ShaderResourceView is LPLPID3D11ShaderResourceView;
   
   type ID3D11RenderTargetView;
   type LPID3D11RenderTargetView is access all ID3D11RenderTargetView;
   type LPLPID3D11RenderTargetView is access all LPID3D11RenderTargetView;
   subtype LPD3D11RenderTargetView is LPID3D11RenderTargetView;
   subtype LPLPD3D11RenderTargetView is LPLPID3D11RenderTargetView;
   
   type ID3D11DepthStencilView;
   type LPID3D11DepthStencilView is access all ID3D11DepthStencilView;
   type LPLPID3D11DepthStencilView is access all LPID3D11DepthStencilView;
   subtype LPD3D11DepthStencilView is LPID3D11DepthStencilView;
   subtype LPLPD3D11DepthStencilView is LPLPID3D11DepthStencilView;
   
   type ID3D11UnorderedAccessView;
   type LPID3D11UnorderedAccessView is access all ID3D11UnorderedAccessView;
   type LPLPID3D11UnorderedAccessView is access all LPID3D11UnorderedAccessView;
   subtype LPD3D11UnorderedAccessView is LPID3D11UnorderedAccessView;
   subtype LPLPD3D11UnorderedAccessView is LPLPID3D11UnorderedAccessView;
   
   type ID3D11VertexShader;
   type LPID3D11VertexShader is access all ID3D11VertexShader;
   type LPLPID3D11VertexShader is access all LPID3D11VertexShader;
   subtype LPD3D11VertexShader is LPID3D11VertexShader;
   subtype LPLPD3D11VertexShader is LPLPID3D11VertexShader;
   
   type ID3D11HullShader;
   type LPID3D11HullShader is access all ID3D11HullShader;
   type LPLPID3D11HullShader is access all LPID3D11HullShader;
   subtype LPD3D11HullShader is LPID3D11HullShader;
   subtype LPLPD3D11HullShader is LPLPID3D11HullShader;
   
   type ID3D11DomainShader;
   type LPID3D11DomainShader is access all ID3D11DomainShader;
   type LPLPID3D11DomainShader is access all LPID3D11DomainShader;
   subtype LPD3D11DomainShader is LPID3D11DomainShader;
   subtype LPLPD3D11DomainShader is LPLPID3D11DomainShader;
   
   type ID3D11GeometryShader;
   type LPID3D11GeometryShader is access all ID3D11GeometryShader;
   type LPLPID3D11GeometryShader is access all LPID3D11GeometryShader;
   subtype LPD3D11GeometryShader is LPID3D11GeometryShader;
   subtype LPLPD3D11GeometryShader is LPLPID3D11GeometryShader;
   
   type ID3D11PixelShader;
   type LPID3D11PixelShader is access all ID3D11PixelShader;
   type LPLPID3D11PixelShader is access all LPID3D11PixelShader;
   subtype LPD3D11PixelShader is LPID3D11PixelShader;
   subtype LPLPD3D11PixelShader is LPLPID3D11PixelShader;
   
   type ID3D11ComputeShader;
   type LPID3D11ComputeShader is access all ID3D11ComputeShader;
   type LPLPID3D11ComputeShader is access all LPID3D11ComputeShader;
   subtype LPD3D11ComputeShader is LPID3D11ComputeShader;
   subtype LPLPD3D11ComputeShader is LPLPID3D11ComputeShader;
   
   type ID3D11InputLayout;
   type LPID3D11InputLayout is access all ID3D11InputLayout;
   type LPLPID3D11InputLayout is access all LPID3D11InputLayout;
   subtype LPD3D11InputLayout is LPID3D11InputLayout;
   subtype LPLPD3D11InputLayout is LPLPID3D11InputLayout;
   
   type ID3D11SamplerState;
   type LPID3D11SamplerState is access all ID3D11SamplerState;
   type LPLPID3D11SamplerState is access all LPID3D11SamplerState;
   subtype LPD3D11SamplerState is LPID3D11SamplerState;
   subtype LPLPD3D11SamplerState is LPLPID3D11SamplerState;
   
   type ID3D11Asynchronous;
   type LPID3D11Asynchronous is access all ID3D11Asynchronous;
   type LPLPID3D11Asynchronous is access all LPID3D11Asynchronous;
   subtype LPD3D11Asynchronous is LPID3D11Asynchronous;
   subtype LPLPD3D11Asynchronous is LPLPID3D11Asynchronous;
   
   type ID3D11Query;
   type LPID3D11Query is access all ID3D11Query;
   type LPLPID3D11Query is access all LPID3D11Query;
   subtype LPD3D11Query is LPID3D11Query;
   subtype LPLPD3D11Query is LPLPID3D11Query;
   
   type ID3D11Predicate;
   type LPID3D11Predicate is access all ID3D11Predicate;
   type LPLPID3D11Predicate is access all LPID3D11Predicate;
   subtype LPD3D11Predicate is LPID3D11Predicate;
   subtype LPLPD3D11Predicate is LPLPID3D11Predicate;
   
   type ID3D11Counter;
   type LPID3D11Counter is access all ID3D11Counter;
   type LPLPID3D11Counter is access all LPID3D11Counter;
   subtype LPD3D11Counter is LPID3D11Counter;
   subtype LPLPD3D11Counter is LPLPID3D11Counter;
   
   type ID3D11ClassInstance;
   type LPID3D11ClassInstance is access all ID3D11ClassInstance;
   type LPLPID3D11ClassInstance is access all LPID3D11ClassInstance;
   subtype LPD3D11ClassInstance is LPID3D11ClassInstance;
   subtype LPLPD3D11ClassInstance is LPLPID3D11ClassInstance;
   
   type ID3D11ClassLinkage;
   type LPID3D11ClassLinkage is access all ID3D11ClassLinkage;
   type LPLPID3D11ClassLinkage is access all LPID3D11ClassLinkage;
   subtype LPD3D11ClassLinkage is LPID3D11ClassLinkage;
   subtype LPLPD3D11ClassLinkage is LPLPID3D11ClassLinkage;
   
   type ID3D11CommandList;
   type LPID3D11CommandList is access all ID3D11CommandList;
   type LPLPID3D11CommandList is access all LPID3D11CommandList;
   subtype LPD3D11CommandList is LPID3D11CommandList;
   subtype LPLPD3D11CommandList is LPLPID3D11CommandList;
   
   type ID3D11DeviceContext;
   type LPID3D11DeviceContext is access all ID3D11DeviceContext;
   type LPLPID3D11DeviceContext is access all LPID3D11DeviceContext;
   subtype LPD3D11DeviceContext is LPID3D11DeviceContext;
   subtype LPLPD3D11DeviceContext is LPLPID3D11DeviceContext;
   
   type ID3D11Device;
   type LPID3D11Device is access all ID3D11Device;
   type LPLPID3D11Device is access all LPID3D11Device;
   subtype LPD3D11Device is LPID3D11Device;
   subtype LPLPD3D11Device is LPLPID3D11Device;
   
   
   
   
   
   

   REQUIRED_RPCNDR_H_VERSION : constant := 475;

   REQUIRED_RPCSAL_H_VERSION : constant := 100;

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

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

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

   D3D11_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT : constant := (9);

   D3D11_CLIP_OR_CULL_DISTANCE_COUNT : constant := ( 8 );

   D3D11_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT : constant := ( 2 );

   D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT : constant := ( 14 );

   D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS : constant := ( 4 );

   D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT : constant := ( 15 );

   D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS : constant := ( 4 );

   D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT : constant := ( 15 );

   D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST : constant := ( 1 );

   D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS : constant := ( 1 );

   D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT : constant := ( 64 );

   D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS : constant := ( 4 );

   D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT : constant := ( 1 );

   D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST : constant := ( 1 );

   D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS : constant := ( 1 );

   D3D11_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS : constant := ( 1 );

   D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT : constant := ( 128 );

   D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST : constant := ( 1 );

   D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS : constant := ( 1 );

   D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT : constant := ( 128 );

   D3D11_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS : constant := ( 1 );

   D3D11_COMMONSHADER_SAMPLER_REGISTER_COUNT : constant := ( 16 );

   D3D11_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST : constant := ( 1 );

   D3D11_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS : constant := ( 1 );

   D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT : constant := ( 16 );

   D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT : constant := ( 32 );

   D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENTS : constant := ( 4 );

   D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_COMMONSHADER_TEMP_REGISTER_COUNT : constant := ( 4096 );

   D3D11_COMMONSHADER_TEMP_REGISTER_READS_PER_INST : constant := ( 3 );

   D3D11_COMMONSHADER_TEMP_REGISTER_READ_PORTS : constant := ( 3 );

   D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX : constant := ( 10 );

   D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN : constant := ( -10 );

   D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE : constant := ( -8 );

   D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE : constant := ( 7 );

   D3D11_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD : constant := ( 256 );

   D3D11_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP : constant := ( 64 );

   D3D11_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD : constant := ( 240 );

   D3D11_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP : constant := ( 68 );

   D3D11_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD : constant := ( 224 );

   D3D11_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP : constant := ( 72 );

   D3D11_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD : constant := ( 208 );

   D3D11_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP : constant := ( 76 );

   D3D11_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD : constant := ( 192 );

   D3D11_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP : constant := ( 84 );

   D3D11_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD : constant := ( 176 );

   D3D11_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP : constant := ( 92 );

   D3D11_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD : constant := ( 160 );

   D3D11_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP : constant := ( 100 );

   D3D11_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD : constant := ( 144 );

   D3D11_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP : constant := ( 112 );

   D3D11_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD : constant := ( 128 );

   D3D11_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP : constant := ( 128 );

   D3D11_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD : constant := ( 112 );

   D3D11_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP : constant := ( 144 );

   D3D11_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD : constant := ( 96 );

   D3D11_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP : constant := ( 168 );

   D3D11_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD : constant := ( 80 );

   D3D11_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP : constant := ( 204 );

   D3D11_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD : constant := ( 64 );

   D3D11_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP : constant := ( 256 );

   D3D11_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD : constant := ( 48 );

   D3D11_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP : constant := ( 340 );

   D3D11_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD : constant := ( 32 );

   D3D11_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP : constant := ( 512 );

   D3D11_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD : constant := ( 16 );

   D3D11_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP : constant := ( 768 );

   D3D11_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION : constant := ( 1 );

   D3D11_CS_4_X_RAW_UAV_BYTE_ALIGNMENT : constant := ( 256 );

   D3D11_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP : constant := ( 768 );

   D3D11_CS_4_X_THREAD_GROUP_MAX_X : constant := ( 768 );

   D3D11_CS_4_X_THREAD_GROUP_MAX_Y : constant := ( 768 );

   D3D11_CS_4_X_UAV_REGISTER_COUNT : constant := ( 1 );

   D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION : constant := ( 65535 );

   D3D11_CS_TGSM_REGISTER_COUNT : constant := ( 8192 );

   D3D11_CS_TGSM_REGISTER_READS_PER_INST : constant := ( 1 );

   D3D11_CS_TGSM_RESOURCE_REGISTER_COMPONENTS : constant := ( 1 );

   D3D11_CS_TGSM_RESOURCE_REGISTER_READ_PORTS : constant := ( 1 );

   D3D11_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP : constant := ( 1024 );

   D3D11_CS_THREAD_GROUP_MAX_X : constant := ( 1024 );

   D3D11_CS_THREAD_GROUP_MAX_Y : constant := ( 1024 );

   D3D11_CS_THREAD_GROUP_MAX_Z : constant := ( 64 );

   D3D11_CS_THREAD_GROUP_MIN_X : constant := ( 1 );

   D3D11_CS_THREAD_GROUP_MIN_Y : constant := ( 1 );

   D3D11_CS_THREAD_GROUP_MIN_Z : constant := ( 1 );

   D3D11_CS_THREAD_LOCAL_TEMP_REGISTER_POOL : constant := ( 16384 );

   D3D11_DEFAULT_BLEND_FACTOR_ALPHA : constant := ( 1.0);

   D3D11_DEFAULT_BLEND_FACTOR_BLUE : constant := ( 1.0 );

   D3D11_DEFAULT_BLEND_FACTOR_GREEN : constant := ( 1.0 );

   D3D11_DEFAULT_BLEND_FACTOR_RED : constant := ( 1.0 );

   D3D11_DEFAULT_BORDER_COLOR_COMPONENT : constant := ( 0.0 );

   D3D11_DEFAULT_DEPTH_BIAS : constant := ( 0 );

   D3D11_DEFAULT_DEPTH_BIAS_CLAMP : constant := ( 0.0);

   D3D11_DEFAULT_MAX_ANISOTROPY : constant := ( 16 );

   D3D11_DEFAULT_MIP_LOD_BIAS : constant := ( 0.0 );

   D3D11_DEFAULT_RENDER_TARGET_ARRAY_INDEX : constant := ( 0 );

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

   D3D11_DEFAULT_SCISSOR_ENDX : constant := ( 0 );

   D3D11_DEFAULT_SCISSOR_ENDY : constant := ( 0 );

   D3D11_DEFAULT_SCISSOR_STARTX : constant := ( 0 );

   D3D11_DEFAULT_SCISSOR_STARTY : constant := ( 0 );

   D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS : constant := ( 0.0 );

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

   D3D11_DEFAULT_STENCIL_REFERENCE : constant := ( 0 );

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

   D3D11_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX : constant := ( 0 );

   D3D11_DEFAULT_VIEWPORT_HEIGHT : constant := ( 0 );

   D3D11_DEFAULT_VIEWPORT_MAX_DEPTH : constant := ( 0.0 );

   D3D11_DEFAULT_VIEWPORT_MIN_DEPTH : constant := ( 0.0 );

   D3D11_DEFAULT_VIEWPORT_TOPLEFTX : constant := ( 0 );

   D3D11_DEFAULT_VIEWPORT_TOPLEFTY : constant := ( 0 );

   D3D11_DEFAULT_VIEWPORT_WIDTH : constant := ( 0 );

   D3D11_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS : constant := ( 3968 );

   D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS : constant := ( 4 );

   D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT : constant := ( 32 );

   D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST : constant := ( 2 );

   D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS : constant := ( 1 );

   D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS : constant := ( 3 );

   D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT : constant := ( 1 );

   D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST : constant := ( 2 );

   D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS : constant := ( 1 );

   D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS : constant := ( 4 );

   D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT : constant := ( 32 );

   D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST : constant := ( 2 );

   D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS : constant := ( 1 );

   D3D11_DS_OUTPUT_REGISTER_COMPONENTS : constant := ( 4 );

   D3D11_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_DS_OUTPUT_REGISTER_COUNT : constant := ( 32 );

   D3D11_FLOAT16_FUSED_TOLERANCE_IN_ULP : constant := ( 0.6 );

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

   D3D11_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP : constant := ( 0.6 );

   D3D11_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR : constant := ( 2.4 );

   D3D11_FLOAT_TO_SRGB_EXPONENT_NUMERATOR : constant := ( 1.0 );

   D3D11_FLOAT_TO_SRGB_OFFSET : constant := ( 0.055 );

   D3D11_FLOAT_TO_SRGB_SCALE_1 : constant := ( 12.92 );

   D3D11_FLOAT_TO_SRGB_SCALE_2 : constant := ( 1.055 );

   D3D11_FLOAT_TO_SRGB_THRESHOLD : constant := ( 0.0031308 );

   D3D11_FTOI_INSTRUCTION_MAX_INPUT : constant := ( 2147483647.999 );

   D3D11_FTOI_INSTRUCTION_MIN_INPUT : constant := ( -2147483648.999 );

   D3D11_FTOU_INSTRUCTION_MAX_INPUT : constant := ( 4294967295.999 );

   D3D11_FTOU_INSTRUCTION_MIN_INPUT : constant := ( 0.0 );

   D3D11_GS_INPUT_INSTANCE_ID_READS_PER_INST : constant := ( 2 );

   D3D11_GS_INPUT_INSTANCE_ID_READ_PORTS : constant := ( 1 );

   D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS : constant := ( 1 );

   D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COUNT : constant := ( 1 );

   D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS : constant := ( 1 );

   D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_GS_INPUT_PRIM_CONST_REGISTER_COUNT : constant := ( 1 );

   D3D11_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST : constant := ( 2 );

   D3D11_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS : constant := ( 1 );

   D3D11_GS_INPUT_REGISTER_COMPONENTS : constant := ( 4 );

   D3D11_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_GS_INPUT_REGISTER_COUNT : constant := ( 32 );

   D3D11_GS_INPUT_REGISTER_READS_PER_INST : constant := ( 2 );

   D3D11_GS_INPUT_REGISTER_READ_PORTS : constant := ( 1 );

   D3D11_GS_INPUT_REGISTER_VERTICES : constant := ( 32 );

   D3D11_GS_MAX_INSTANCE_COUNT : constant := ( 32 );

   D3D11_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES : constant := ( 1024 );

   D3D11_GS_OUTPUT_ELEMENTS : constant := ( 32 );

   D3D11_GS_OUTPUT_REGISTER_COMPONENTS : constant := ( 4 );

   D3D11_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_GS_OUTPUT_REGISTER_COUNT : constant := ( 32 );

   D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT : constant := ( 32 );

   D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT : constant := ( 32 );

   D3D11_HS_CONTROL_POINT_REGISTER_COMPONENTS : constant := ( 4 );

   D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_HS_CONTROL_POINT_REGISTER_READS_PER_INST : constant := ( 2 );

   D3D11_HS_CONTROL_POINT_REGISTER_READ_PORTS : constant := ( 1 );

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

   D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS : constant := ( 1 );

   D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT : constant := ( 1 );

   D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST : constant := ( 2 );

   D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS : constant := ( 1 );

   D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS : constant := ( 1 );

   D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT : constant := ( 1 );

   D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST : constant := ( 2 );

   D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS : constant := ( 1 );

   D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS : constant := ( 1 );

   D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT : constant := ( 1 );

   D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST : constant := ( 2 );

   D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS : constant := ( 1 );

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

   D3D11_HS_MAXTESSFACTOR_LOWER_BOUND : constant := ( 1.0 );

   D3D11_HS_MAXTESSFACTOR_UPPER_BOUND : constant := ( 64.0 );

   D3D11_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS : constant := ( 3968 );

   D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS : constant := ( 1 );

   D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT : constant := ( 1 );

   D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST : constant := ( 2 );

   D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS : constant := ( 1 );

   D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS : constant := ( 4 );

   D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT : constant := ( 32 );

   D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST : constant := ( 2 );

   D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS : constant := ( 1 );

   D3D11_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES : constant := ( 0 );

   D3D11_IA_DEFAULT_PRIMITIVE_TOPOLOGY : constant := ( 0 );

   D3D11_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES : constant := ( 0 );

   D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT : constant := ( 1 );

   D3D11_IA_INSTANCE_ID_BIT_COUNT : constant := ( 32 );

   D3D11_IA_INTEGER_ARITHMETIC_BIT_COUNT : constant := ( 32 );

   D3D11_IA_PATCH_MAX_CONTROL_POINT_COUNT : constant := ( 32 );

   D3D11_IA_PRIMITIVE_ID_BIT_COUNT : constant := ( 32 );

   D3D11_IA_VERTEX_ID_BIT_COUNT : constant := ( 32 );

   D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT : constant := ( 32 );

   D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS : constant := ( 128 );

   D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT : constant := ( 32 );

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

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

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

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

   D3D11_LINEAR_GAMMA : constant := ( 1.0 );

   D3D11_MAJOR_VERSION : constant := ( 11 );

   D3D11_MAX_BORDER_COLOR_COMPONENT : constant := ( 1.0 );

   D3D11_MAX_DEPTH : constant := ( 1.0);

   D3D11_MAX_MAXANISOTROPY : constant := ( 16 );

   D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT : constant := ( 32 );

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

   D3D11_MAX_TEXTURE_DIMENSION_2_TO_EXP : constant := ( 17 );

   D3D11_MINOR_VERSION : constant := ( 0 );

   D3D11_MIN_BORDER_COLOR_COMPONENT : constant := ( 0.0 );

   D3D11_MIN_DEPTH : constant := ( 0.0 );

   D3D11_MIN_MAXANISOTROPY : constant := ( 0 );

   D3D11_MIP_LOD_BIAS_MAX : constant := ( 15.99);

   D3D11_MIP_LOD_BIAS_MIN : constant := ( -16.0 );

   D3D11_MIP_LOD_FRACTIONAL_BIT_COUNT : constant := ( 8 );

   D3D11_MIP_LOD_RANGE_BIT_COUNT : constant := ( 8 );

   D3D11_MULTISAMPLE_ANTIALIAS_LINE_WIDTH : constant := ( 1.4 );

   D3D11_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT : constant := ( 0 );

   D3D11_PIXEL_ADDRESS_RANGE_BIT_COUNT : constant := ( 15 );

   D3D11_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT : constant := ( 16 );

   D3D11_PS_CS_UAV_REGISTER_COMPONENTS : constant := ( 1 );

   D3D11_PS_CS_UAV_REGISTER_COUNT : constant := ( 8 );

   D3D11_PS_CS_UAV_REGISTER_READS_PER_INST : constant := ( 1 );

   D3D11_PS_CS_UAV_REGISTER_READ_PORTS : constant := ( 1 );

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

   D3D11_PS_FRONTFACING_FALSE_VALUE : constant := ( 0 );

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

   D3D11_PS_INPUT_REGISTER_COMPONENTS : constant := ( 4 );

   D3D11_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_PS_INPUT_REGISTER_COUNT : constant := ( 32 );

   D3D11_PS_INPUT_REGISTER_READS_PER_INST : constant := ( 2 );

   D3D11_PS_INPUT_REGISTER_READ_PORTS : constant := ( 1 );

   D3D11_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT : constant := ( 0.0 );

   D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS : constant := ( 1 );

   D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT : constant := ( 1 );

   D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENTS : constant := ( 1 );

   D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_PS_OUTPUT_MASK_REGISTER_COUNT : constant := ( 1 );

   D3D11_PS_OUTPUT_REGISTER_COMPONENTS : constant := ( 4 );

   D3D11_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_PS_OUTPUT_REGISTER_COUNT : constant := ( 8 );

   D3D11_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT : constant := ( 0.5 );

   D3D11_RAW_UAV_SRV_BYTE_ALIGNMENT : constant := ( 16 );

   D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE : constant := ( 4096 );

   D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP : constant := ( 27 );

   D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT : constant := ( 4096 );

   D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE : constant := ( 4096 );

   D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP : constant := ( 32 );

   D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP : constant := ( 32 );

   D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION : constant := ( 16384 );

   D3D11_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT : constant := ( 1024 );

   D3D11_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT : constant := ( 4096 );

   D3D11_REQ_MAXANISOTROPY : constant := ( 16 );

   D3D11_REQ_MIP_LEVELS : constant := ( 15 );

   D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES : constant := ( 2048 );

   D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE : constant := ( 4096 );

   D3D11_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH : constant := ( 16384 );

   D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM : constant := ( 128 );

   D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM : constant := ( 0.25 );

   D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP : constant := ( 20 );

   D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE : constant := ( 4096 );

   D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION : constant := ( 2048 );

   D3D11_REQ_TEXTURE1D_U_DIMENSION : constant := ( 16384 );

   D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION : constant := ( 2048 );

   D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION : constant := ( 16384 );

   D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION : constant := ( 2048 );

   D3D11_REQ_TEXTURECUBE_DIMENSION : constant := ( 16384 );

   D3D11_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL : constant := ( 0 );

   D3D11_SHADER_MAJOR_VERSION : constant := ( 5 );

   D3D11_SHADER_MAX_INSTANCES : constant := ( 65535 );

   D3D11_SHADER_MAX_INTERFACES : constant := ( 253 );

   D3D11_SHADER_MAX_INTERFACE_CALL_SITES : constant := ( 4096 );

   D3D11_SHADER_MAX_TYPES : constant := ( 65535 );

   D3D11_SHADER_MINOR_VERSION : constant := ( 0 );

   D3D11_SHIFT_INSTRUCTION_PAD_VALUE : constant := ( 0 );

   D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT : constant := ( 5 );

   D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT : constant := ( 8 );

   D3D11_SO_BUFFER_MAX_STRIDE_IN_BYTES : constant := ( 2048 );

   D3D11_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES : constant := ( 512 );

   D3D11_SO_BUFFER_SLOT_COUNT : constant := ( 4 );

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

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

   D3D11_SO_OUTPUT_COMPONENT_COUNT : constant := ( 128 );

   D3D11_SO_STREAM_COUNT : constant := ( 4 );

   D3D11_SPEC_DATE_DAY : constant := ( 04 );

   D3D11_SPEC_DATE_MONTH : constant := ( 06 );

   D3D11_SPEC_DATE_YEAR : constant := ( 2009 );

   D3D11_SPEC_VERSION : constant := ( 1.0 );

   D3D11_SRGB_GAMMA : constant := ( 2.2);

   D3D11_SRGB_TO_FLOAT_DENOMINATOR_1 : constant := ( 12.92 );

   D3D11_SRGB_TO_FLOAT_DENOMINATOR_2 : constant := ( 1.055 );

   D3D11_SRGB_TO_FLOAT_EXPONENT : constant := ( 2.4 );

   D3D11_SRGB_TO_FLOAT_OFFSET : constant := ( 0.055 );

   D3D11_SRGB_TO_FLOAT_THRESHOLD : constant := ( 0.04045 );

   D3D11_SRGB_TO_FLOAT_TOLERANCE_IN_ULP : constant := ( 0.5 );

   D3D11_STANDARD_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_STANDARD_COMPONENT_BIT_COUNT_DOUBLED : constant := ( 64 );

   D3D11_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE : constant := ( 4 );

   D3D11_STANDARD_PIXEL_COMPONENT_COUNT : constant := ( 128 );

   D3D11_STANDARD_PIXEL_ELEMENT_COUNT : constant := ( 32 );

   D3D11_STANDARD_VECTOR_SIZE : constant := ( 4 );

   D3D11_STANDARD_VERTEX_ELEMENT_COUNT : constant := ( 32 );

   D3D11_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT : constant := ( 64 );

   D3D11_SUBPIXEL_FRACTIONAL_BIT_COUNT : constant := ( 8 );

   D3D11_SUBTEXEL_FRACTIONAL_BIT_COUNT : constant := ( 8 );

   D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR : constant := ( 64 );

   D3D11_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR : constant := ( 64 );

   D3D11_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR : constant := ( 63 );

   D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR : constant := ( 64 );

   D3D11_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR : constant := ( 2 );

   D3D11_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR : constant := ( 1 );

   D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR : constant := ( 1 );

   D3D11_TEXEL_ADDRESS_RANGE_BIT_COUNT : constant := ( 16 );

   D3D11_UNBOUND_MEMORY_ACCESS_RESULT : constant := ( 0 );

   D3D11_VIEWPORT_AND_SCISSORRECT_MAX_INDEX : constant := ( 15 );

   D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE : constant := ( 16 );

   D3D11_VIEWPORT_BOUNDS_MAX : constant := ( 32767 );

   D3D11_VIEWPORT_BOUNDS_MIN : constant := ( -32768 );

   D3D11_VS_INPUT_REGISTER_COMPONENTS : constant := ( 4 );

   D3D11_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_VS_INPUT_REGISTER_COUNT : constant := ( 32 );

   D3D11_VS_INPUT_REGISTER_READS_PER_INST : constant := ( 2 );

   D3D11_VS_INPUT_REGISTER_READ_PORTS : constant := ( 1 );

   D3D11_VS_OUTPUT_REGISTER_COMPONENTS : constant := ( 4 );

   D3D11_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT : constant := ( 32 );

   D3D11_VS_OUTPUT_REGISTER_COUNT : constant := ( 32 );

   D3D11_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT : constant := ( 10 );

   D3D11_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP : constant := ( 25 );

   D3D11_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP : constant := ( 25 );

   FACD3D11 : constant := ( 16#87c# );

   FACD3D11DEBUG : constant := ( ( FACD3D11 + 1 )  );

   -- #define MAKE_D3D11_HRESULT( code )  MAKE_HRESULT( 1, _FACD3D11, code )

   -- #define MAKE_D3D11_STATUS( code )    MAKE_HRESULT( 0, _FACD3D11, code )
   
   function MAKE_D3D11_HRESULT( code:WORD )  return HRESULT is (win32.Winerror.MAKE_HRESULT( 1, FACD3D11, code ));
   function MAKE_D3D11_STATUS( code:WORD )   return HRESULT is (win32.Winerror.MAKE_HRESULT( 0, FACD3D11, code ));

   D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS : constant HRESULT:= MAKE_D3D11_HRESULT(1);

   D3D11_ERROR_FILE_NOT_FOUND : constant HRESULT:= MAKE_D3D11_HRESULT(2);

   D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS : constant HRESULT:= MAKE_D3D11_HRESULT(3);

   D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD : constant HRESULT:= MAKE_D3D11_HRESULT(4);

   type D3D11_INPUT_CLASSIFICATION is (D3D11_INPUT_PER_VERTEX_DATA,
                                       D3D11_INPUT_PER_INSTANCE_DATA);
   for D3D11_INPUT_CLASSIFICATION use (D3D11_INPUT_PER_VERTEX_DATA=>0,
                                       D3D11_INPUT_PER_INSTANCE_DATA=>1);

   type LPD3D11_INPUT_CLASSIFICATION is access D3D11_INPUT_CLASSIFICATION;

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

   type D3D11_INPUT_ELEMENT_DESC is record
      SemanticName:LPCSTR;
      SemanticIndex:UINT;
      Format:DXGI_FORMAT;
      InputSlot:UINT;
      AlignedByteOffset:UINT;
      InputSlotClass:D3D11_INPUT_CLASSIFICATION;
      InstanceDataStepRate:UINT;
   end record;

   type LPD3D11_INPUT_ELEMENT_DESC is access all D3D11_INPUT_ELEMENT_DESC;
   type LPCD3D11_INPUT_ELEMENT_DESC is access constant D3D11_INPUT_ELEMENT_DESC;

   type D3D11_FILL_MODE is (D3D11_FILL_WIREFRAME,
                            D3D11_FILL_SOLID);
   for D3D11_FILL_MODE use (D3D11_FILL_WIREFRAME=>2,
                            D3D11_FILL_SOLID=>3);

   type LPD3D11_FILL_MODE is access D3D11_FILL_MODE;

   type D3D11_PRIMITIVE_TOPOLOGY is (D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED,
                                     D3D11_PRIMITIVE_TOPOLOGY_POINTLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_LINELIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP,
                                     D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP,
                                     D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ,
                                     D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ,
                                     D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ,
                                     D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ,
                                     D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST,
                                     D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST);
   for D3D11_PRIMITIVE_TOPOLOGY use (D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED=>0,
                                     D3D11_PRIMITIVE_TOPOLOGY_POINTLIST=>1,
                                     D3D11_PRIMITIVE_TOPOLOGY_LINELIST=>2,
                                     D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP=>3,
                                     D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST=>4,
                                     D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP=>5,
                                     D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ=>10,
                                     D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ=>11,
                                     D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ=>12,
                                     D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ=>13,
                                     D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST=>33,
                                     D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST=>34,
                                     D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST=>35,
                                     D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST=>36,
                                     D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST=>37,
                                     D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST=>38,
                                     D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST=>39,
                                     D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST=>40,
                                     D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST=>41,
                                     D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST=>42,
                                     D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST=>43,
                                     D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST=>44,
                                     D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST=>45,
                                     D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST=>46,
                                     D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST=>47,
                                     D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST=>48,
                                     D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST=>49,
                                     D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST=>50,
                                     D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST=>51,
                                     D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST=>52,
                                     D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST=>53,
                                     D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST=>54,
                                     D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST=>55,
                                     D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST=>56,
                                     D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST=>57,
                                     D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST=>58,
                                     D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST=>59,
                                     D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST=>60,
                                     D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST=>61,
                                     D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST=>62,
                                     D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST=>63,
                                     D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST=>64);

   type LPD3D11_PRIMITIVE_TOPOLOGY is access D3D11_PRIMITIVE_TOPOLOGY;

   type D3D11_PRIMITIVE is (D3D11_PRIMITIVE_UNDEFINED,
                            D3D11_PRIMITIVE_POINT,
                            D3D11_PRIMITIVE_LINE,
                            D3D11_PRIMITIVE_TRIANGLE,
                            D3D11_PRIMITIVE_LINE_ADJ,
                            D3D11_PRIMITIVE_TRIANGLE_ADJ,
                            D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH,
                            D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH);
   for D3D11_PRIMITIVE use (D3D11_PRIMITIVE_UNDEFINED=>0,
                            D3D11_PRIMITIVE_POINT=>1,
                            D3D11_PRIMITIVE_LINE=>2,
                            D3D11_PRIMITIVE_TRIANGLE=>3,
                            D3D11_PRIMITIVE_LINE_ADJ=>6,
                            D3D11_PRIMITIVE_TRIANGLE_ADJ=>7,
                            D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH=>8,
                            D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH=>9,
                            D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH=>10,
                            D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH=>11,
                            D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH=>12,
                            D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH=>13,
                            D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH=>14,
                            D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH=>15,
                            D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH=>16,
                            D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH=>17,
                            D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH=>18,
                            D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH=>19,
                            D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH=>20,
                            D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH=>21,
                            D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH=>22,
                            D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH=>23,
                            D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH=>24,
                            D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH=>25,
                            D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH=>26,
                            D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH=>27,
                            D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH=>28,
                            D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH=>29,
                            D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH=>30,
                            D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH=>31,
                            D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH=>32,
                            D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH=>33,
                            D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH=>34,
                            D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH=>35,
                            D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH=>36,
                            D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH=>37,
                            D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH=>38,
                            D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH=>39);

   type LPD3D11_PRIMITIVE is access D3D11_PRIMITIVE;

   type D3D11_CULL_MODE is (D3D11_CULL_NONE,
                            D3D11_CULL_FRONT,
                            D3D11_CULL_BACK);
   for D3D11_CULL_MODE use (D3D11_CULL_NONE=>1,
                            D3D11_CULL_FRONT=>2,
                            D3D11_CULL_BACK=>3);

   type LPD3D11_CULL_MODE is access D3D11_CULL_MODE;

   type D3D11_SO_DECLARATION_ENTRY is record
      Stream:UINT;
      SemanticName:LPCSTR;
      SemanticIndex:UINT;
      StartComponent:BYTE;
      ComponentCount:BYTE;
      OutputSlot:BYTE;
   end record;

   type LPD3D11_SO_DECLARATION_ENTRY is access all D3D11_SO_DECLARATION_ENTRY;
   type LPCD3D11_SO_DECLARATION_ENTRY is access constant D3D11_SO_DECLARATION_ENTRY;

   type D3D11_VIEWPORT is record
      TopLeftX:FLOAT;
      TopLeftY:FLOAT;
      Width:FLOAT;
      Height:FLOAT;
      MinDepth:FLOAT;
      MaxDepth:FLOAT;
   end record;

   type LPD3D11_VIEWPORT is access all D3D11_VIEWPORT;
   type LPCD3D11_VIEWPORT is access constant D3D11_VIEWPORT;

   --function return(:l) return inline with Import,Convention=>stdcall,external_name=>"return";

   type D3D11_RESOURCE_DIMENSION is (D3D11_RESOURCE_DIMENSION_UNKNOWN,
                                     D3D11_RESOURCE_DIMENSION_BUFFER,
                                     D3D11_RESOURCE_DIMENSION_TEXTURE1D,
                                     D3D11_RESOURCE_DIMENSION_TEXTURE2D,
                                     D3D11_RESOURCE_DIMENSION_TEXTURE3D);
   for D3D11_RESOURCE_DIMENSION use (D3D11_RESOURCE_DIMENSION_UNKNOWN=>0,
                                     D3D11_RESOURCE_DIMENSION_BUFFER=>1,
                                     D3D11_RESOURCE_DIMENSION_TEXTURE1D=>2,
                                     D3D11_RESOURCE_DIMENSION_TEXTURE2D=>3,
                                     D3D11_RESOURCE_DIMENSION_TEXTURE3D=>4);

   type LPD3D11_RESOURCE_DIMENSION is access D3D11_RESOURCE_DIMENSION;

   type D3D11_SRV_DIMENSION is (D3D11_SRV_DIMENSION_UNKNOWN,
                                D3D11_SRV_DIMENSION_BUFFER,
                                D3D11_SRV_DIMENSION_TEXTURE1D,
                                D3D11_SRV_DIMENSION_TEXTURE1DARRAY,
                                D3D11_SRV_DIMENSION_TEXTURE2D,
                                D3D11_SRV_DIMENSION_TEXTURE2DARRAY,
                                D3D11_SRV_DIMENSION_TEXTURE2DMS,
                                D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY,
                                D3D11_SRV_DIMENSION_TEXTURE3D,
                                D3D11_SRV_DIMENSION_TEXTURECUBE,
                                D3D11_SRV_DIMENSION_TEXTURECUBEARRAY,
                                D3D11_SRV_DIMENSION_BUFFEREX);
   for D3D11_SRV_DIMENSION use (D3D11_SRV_DIMENSION_UNKNOWN=>0,
                                D3D11_SRV_DIMENSION_BUFFER=>1,
                                D3D11_SRV_DIMENSION_TEXTURE1D=>2,
                                D3D11_SRV_DIMENSION_TEXTURE1DARRAY=>3,
                                D3D11_SRV_DIMENSION_TEXTURE2D=>4,
                                D3D11_SRV_DIMENSION_TEXTURE2DARRAY=>5,
                                D3D11_SRV_DIMENSION_TEXTURE2DMS=>6,
                                D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY=>7,
                                D3D11_SRV_DIMENSION_TEXTURE3D=>8,
                                D3D11_SRV_DIMENSION_TEXTURECUBE=>9,
                                D3D11_SRV_DIMENSION_TEXTURECUBEARRAY=>10,
                                D3D11_SRV_DIMENSION_BUFFEREX=>11);

   type LPD3D11_SRV_DIMENSION is access D3D11_SRV_DIMENSION;

   type D3D11_DSV_DIMENSION is (D3D11_DSV_DIMENSION_UNKNOWN,
                                D3D11_DSV_DIMENSION_TEXTURE1D,
                                D3D11_DSV_DIMENSION_TEXTURE1DARRAY,
                                D3D11_DSV_DIMENSION_TEXTURE2D,
                                D3D11_DSV_DIMENSION_TEXTURE2DARRAY,
                                D3D11_DSV_DIMENSION_TEXTURE2DMS,
                                D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY);
   for D3D11_DSV_DIMENSION use (D3D11_DSV_DIMENSION_UNKNOWN=>0,
                                D3D11_DSV_DIMENSION_TEXTURE1D=>1,
                                D3D11_DSV_DIMENSION_TEXTURE1DARRAY=>2,
                                D3D11_DSV_DIMENSION_TEXTURE2D=>3,
                                D3D11_DSV_DIMENSION_TEXTURE2DARRAY=>4,
                                D3D11_DSV_DIMENSION_TEXTURE2DMS=>5,
                                D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY=>6);

   type LPD3D11_DSV_DIMENSION is access D3D11_DSV_DIMENSION;

   type D3D11_RTV_DIMENSION is (D3D11_RTV_DIMENSION_UNKNOWN,
                                D3D11_RTV_DIMENSION_BUFFER,
                                D3D11_RTV_DIMENSION_TEXTURE1D,
                                D3D11_RTV_DIMENSION_TEXTURE1DARRAY,
                                D3D11_RTV_DIMENSION_TEXTURE2D,
                                D3D11_RTV_DIMENSION_TEXTURE2DARRAY,
                                D3D11_RTV_DIMENSION_TEXTURE2DMS,
                                D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY,
                                D3D11_RTV_DIMENSION_TEXTURE3D);
   for D3D11_RTV_DIMENSION use (D3D11_RTV_DIMENSION_UNKNOWN=>0,
                                D3D11_RTV_DIMENSION_BUFFER=>1,
                                D3D11_RTV_DIMENSION_TEXTURE1D=>2,
                                D3D11_RTV_DIMENSION_TEXTURE1DARRAY=>3,
                                D3D11_RTV_DIMENSION_TEXTURE2D=>4,
                                D3D11_RTV_DIMENSION_TEXTURE2DARRAY=>5,
                                D3D11_RTV_DIMENSION_TEXTURE2DMS=>6,
                                D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY=>7,
                                D3D11_RTV_DIMENSION_TEXTURE3D=>8);

   type LPD3D11_RTV_DIMENSION is access D3D11_RTV_DIMENSION;

   type D3D11_UAV_DIMENSION is (D3D11_UAV_DIMENSION_UNKNOWN,
                                D3D11_UAV_DIMENSION_BUFFER,
                                D3D11_UAV_DIMENSION_TEXTURE1D,
                                D3D11_UAV_DIMENSION_TEXTURE1DARRAY,
                                D3D11_UAV_DIMENSION_TEXTURE2D,
                                D3D11_UAV_DIMENSION_TEXTURE2DARRAY,
                                D3D11_UAV_DIMENSION_TEXTURE3D);
   for D3D11_UAV_DIMENSION use (D3D11_UAV_DIMENSION_UNKNOWN=>0,
                                D3D11_UAV_DIMENSION_BUFFER=>1,
                                D3D11_UAV_DIMENSION_TEXTURE1D=>2,
                                D3D11_UAV_DIMENSION_TEXTURE1DARRAY=>3,
                                D3D11_UAV_DIMENSION_TEXTURE2D=>4,
                                D3D11_UAV_DIMENSION_TEXTURE2DARRAY=>5,
                                D3D11_UAV_DIMENSION_TEXTURE3D=>8);

   type LPD3D11_UAV_DIMENSION is access D3D11_UAV_DIMENSION;

   type D3D11_USAGE is (D3D11_USAGE_DEFAULT,
                        D3D11_USAGE_IMMUTABLE,
                        D3D11_USAGE_DYNAMIC,
                        D3D11_USAGE_STAGING);
   for D3D11_USAGE use (D3D11_USAGE_DEFAULT=>0,
                        D3D11_USAGE_IMMUTABLE=>1,
                        D3D11_USAGE_DYNAMIC=>2,
                        D3D11_USAGE_STAGING=>3);

   type LPD3D11_USAGE is access D3D11_USAGE;

   type D3D11_BIND_FLAG is (D3D11_BIND_VERTEX_BUFFER,
                            D3D11_BIND_INDEX_BUFFER,
                            D3D11_BIND_CONSTANT_BUFFER,
                            D3D11_BIND_SHADER_RESOURCE,
                            D3D11_BIND_STREAM_OUTPUT,
                            D3D11_BIND_RENDER_TARGET,
                            D3D11_BIND_DEPTH_STENCIL,
                            D3D11_BIND_UNORDERED_ACCESS) with size=>32;
   for D3D11_BIND_FLAG use (D3D11_BIND_VERTEX_BUFFER=>16#1#,
                            D3D11_BIND_INDEX_BUFFER=>16#2#,
                            D3D11_BIND_CONSTANT_BUFFER=>16#4#,
                            D3D11_BIND_SHADER_RESOURCE=>16#8#,
                            D3D11_BIND_STREAM_OUTPUT=>16#10#,
                            D3D11_BIND_RENDER_TARGET=>16#20#,
                            D3D11_BIND_DEPTH_STENCIL=>16#40#,
                            D3D11_BIND_UNORDERED_ACCESS=>16#80#);

   type LPD3D11_BIND_FLAG is access D3D11_BIND_FLAG;

   type D3D11_CPU_ACCESS_FLAG is (D3D11_CPU_ACCESS_WRITE,
                                  D3D11_CPU_ACCESS_READ) with size=>32;
   for D3D11_CPU_ACCESS_FLAG use (D3D11_CPU_ACCESS_WRITE=>16#10000#,
                                  D3D11_CPU_ACCESS_READ=>16#20000#);

   type LPD3D11_CPU_ACCESS_FLAG is access D3D11_CPU_ACCESS_FLAG;

   type D3D11_RESOURCE_MISC_FLAG is (D3D11_RESOURCE_MISC_GENERATE_MIPS,
                                     D3D11_RESOURCE_MISC_SHARED,
                                     D3D11_RESOURCE_MISC_TEXTURECUBE,
                                     D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS,
                                     D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS,
                                     D3D11_RESOURCE_MISC_BUFFER_STRUCTURED,
                                     D3D11_RESOURCE_MISC_RESOURCE_CLAMP,
                                     D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX,
                                     D3D11_RESOURCE_MISC_GDI_COMPATIBLE) with size=>32;
   for D3D11_RESOURCE_MISC_FLAG use (D3D11_RESOURCE_MISC_GENERATE_MIPS=>16#1#,
                                     D3D11_RESOURCE_MISC_SHARED=>16#2#,
                                     D3D11_RESOURCE_MISC_TEXTURECUBE=>16#4#,
                                     D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS=>16#10#,
                                     D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS=>16#20#,
                                     D3D11_RESOURCE_MISC_BUFFER_STRUCTURED=>16#40#,
                                     D3D11_RESOURCE_MISC_RESOURCE_CLAMP=>16#80#,
                                     D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX=>16#100#,
                                     D3D11_RESOURCE_MISC_GDI_COMPATIBLE=>16#200#);

   type LPD3D11_RESOURCE_MISC_FLAG is access D3D11_RESOURCE_MISC_FLAG;

   type D3D11_MAP is (D3D11_MAP_READ,
                      D3D11_MAP_WRITE,
                      D3D11_MAP_READ_WRITE,
                      D3D11_MAP_WRITE_DISCARD,
                      D3D11_MAP_WRITE_NO_OVERWRITE);
   for D3D11_MAP use (D3D11_MAP_READ=>1,
                      D3D11_MAP_WRITE=>2,
                      D3D11_MAP_READ_WRITE=>3,
                      D3D11_MAP_WRITE_DISCARD=>4,
                      D3D11_MAP_WRITE_NO_OVERWRITE=>5);

   type LPD3D11_MAP is access D3D11_MAP;

   type D3D11_MAP_FLAG is (D3D11_MAP_FLAG_DO_NOT_WAIT) with size=>32;
   for D3D11_MAP_FLAG use (D3D11_MAP_FLAG_DO_NOT_WAIT=>16#100000#);

   type LPD3D11_MAP_FLAG is access D3D11_MAP_FLAG;

   type D3D11_RAISE_FLAG is (D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR) with size=>32;
   for D3D11_RAISE_FLAG use (D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR=>16#1#);

   type LPD3D11_RAISE_FLAG is access D3D11_RAISE_FLAG;

   type D3D11_CLEAR_FLAG is (D3D11_CLEAR_DEPTH,
                             D3D11_CLEAR_STENCIL) with size=>32;
   for D3D11_CLEAR_FLAG use (D3D11_CLEAR_DEPTH=>16#1#,
                             D3D11_CLEAR_STENCIL=>16#2#);

   type LPD3D11_CLEAR_FLAG is access D3D11_CLEAR_FLAG;

   subtype D3D11_RECT is RECT;
   type LPD3D11_RECT is access all D3D11_RECT;
   type LPCD3D11_RECT is access constant D3D11_RECT;

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

   type LPD3D11_BOX is access all D3D11_BOX;
   type LPCD3D11_BOX is access constant D3D11_BOX;
   

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

   type D3D11_COMPARISON_FUNC is (D3D11_COMPARISON_NEVER,
                                  D3D11_COMPARISON_LESS,
                                  D3D11_COMPARISON_EQUAL,
                                  D3D11_COMPARISON_LESS_EQUAL,
                                  D3D11_COMPARISON_GREATER,
                                  D3D11_COMPARISON_NOT_EQUAL,
                                  D3D11_COMPARISON_GREATER_EQUAL,
                                  D3D11_COMPARISON_ALWAYS);
   for D3D11_COMPARISON_FUNC use (D3D11_COMPARISON_NEVER=>1,
                                  D3D11_COMPARISON_LESS=>2,
                                  D3D11_COMPARISON_EQUAL=>3,
                                  D3D11_COMPARISON_LESS_EQUAL=>4,
                                  D3D11_COMPARISON_GREATER=>5,
                                  D3D11_COMPARISON_NOT_EQUAL=>6,
                                  D3D11_COMPARISON_GREATER_EQUAL=>7,
                                  D3D11_COMPARISON_ALWAYS=>8);

   type LPD3D11_COMPARISON_FUNC is access D3D11_COMPARISON_FUNC;

   type D3D11_DEPTH_WRITE_MASK is (D3D11_DEPTH_WRITE_MASK_ZERO,
                                   D3D11_DEPTH_WRITE_MASK_ALL);
   for D3D11_DEPTH_WRITE_MASK use (D3D11_DEPTH_WRITE_MASK_ZERO=>0,
                                   D3D11_DEPTH_WRITE_MASK_ALL=>1);

   type LPD3D11_DEPTH_WRITE_MASK is access D3D11_DEPTH_WRITE_MASK;

   type D3D11_STENCIL_OP is (D3D11_STENCIL_OP_KEEP,
                             D3D11_STENCIL_OP_ZERO,
                             D3D11_STENCIL_OP_REPLACE,
                             D3D11_STENCIL_OP_INCR_SAT,
                             D3D11_STENCIL_OP_DECR_SAT,
                             D3D11_STENCIL_OP_INVERT,
                             D3D11_STENCIL_OP_INCR,
                             D3D11_STENCIL_OP_DECR);
   for D3D11_STENCIL_OP use (D3D11_STENCIL_OP_KEEP=>1,
                             D3D11_STENCIL_OP_ZERO=>2,
                             D3D11_STENCIL_OP_REPLACE=>3,
                             D3D11_STENCIL_OP_INCR_SAT=>4,
                             D3D11_STENCIL_OP_DECR_SAT=>5,
                             D3D11_STENCIL_OP_INVERT=>6,
                             D3D11_STENCIL_OP_INCR=>7,
                             D3D11_STENCIL_OP_DECR=>8);

   type LPD3D11_STENCIL_OP is access D3D11_STENCIL_OP;

   type D3D11_DEPTH_STENCILOP_DESC is record
      StencilFailOp:D3D11_STENCIL_OP;
      StencilDepthFailOp:D3D11_STENCIL_OP;
      StencilPassOp:D3D11_STENCIL_OP;
      StencilFunc:D3D11_COMPARISON_FUNC;
   end record;

   type LPD3D11_DEPTH_STENCILOP_DESC is access all D3D11_DEPTH_STENCILOP_DESC;

   type D3D11_DEPTH_STENCIL_DESC is record
      DepthEnable:BOOL;
      DepthWriteMask:D3D11_DEPTH_WRITE_MASK;
      DepthFunc:D3D11_COMPARISON_FUNC;
      StencilEnable:BOOL;
      StencilReadMask:UINT8;
      StencilWriteMask:UINT8;
      FrontFace:D3D11_DEPTH_STENCILOP_DESC;
      BackFace:D3D11_DEPTH_STENCILOP_DESC;
   end record;

   type LPD3D11_DEPTH_STENCIL_DESC is access all D3D11_DEPTH_STENCIL_DESC;
   type LPCD3D11_DEPTH_STENCIL_DESC is access constant D3D11_DEPTH_STENCIL_DESC;



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

   type D3D11_BLEND is (D3D11_BLEND_ZERO,
                        D3D11_BLEND_ONE,
                        D3D11_BLEND_SRC_COLOR,
                        D3D11_BLEND_INV_SRC_COLOR,
                        D3D11_BLEND_SRC_ALPHA,
                        D3D11_BLEND_INV_SRC_ALPHA,
                        D3D11_BLEND_DEST_ALPHA,
                        D3D11_BLEND_INV_DEST_ALPHA,
                        D3D11_BLEND_DEST_COLOR,
                        D3D11_BLEND_INV_DEST_COLOR,
                        D3D11_BLEND_SRC_ALPHA_SAT,
                        D3D11_BLEND_BLEND_FACTOR,
                        D3D11_BLEND_INV_BLEND_FACTOR,
                        D3D11_BLEND_SRC1_COLOR,
                        D3D11_BLEND_INV_SRC1_COLOR,
                        D3D11_BLEND_SRC1_ALPHA,
                        D3D11_BLEND_INV_SRC1_ALPHA);
   for D3D11_BLEND use (D3D11_BLEND_ZERO=>1,
                        D3D11_BLEND_ONE=>2,
                        D3D11_BLEND_SRC_COLOR=>3,
                        D3D11_BLEND_INV_SRC_COLOR=>4,
                        D3D11_BLEND_SRC_ALPHA=>5,
                        D3D11_BLEND_INV_SRC_ALPHA=>6,
                        D3D11_BLEND_DEST_ALPHA=>7,
                        D3D11_BLEND_INV_DEST_ALPHA=>8,
                        D3D11_BLEND_DEST_COLOR=>9,
                        D3D11_BLEND_INV_DEST_COLOR=>10,
                        D3D11_BLEND_SRC_ALPHA_SAT=>11,
                        D3D11_BLEND_BLEND_FACTOR=>14,
                        D3D11_BLEND_INV_BLEND_FACTOR=>15,
                        D3D11_BLEND_SRC1_COLOR=>16,
                        D3D11_BLEND_INV_SRC1_COLOR=>17,
                        D3D11_BLEND_SRC1_ALPHA=>18,
                        D3D11_BLEND_INV_SRC1_ALPHA=>19);

   type LPD3D11_BLEND is access D3D11_BLEND;

   type D3D11_BLEND_OP is (D3D11_BLEND_OP_ADD,
                           D3D11_BLEND_OP_SUBTRACT,
                           D3D11_BLEND_OP_REV_SUBTRACT,
                           D3D11_BLEND_OP_MIN,
                           D3D11_BLEND_OP_MAX);
   for D3D11_BLEND_OP use (D3D11_BLEND_OP_ADD=>1,
                           D3D11_BLEND_OP_SUBTRACT=>2,
                           D3D11_BLEND_OP_REV_SUBTRACT=>3,
                           D3D11_BLEND_OP_MIN=>4,
                           D3D11_BLEND_OP_MAX=>5);

   type LPD3D11_BLEND_OP is access D3D11_BLEND_OP;

   type D3D11_COLOR_WRITE_ENABLE is (D3D11_COLOR_WRITE_ENABLE_RED,
                                     D3D11_COLOR_WRITE_ENABLE_GREEN,
                                     D3D11_COLOR_WRITE_ENABLE_BLUE,
                                     D3D11_COLOR_WRITE_ENABLE_ALPHA,
                                     D3D11_COLOR_WRITE_ENABLE_ALL);
   for D3D11_COLOR_WRITE_ENABLE use (D3D11_COLOR_WRITE_ENABLE_RED=>1,
                                     D3D11_COLOR_WRITE_ENABLE_GREEN=>2,
                                     D3D11_COLOR_WRITE_ENABLE_BLUE=>4,
                                     D3D11_COLOR_WRITE_ENABLE_ALPHA=>8,
                                     D3D11_COLOR_WRITE_ENABLE_ALL=>(2#1111#)
                                    );

   type LPD3D11_COLOR_WRITE_ENABLE is access D3D11_COLOR_WRITE_ENABLE;

   type D3D11_RENDER_TARGET_BLEND_DESC is record
      BlendEnable:BOOL;
      SrcBlend:D3D11_BLEND;
      DestBlend:D3D11_BLEND;
      BlendOp:D3D11_BLEND_OP;
      SrcBlendAlpha:D3D11_BLEND;
      DestBlendAlpha:D3D11_BLEND;
      BlendOpAlpha:D3D11_BLEND_OP;
      RenderTargetWriteMask:UINT8;
   end record;
   type D3D11_RENDER_TARGET_BLEND_DESC_Array is array (Natural range<>) of D3D11_RENDER_TARGET_BLEND_DESC;
   
   type LPD3D11_RENDER_TARGET_BLEND_DESC is access all D3D11_RENDER_TARGET_BLEND_DESC;

   type D3D11_BLEND_DESC is record
      AlphaToCoverageEnable:BOOL;
      IndependentBlendEnable:BOOL;
      RenderTarget:D3D11_RENDER_TARGET_BLEND_DESC_Array(0..7);
   end record;

   type LPD3D11_BLEND_DESC is access all D3D11_BLEND_DESC;
   type LPCD3D11_BLEND_DESC is access constant D3D11_BLEND_DESC;


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

   type D3D11_RASTERIZER_DESC is record
      FillMode:D3D11_FILL_MODE;
      CullMode:D3D11_CULL_MODE;
      FrontCounterClockwise:BOOL;
      DepthBias:INT;
      DepthBiasClamp:FLOAT;
      SlopeScaledDepthBias:FLOAT;
      DepthClipEnable:BOOL;
      ScissorEnable:BOOL;
      MultisampleEnable:BOOL;
      AntialiasedLineEnable:BOOL;
   end record;

   type LPD3D11_RASTERIZER_DESC is access all D3D11_RASTERIZER_DESC;
   type LPCD3D11_RASTERIZER_DESC is access constant D3D11_RASTERIZER_DESC;

   

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

   function D3D11CalcSubresource(MipSlice:UINT;ArraySlice:UINT;MipLevels:UINT) return UINT with Import,Convention=>stdcall,external_name=>"D3D11CalcSubresource";

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

   type LPD3D11_SUBRESOURCE_DATA is access all D3D11_SUBRESOURCE_DATA;
   type LPCD3D11_SUBRESOURCE_DATA is access constant D3D11_SUBRESOURCE_DATA;

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

   type LPD3D11_MAPPED_SUBRESOURCE is access all D3D11_MAPPED_SUBRESOURCE;

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

   type D3D11_BUFFER_DESC is record
      ByteWidth:UINT;
      Usage:D3D11_USAGE;
      BindFlags:UINT;
      CPUAccessFlags:UINT;
      MiscFlags:UINT;
      StructureByteStride:UINT;
   end record;

   type LPD3D11_BUFFER_DESC is access all D3D11_BUFFER_DESC;
   type LPCD3D11_BUFFER_DESC is access constant D3D11_BUFFER_DESC;


   type ID3D11Buffer is record
      QueryInterface:access function(This:LPID3D11Buffer;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D11Buffer) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D11Buffer) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D11Buffer;ppDevice:LPLPID3D11Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D11Buffer;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D11Buffer;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D11Buffer;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetType:access function(This:LPID3D11Buffer;pResourceDimension:LPD3D11_RESOURCE_DIMENSION) return void with Convention=>Stdcall;
      SetEvictionPriority:access function(This:LPID3D11Buffer;EvictionPriority:UINT) return void with Convention=>Stdcall;
      GetEvictionPriority:access function(This:LPID3D11Buffer) return UINT with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D11Buffer;pDesc:LPD3D11_BUFFER_DESC) return void with Convention=>Stdcall;
   end record;

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

   type LPD3D11_TEXTURE1D_DESC is access all D3D11_TEXTURE1D_DESC;
   type LPCD3D11_TEXTURE1D_DESC is access constant D3D11_TEXTURE1D_DESC;



   type ID3D11Texture1D is record
      QueryInterface:access function(This:LPID3D11Texture1D;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D11Texture1D) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D11Texture1D) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D11Texture1D;ppDevice:LPLPID3D11Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D11Texture1D;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D11Texture1D;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D11Texture1D;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetType:access function(This:LPID3D11Texture1D;pResourceDimension:LPD3D11_RESOURCE_DIMENSION) return void with Convention=>Stdcall;
      SetEvictionPriority:access function(This:LPID3D11Texture1D;EvictionPriority:UINT) return void with Convention=>Stdcall;
      GetEvictionPriority:access function(This:LPID3D11Texture1D) return UINT with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D11Texture1D;pDesc:LPD3D11_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 D3D11_TEXTURE2D_DESC is record
      Width:UINT;
      Height:UINT;
      MipLevels:UINT;
      ArraySize:UINT;
      Format:DXGI_FORMAT;
      SampleDesc:DXGI_SAMPLE_DESC;
      Usage:D3D11_USAGE;
      BindFlags:UINT;
      CPUAccessFlags:UINT;
      MiscFlags:UINT;
   end record;

   type LPD3D11_TEXTURE2D_DESC is access all D3D11_TEXTURE2D_DESC;
   type LPCD3D11_TEXTURE2D_DESC is access constant D3D11_TEXTURE2D_DESC;

   type ID3D11Texture2D is record
      QueryInterface:access function(This:LPID3D11Texture2D;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D11Texture2D) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D11Texture2D) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D11Texture2D;ppDevice:LPLPID3D11Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D11Texture2D;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D11Texture2D;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D11Texture2D;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetType:access function(This:LPID3D11Texture2D;pResourceDimension:LPD3D11_RESOURCE_DIMENSION) return void with Convention=>Stdcall;
      SetEvictionPriority:access function(This:LPID3D11Texture2D;EvictionPriority:UINT) return void with Convention=>Stdcall;
      GetEvictionPriority:access function(This:LPID3D11Texture2D) return UINT with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D11Texture2D;pDesc:LPD3D11_TEXTURE2D_DESC) return void with Convention=>Stdcall;
   end record;

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

   type LPD3D11_TEXTURE3D_DESC is access all D3D11_TEXTURE3D_DESC;
   type LPCD3D11_TEXTURE3D_DESC is access constant D3D11_TEXTURE3D_DESC;

   type ID3D11Texture3D is record
      QueryInterface:access function(This:LPID3D11Texture3D;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D11Texture3D) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D11Texture3D) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D11Texture3D;ppDevice:LPLPID3D11Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D11Texture3D;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D11Texture3D;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D11Texture3D;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetType:access function(This:LPID3D11Texture3D;pResourceDimension:LPD3D11_RESOURCE_DIMENSION) return void with Convention=>Stdcall;
      SetEvictionPriority:access function(This:LPID3D11Texture3D;EvictionPriority:UINT) return void with Convention=>Stdcall;
      GetEvictionPriority:access function(This:LPID3D11Texture3D) return UINT with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D11Texture3D;pDesc:LPD3D11_TEXTURE3D_DESC) return void with Convention=>Stdcall;
   end record;

   type D3D11_TEXTURECUBE_FACE is (D3D11_TEXTURECUBE_FACE_POSITIVE_X,
                                   D3D11_TEXTURECUBE_FACE_NEGATIVE_X,
                                   D3D11_TEXTURECUBE_FACE_POSITIVE_Y,
                                   D3D11_TEXTURECUBE_FACE_NEGATIVE_Y,
                                   D3D11_TEXTURECUBE_FACE_POSITIVE_Z,
                                   D3D11_TEXTURECUBE_FACE_NEGATIVE_Z);
   for D3D11_TEXTURECUBE_FACE use (D3D11_TEXTURECUBE_FACE_POSITIVE_X=>0,
                                   D3D11_TEXTURECUBE_FACE_NEGATIVE_X=>1,
                                   D3D11_TEXTURECUBE_FACE_POSITIVE_Y=>2,
                                   D3D11_TEXTURECUBE_FACE_NEGATIVE_Y=>3,
                                   D3D11_TEXTURECUBE_FACE_POSITIVE_Z=>4,
                                   D3D11_TEXTURECUBE_FACE_NEGATIVE_Z=>5);

   type LPD3D11_TEXTURECUBE_FACE is access D3D11_TEXTURECUBE_FACE;

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

   type D3D11_BUFFEREX_SRV_FLAG is (D3D11_BUFFEREX_SRV_FLAG_RAW);
   for D3D11_BUFFEREX_SRV_FLAG use (D3D11_BUFFEREX_SRV_FLAG_RAW=>16#1#);

   type LPD3D11_BUFFEREX_SRV_FLAG is access D3D11_BUFFEREX_SRV_FLAG;

   type D3D11_BUFFEREX_SRV is record
      FirstElement:UINT;
      NumElements:UINT;
      Flags:UINT;
   end record;

   type LPD3D11_BUFFEREX_SRV is access all D3D11_BUFFEREX_SRV;

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

   type LPD3D11_TEX1D_SRV is access all D3D11_TEX1D_SRV;

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

   type LPD3D11_TEX1D_ARRAY_SRV is access all D3D11_TEX1D_ARRAY_SRV;

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

   type LPD3D11_TEX2D_SRV is access all D3D11_TEX2D_SRV;

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

   type LPD3D11_TEX2D_ARRAY_SRV is access all D3D11_TEX2D_ARRAY_SRV;

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

   type LPD3D11_TEX3D_SRV is access all D3D11_TEX3D_SRV;

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

   type LPD3D11_TEXCUBE_SRV is access all D3D11_TEXCUBE_SRV;

   type D3D11_TEXCUBE_ARRAY_SRV is record
      MostDetailedMip:UINT;
      MipLevels:UINT;
      First2DArrayFace:UINT;
      NumCubes:UINT;
   end record;

   type LPD3D11_TEXCUBE_ARRAY_SRV is access all D3D11_TEXCUBE_ARRAY_SRV;

   type D3D11_TEX2DMS_SRV is record
      UnusedField_NothingToDefine:UINT;
   end record;

   type LPD3D11_TEX2DMS_SRV is access all D3D11_TEX2DMS_SRV;

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

   type LPD3D11_TEX2DMS_ARRAY_SRV is access all D3D11_TEX2DMS_ARRAY_SRV;
   
   
   type D3D11_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 LPD3D11_BUFFER_RTV is access all D3D11_BUFFER_RTV;
   
   type D3D11_TEX1D_RTV is record
      MipSlice:UINT;
   end record;

   type LPD3D11_TEX1D_RTV is access all D3D11_TEX1D_RTV;

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

   type LPD3D11_TEX1D_ARRAY_RTV is access all D3D11_TEX1D_ARRAY_RTV;

   type D3D11_TEX2D_RTV is record
      MipSlice:UINT;
   end record;

   type LPD3D11_TEX2D_RTV is access all D3D11_TEX2D_RTV;

   type D3D11_TEX2DMS_RTV is record
      UnusedField_NothingToDefine:UINT;
   end record;

   type LPD3D11_TEX2DMS_RTV is access all D3D11_TEX2DMS_RTV;

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

   type LPD3D11_TEX2D_ARRAY_RTV is access all D3D11_TEX2D_ARRAY_RTV;

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

   type LPD3D11_TEX2DMS_ARRAY_RTV is access all D3D11_TEX2DMS_ARRAY_RTV;

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

   type LPD3D11_TEX3D_RTV is access all D3D11_TEX3D_RTV;
   
   
   type D3D11_RENDER_TARGET_VIEW_DESC(i:Integer:=0) is record
      Format:DXGI_FORMAT;
      ViewDimension:D3D11_RTV_DIMENSION;
      case i is
         when 0=>
            Buffer:D3D11_BUFFER_RTV;
         when 1=>
            Texture1D:D3D11_TEX1D_RTV;
         when 2=>
            Texture1DArray:D3D11_TEX1D_ARRAY_RTV;
         when 3=>
            Texture2D:D3D11_TEX2D_RTV;
         when 4=>
            Texture2DArray:D3D11_TEX2D_ARRAY_RTV;
         when 5=>
            Texture2DMS:D3D11_TEX2DMS_RTV;
         when 6=>
            Texture2DMSArray:D3D11_TEX2DMS_ARRAY_RTV;
         when others=>
            Texture3D:D3D11_TEX3D_RTV;
      end case;
   end record with Unchecked_Union;
   type LPD3D11_RENDER_TARGET_VIEW_DESC is access all D3D11_RENDER_TARGET_VIEW_DESC;
   type LPCD3D11_RENDER_TARGET_VIEW_DESC is access constant D3D11_RENDER_TARGET_VIEW_DESC;
   
   type D3D11_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 D3D11_SHADER_RESOURCE_VIEW_DESC(i:Integer:=0) is record
      Format:DXGI_FORMAT;
      ViewDimension:D3D11_SRV_DIMENSION;
      case i is
         when 0=>
            Buffer:D3D11_BUFFER_SRV;
         when 1=>
            Texture1D:D3D11_TEX1D_SRV;
         when 2=>
            Texture1DArray:D3D11_TEX1D_ARRAY_SRV;
         when 3=>
            Texture2D:D3D11_TEX2D_SRV;
         when 4=>
            Texture2DArray:D3D11_TEX2D_ARRAY_SRV;
         when 5=>
            Texture2DMS:D3D11_TEX2DMS_SRV;
         when 6=>
            Texture2DMSArray:D3D11_TEX2DMS_ARRAY_SRV;
         when 7=>
            Texture3D:D3D11_TEX3D_SRV;
         when others=>
            TextureCube:D3D11_TEXCUBE_SRV;
      end case;
   end record with Unchecked_Union;
   type LPD3D11_SHADER_RESOURCE_VIEW_DESC is access all D3D11_SHADER_RESOURCE_VIEW_DESC;
   type LPCD3D11_SHADER_RESOURCE_VIEW_DESC is access constant D3D11_SHADER_RESOURCE_VIEW_DESC;
   

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

--     type D3D11_TEX1D_RTV is record
--        MipSlice:UINT;
--     end record;
--  
--     type LPD3D11_TEX1D_RTV is access all D3D11_TEX1D_RTV;
--  
--     type D3D11_TEX1D_ARRAY_RTV is record
--        MipSlice:UINT;
--        FirstArraySlice:UINT;
--        ArraySize:UINT;
--     end record;
--  
--     type LPD3D11_TEX1D_ARRAY_RTV is access all D3D11_TEX1D_ARRAY_RTV;
--  
--     type D3D11_TEX2D_RTV is record
--        MipSlice:UINT;
--     end record;
--  
--     type LPD3D11_TEX2D_RTV is access all D3D11_TEX2D_RTV;
--  
--     type D3D11_TEX2DMS_RTV is record
--        UnusedField_NothingToDefine:UINT;
--     end record;
--  
--     type LPD3D11_TEX2DMS_RTV is access all D3D11_TEX2DMS_RTV;
--  
--     type D3D11_TEX2D_ARRAY_RTV is record
--        MipSlice:UINT;
--        FirstArraySlice:UINT;
--        ArraySize:UINT;
--     end record;
--  
--     subtype D3D11_TEX2D_ARRAY_RTV is D3D11_TEX2D_ARRAY_RTV;
--  
--     type D3D11_TEX2DMS_ARRAY_RTV is record
--        FirstArraySlice:UINT;
--        ArraySize:UINT;
--     end record;
--  
--     type LPD3D11_TEX2DMS_ARRAY_RTV is access all D3D11_TEX2DMS_ARRAY_RTV;
--  
--     type D3D11_TEX3D_RTV is record
--        MipSlice:UINT;
--        FirstWSlice:UINT;
--        WSize:UINT;
--     end record;
--  
--     type LPD3D11_TEX3D_RTV is access all D3D11_TEX3D_RTV;

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

   type D3D11_TEX1D_DSV is record
      MipSlice:UINT;
   end record;

   type LPD3D11_TEX1D_DSV is access all D3D11_TEX1D_DSV;

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

   type LPD3D11_TEX1D_ARRAY_DSV is access all D3D11_TEX1D_ARRAY_DSV;

   type D3D11_TEX2D_DSV is record
      MipSlice:UINT;
   end record;

   type LPD3D11_TEX2D_DSV is access all D3D11_TEX2D_DSV;

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

   type LPD3D11_TEX2D_ARRAY_DSV is access all D3D11_TEX2D_ARRAY_DSV;

   type D3D11_TEX2DMS_DSV is record
      UnusedField_NothingToDefine:UINT;
   end record;

   type LPD3D11_TEX2DMS_DSV is access all D3D11_TEX2DMS_DSV;

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

   type LPD3D11_TEX2DMS_ARRAY_DSV is access all D3D11_TEX2DMS_ARRAY_DSV;

   type D3D11_DSV_FLAG is (D3D11_DSV_READ_ONLY_DEPTH,
                           D3D11_DSV_READ_ONLY_STENCIL) with size=>32;
   for D3D11_DSV_FLAG use (D3D11_DSV_READ_ONLY_DEPTH=>16#1#,
                           D3D11_DSV_READ_ONLY_STENCIL=>16#2#);

   type LPD3D11_DSV_FLAG is access D3D11_DSV_FLAG;
   
   type D3D11_DEPTH_STENCIL_VIEW_DESC(i:Integer:=0) is record
      Format:DXGI_FORMAT;
      ViewDimension:D3D11_DSV_DIMENSION;
      case i is
         when 0=>
            Texture1D:D3D11_TEX1D_DSV;
         when 1=>
            Texture1DArray:D3D11_TEX1D_ARRAY_DSV;
         when 2=>
            Texture2D:D3D11_TEX2D_DSV;
         when 3=>
            Texture2DArray:D3D11_TEX2D_ARRAY_DSV;
         when 4=>
            Texture2DMS:D3D11_TEX2DMS_DSV;
         when 5=>
            Texture2DMSArray:D3D11_TEX2DMS_ARRAY_DSV;
         when others=>
            null;
      end case;
   end record with Unchecked_Union;
   type LPD3D11_DEPTH_STENCIL_VIEW_DESC is access all D3D11_DEPTH_STENCIL_VIEW_DESC;
   type LPCD3D11_DEPTH_STENCIL_VIEW_DESC is access constant D3D11_DEPTH_STENCIL_VIEW_DESC;
   

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

   type D3D11_BUFFER_UAV_FLAG is (D3D11_BUFFER_UAV_FLAG_RAW,
                                  D3D11_BUFFER_UAV_FLAG_APPEND,
                                  D3D11_BUFFER_UAV_FLAG_COUNTER);
   for D3D11_BUFFER_UAV_FLAG use (D3D11_BUFFER_UAV_FLAG_RAW=>16#1#,
                                  D3D11_BUFFER_UAV_FLAG_APPEND=>16#2#,
                                  D3D11_BUFFER_UAV_FLAG_COUNTER=>16#4#);

   type LPD3D11_BUFFER_UAV_FLAG is access D3D11_BUFFER_UAV_FLAG;

   type D3D11_BUFFER_UAV is record
      FirstElement:UINT;
      NumElements:UINT;
      Flags:UINT;
   end record;

   type LPD3D11_BUFFER_UAV is access all D3D11_BUFFER_UAV;

   type D3D11_TEX1D_UAV is record
      MipSlice:UINT;
   end record;

   type LPD3D11_TEX1D_UAV is access all D3D11_TEX1D_UAV;

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

   type LPD3D11_TEX1D_ARRAY_UAV is access all D3D11_TEX1D_ARRAY_UAV;

   type D3D11_TEX2D_UAV is record
      MipSlice:UINT;
   end record;

   type LPD3D11_TEX2D_UAV is access all D3D11_TEX2D_UAV;

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

   type LPD3D11_TEX2D_ARRAY_UAV is access all D3D11_TEX2D_ARRAY_UAV;

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

   type LPD3D11_TEX3D_UAV is access all D3D11_TEX3D_UAV;
   
   
   type D3D11_UNORDERED_ACCESS_VIEW_DESC(i:Integer:=0) is record
      Format:DXGI_FORMAT;
      ViewDimension:D3D11_UAV_DIMENSION;
      case i is
         when 0=>
            Buffer:D3D11_BUFFER_UAV;
         when 1=>
            Texture1D:D3D11_TEX1D_UAV;
         when 2=>
            Texture1DArray:D3D11_TEX1D_ARRAY_UAV;
         when 3=>
            Texture2D:D3D11_TEX2D_UAV;
         when 4=>
            Texture2DArray:D3D11_TEX2D_ARRAY_UAV;
         when 5=>
            Texture3D:D3D11_TEX3D_UAV;
         when others=>
            null;
      end case;
   end record with Unchecked_Union;
   type LPD3D11_UNORDERED_ACCESS_VIEW_DESC is access all D3D11_UNORDERED_ACCESS_VIEW_DESC;
   type LPCD3D11_UNORDERED_ACCESS_VIEW_DESC is access constant D3D11_UNORDERED_ACCESS_VIEW_DESC;
   

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

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

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

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

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

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

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

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

   type D3D11_FILTER is (D3D11_FILTER_MIN_MAG_MIP_POINT,
                         D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR,
                         D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT,
                         D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR,
                         D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT,
                         D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR,
                         D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT,
                         D3D11_FILTER_MIN_MAG_MIP_LINEAR,
                         D3D11_FILTER_ANISOTROPIC,
                         D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT,
                         D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR,
                         D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT,
                         D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR,
                         D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT,
                         D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR,
                         D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT,
                         D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR,
                         D3D11_FILTER_COMPARISON_ANISOTROPIC);
   for D3D11_FILTER use (D3D11_FILTER_MIN_MAG_MIP_POINT=>0,
                         D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR=>16#1#,
                         D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT=>16#4#,
                         D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR=>16#5#,
                         D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT=>16#10#,
                         D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR=>16#11#,
                         D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT=>16#14#,
                         D3D11_FILTER_MIN_MAG_MIP_LINEAR=>16#15#,
                         D3D11_FILTER_ANISOTROPIC=>16#55#,
                         D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT=>16#80#,
                         D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR=>16#81#,
                         D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT=>16#84#,
                         D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR=>16#85#,
                         D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT=>16#90#,
                         D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR=>16#91#,
                         D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT=>16#94#,
                         D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR=>16#95#,
                         D3D11_FILTER_COMPARISON_ANISOTROPIC=>16#d5#);

   type LPD3D11_FILTER is access D3D11_FILTER;

   type D3D11_FILTER_TYPE is (D3D11_FILTER_TYPE_POINT,
                              D3D11_FILTER_TYPE_LINEAR);
   for D3D11_FILTER_TYPE use (D3D11_FILTER_TYPE_POINT=>0,
                              D3D11_FILTER_TYPE_LINEAR=>1);

   type LPD3D11_FILTER_TYPE is access D3D11_FILTER_TYPE;

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

   D3D11_MIN_FILTER_SHIFT : constant := ( 4 );

   D3D11_MAG_FILTER_SHIFT : constant := ( 2 );

   D3D11_MIP_FILTER_SHIFT : constant := ( 0 );

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

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

   -- #define D3D11_ENCODE_BASIC_FILTER( min, mag, mip, bComparison )                                                                                 ( ( D3D11_FILTER ) (                                                                                         ( ( bComparison ) ? D3D11_COMPARISON_FILTERING_BIT : 0 ) |                                                   ( ( ( min ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MIN_FILTER_SHIFT ) |                                         ( ( ( mag ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MAG_FILTER_SHIFT ) |                                         ( ( ( mip ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MIP_FILTER_SHIFT ) ) )   

   -- #define D3D11_ENCODE_ANISOTROPIC_FILTER( bComparison )                                                                                            ( ( D3D11_FILTER ) (                                                                                     D3D11_ANISOTROPIC_FILTERING_BIT |                                                                        D3D11_ENCODE_BASIC_FILTER( D3D11_FILTER_TYPE_LINEAR,                                                                                D3D11_FILTER_TYPE_LINEAR,                                                                                D3D11_FILTER_TYPE_LINEAR,                                                                                bComparison ) ) )                   

   -- #define D3D11_DECODE_MIN_FILTER( d3d11Filter )                                                                                                  ( ( D3D11_FILTER_TYPE )                                                                                        ( ( ( d3d11Filter ) >> D3D11_MIN_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) ) 

   -- #define D3D11_DECODE_MAG_FILTER( d3d11Filter )                                                                                                  ( ( D3D11_FILTER_TYPE )                                                                                        ( ( ( d3d11Filter ) >> D3D11_MAG_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) ) 

   -- #define D3D11_DECODE_MIP_FILTER( d3d11Filter )                                                                                                  ( ( D3D11_FILTER_TYPE )                                                                                        ( ( ( d3d11Filter ) >> D3D11_MIP_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) ) 

   -- #define D3D11_DECODE_IS_COMPARISON_FILTER( d3d11Filter )                                                                                        ( ( d3d11Filter ) & D3D11_COMPARISON_FILTERING_BIT )                         

   -- #define D3D11_DECODE_IS_ANISOTROPIC_FILTER( d3d11Filter )                                                                              ( ( ( d3d11Filter ) & D3D11_ANISOTROPIC_FILTERING_BIT ) &&                                                 ( D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIN_FILTER( d3d11Filter ) ) &&                                  ( D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MAG_FILTER( d3d11Filter ) ) &&                                  ( D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIP_FILTER( d3d11Filter ) ) )      

   type D3D11_TEXTURE_ADDRESS_MODE is (D3D11_TEXTURE_ADDRESS_WRAP,
                                       D3D11_TEXTURE_ADDRESS_MIRROR,
                                       D3D11_TEXTURE_ADDRESS_CLAMP,
                                       D3D11_TEXTURE_ADDRESS_BORDER,
                                       D3D11_TEXTURE_ADDRESS_MIRROR_ONCE);
   for D3D11_TEXTURE_ADDRESS_MODE use (D3D11_TEXTURE_ADDRESS_WRAP=>1,
                                       D3D11_TEXTURE_ADDRESS_MIRROR=>2,
                                       D3D11_TEXTURE_ADDRESS_CLAMP=>3,
                                       D3D11_TEXTURE_ADDRESS_BORDER=>4,
                                       D3D11_TEXTURE_ADDRESS_MIRROR_ONCE=>5);

   type LPD3D11_TEXTURE_ADDRESS_MODE is access D3D11_TEXTURE_ADDRESS_MODE;

   type D3D11_SAMPLER_DESC is record
      Filter:D3D11_FILTER;
      AddressU:D3D11_TEXTURE_ADDRESS_MODE;
      AddressV:D3D11_TEXTURE_ADDRESS_MODE;
      AddressW:D3D11_TEXTURE_ADDRESS_MODE;
      MipLODBias:FLOAT;
      MaxAnisotropy:UINT;
      ComparisonFunc:D3D11_COMPARISON_FUNC;
      BorderColor:FLOAT_Array(0..3);
      MinLOD:FLOAT;
      MaxLOD:FLOAT;
   end record;

   type LPD3D11_SAMPLER_DESC is access all D3D11_SAMPLER_DESC;
   type LPCD3D11_SAMPLER_DESC is access constant D3D11_SAMPLER_DESC;

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

   type D3D11_FORMAT_SUPPORT is (D3D11_FORMAT_SUPPORT_BUFFER,
                                 D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER,
                                 D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER,
                                 D3D11_FORMAT_SUPPORT_SO_BUFFER,
                                 D3D11_FORMAT_SUPPORT_TEXTURE1D,
                                 D3D11_FORMAT_SUPPORT_TEXTURE2D,
                                 D3D11_FORMAT_SUPPORT_TEXTURE3D,
                                 D3D11_FORMAT_SUPPORT_TEXTURECUBE,
                                 D3D11_FORMAT_SUPPORT_SHADER_LOAD,
                                 D3D11_FORMAT_SUPPORT_SHADER_SAMPLE,
                                 D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON,
                                 D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT,
                                 D3D11_FORMAT_SUPPORT_MIP,
                                 D3D11_FORMAT_SUPPORT_MIP_AUTOGEN,
                                 D3D11_FORMAT_SUPPORT_RENDER_TARGET,
                                 D3D11_FORMAT_SUPPORT_BLENDABLE,
                                 D3D11_FORMAT_SUPPORT_DEPTH_STENCIL,
                                 D3D11_FORMAT_SUPPORT_CPU_LOCKABLE,
                                 D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE,
                                 D3D11_FORMAT_SUPPORT_DISPLAY,
                                 D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT,
                                 D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET,
                                 D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD,
                                 D3D11_FORMAT_SUPPORT_SHADER_GATHER,
                                 D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST,
                                 D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW,
                                 D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON);
   for D3D11_FORMAT_SUPPORT use (D3D11_FORMAT_SUPPORT_BUFFER=>16#1#,
                                 D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER=>16#2#,
                                 D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER=>16#4#,
                                 D3D11_FORMAT_SUPPORT_SO_BUFFER=>16#8#,
                                 D3D11_FORMAT_SUPPORT_TEXTURE1D=>16#10#,
                                 D3D11_FORMAT_SUPPORT_TEXTURE2D=>16#20#,
                                 D3D11_FORMAT_SUPPORT_TEXTURE3D=>16#40#,
                                 D3D11_FORMAT_SUPPORT_TEXTURECUBE=>16#80#,
                                 D3D11_FORMAT_SUPPORT_SHADER_LOAD=>16#100#,
                                 D3D11_FORMAT_SUPPORT_SHADER_SAMPLE=>16#200#,
                                 D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON=>16#400#,
                                 D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT=>16#800#,
                                 D3D11_FORMAT_SUPPORT_MIP=>16#1000#,
                                 D3D11_FORMAT_SUPPORT_MIP_AUTOGEN=>16#2000#,
                                 D3D11_FORMAT_SUPPORT_RENDER_TARGET=>16#4000#,
                                 D3D11_FORMAT_SUPPORT_BLENDABLE=>16#8000#,
                                 D3D11_FORMAT_SUPPORT_DEPTH_STENCIL=>16#10000#,
                                 D3D11_FORMAT_SUPPORT_CPU_LOCKABLE=>16#20000#,
                                 D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE=>16#40000#,
                                 D3D11_FORMAT_SUPPORT_DISPLAY=>16#80000#,
                                 D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT=>16#100000#,
                                 D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET=>16#200000#,
                                 D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD=>16#400000#,
                                 D3D11_FORMAT_SUPPORT_SHADER_GATHER=>16#800000#,
                                 D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST=>16#1000000#,
                                 D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW=>16#2000000#,
                                 D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON=>16#4000000#);

   type LPD3D11_FORMAT_SUPPORT is access D3D11_FORMAT_SUPPORT;

   type D3D11_FORMAT_SUPPORT2 is (D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD,
                                  D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS,
                                  D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE,
                                  D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE,
                                  D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX,
                                  D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX,
                                  D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD,
                                  D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE);
   for D3D11_FORMAT_SUPPORT2 use (D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD=>16#1#,
                                  D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS=>16#2#,
                                  D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE=>16#4#,
                                  D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE=>16#8#,
                                  D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX=>16#10#,
                                  D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX=>16#20#,
                                  D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD=>16#40#,
                                  D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE=>16#80#);

   type LPD3D11_FORMAT_SUPPORT2 is access D3D11_FORMAT_SUPPORT2;

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

   type D3D11_ASYNC_GETDATA_FLAG is (D3D11_ASYNC_GETDATA_DONOTFLUSH);
   for D3D11_ASYNC_GETDATA_FLAG use (D3D11_ASYNC_GETDATA_DONOTFLUSH=>16#1#);

   type LPD3D11_ASYNC_GETDATA_FLAG is access D3D11_ASYNC_GETDATA_FLAG;

   type D3D11_QUERY is (D3D11_QUERY_EVENT,
                        D3D11_QUERY_OCCLUSION,
                        D3D11_QUERY_TIMESTAMP,
                        D3D11_QUERY_TIMESTAMP_DISJOINT,
                        D3D11_QUERY_PIPELINE_STATISTICS,
                        D3D11_QUERY_OCCLUSION_PREDICATE,
                        D3D11_QUERY_SO_STATISTICS,
                        D3D11_QUERY_SO_OVERFLOW_PREDICATE,
                        D3D11_QUERY_SO_STATISTICS_STREAM0,
                        D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0,
                        D3D11_QUERY_SO_STATISTICS_STREAM1,
                        D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1,
                        D3D11_QUERY_SO_STATISTICS_STREAM2,
                        D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2,
                        D3D11_QUERY_SO_STATISTICS_STREAM3,
                        D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3);
   for D3D11_QUERY use (D3D11_QUERY_EVENT=>0,
                        D3D11_QUERY_OCCLUSION=>( 1 ) ,
                        D3D11_QUERY_TIMESTAMP=>( 2 ) ,
                        D3D11_QUERY_TIMESTAMP_DISJOINT=>( 3 ) ,
                        D3D11_QUERY_PIPELINE_STATISTICS=>( 4 ) ,
                        D3D11_QUERY_OCCLUSION_PREDICATE=>( 5 ) ,
                        D3D11_QUERY_SO_STATISTICS=>( 6 ) ,
                        D3D11_QUERY_SO_OVERFLOW_PREDICATE=>( 7 ) ,
                        D3D11_QUERY_SO_STATISTICS_STREAM0=>( 8 ) ,
                        D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0=>( 9 ) ,
                        D3D11_QUERY_SO_STATISTICS_STREAM1=>( 10 ) ,
                        D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1=>( 11 ) ,
                        D3D11_QUERY_SO_STATISTICS_STREAM2=>( 12 ) ,
                        D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2=>( 13 ) ,
                        D3D11_QUERY_SO_STATISTICS_STREAM3=>( 14 ) ,
                        D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3=>( 15 ) );

   type LPD3D11_QUERY is access D3D11_QUERY;

   type D3D11_QUERY_MISC_FLAG is (D3D11_QUERY_MISC_PREDICATEHINT);
   for D3D11_QUERY_MISC_FLAG use (D3D11_QUERY_MISC_PREDICATEHINT=>16#1#);

   type LPD3D11_QUERY_MISC_FLAG is access D3D11_QUERY_MISC_FLAG;

   type D3D11_QUERY_DESC is record
      Query:D3D11_QUERY;
      MiscFlags:UINT;
   end record;

   type LPD3D11_QUERY_DESC is access all D3D11_QUERY_DESC;
   type LPCD3D11_QUERY_DESC is access constant D3D11_QUERY_DESC;

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

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

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

   type LPD3D11_QUERY_DATA_TIMESTAMP_DISJOINT is access all D3D11_QUERY_DATA_TIMESTAMP_DISJOINT;

   type D3D11_QUERY_DATA_PIPELINE_STATISTICS is record
      IAVertices:UINT64;
      IAPrimitives:UINT64;
      VSInvocations:UINT64;
      GSInvocations:UINT64;
      GSPrimitives:UINT64;
      CInvocations:UINT64;
      CPrimitives:UINT64;
      PSInvocations:UINT64;
      HSInvocations:UINT64;
      DSInvocations:UINT64;
      CSInvocations:UINT64;
   end record;

   type LPD3D11_QUERY_DATA_PIPELINE_STATISTICS is access all D3D11_QUERY_DATA_PIPELINE_STATISTICS;

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

   type LPD3D11_QUERY_DATA_SO_STATISTICS is access all D3D11_QUERY_DATA_SO_STATISTICS;

   type D3D11_COUNTER is (D3D11_COUNTER_DEVICE_DEPENDENT_0);
   for D3D11_COUNTER use (D3D11_COUNTER_DEVICE_DEPENDENT_0=>16#40000000#);

   type LPD3D11_COUNTER is access D3D11_COUNTER;

   type D3D11_COUNTER_TYPE is (D3D11_COUNTER_TYPE_FLOAT32,
                               D3D11_COUNTER_TYPE_UINT16,
                               D3D11_COUNTER_TYPE_UINT32,
                               D3D11_COUNTER_TYPE_UINT64);
   for D3D11_COUNTER_TYPE use (D3D11_COUNTER_TYPE_FLOAT32=>0,
                               D3D11_COUNTER_TYPE_UINT16=>( 1 ) ,
                               D3D11_COUNTER_TYPE_UINT32=>( 2 ) ,
                               D3D11_COUNTER_TYPE_UINT64=>( 3 ) );

   type LPD3D11_COUNTER_TYPE is access D3D11_COUNTER_TYPE;

   type D3D11_COUNTER_DESC is record
      Counter:D3D11_COUNTER;
      MiscFlags:UINT;
   end record;

   type LPD3D11_COUNTER_DESC is access all D3D11_COUNTER_DESC;
   type LPCD3D11_COUNTER_DESC is access constant D3D11_COUNTER_DESC;

   type D3D11_COUNTER_INFO is record
      LastDeviceDependentCounter:D3D11_COUNTER;
      NumSimultaneousCounters:UINT;
      NumDetectableParallelUnits:UINT8;
   end record;

   type LPD3D11_COUNTER_INFO is access all D3D11_COUNTER_INFO;
   type LPCD3D11_COUNTER_INFO is access constant D3D11_COUNTER_INFO;

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

   type D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS is (D3D11_CENTER_MULTISAMPLE_PATTERN,
                                                      D3D11_STANDARD_MULTISAMPLE_PATTERN
                                                      );
   for D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS use (D3D11_CENTER_MULTISAMPLE_PATTERN=>16#fffffffe#,
                                                      D3D11_STANDARD_MULTISAMPLE_PATTERN=>16#ffffffff#
                                                      );

   type LPD3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS is access D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS;

   type D3D11_DEVICE_CONTEXT_TYPE is (D3D11_DEVICE_CONTEXT_IMMEDIATE,
                                      D3D11_DEVICE_CONTEXT_DEFERRED);
   for D3D11_DEVICE_CONTEXT_TYPE use (D3D11_DEVICE_CONTEXT_IMMEDIATE=>0,
                                      D3D11_DEVICE_CONTEXT_DEFERRED=>( 1 ) );

   type LPD3D11_DEVICE_CONTEXT_TYPE is access D3D11_DEVICE_CONTEXT_TYPE;

   type D3D11_CLASS_INSTANCE_DESC is record
      InstanceId:UINT;
      InstanceIndex:UINT;
      TypeId:UINT;
      ConstantBuffer:UINT;
      BaseConstantBufferOffset:UINT;
      BaseTexture:UINT;
      BaseSampler:UINT;
      Created:BOOL;
   end record;

   type LPD3D11_CLASS_INSTANCE_DESC is access all D3D11_CLASS_INSTANCE_DESC;

   type ID3D11ClassInstance is record
      QueryInterface:access function(This:LPID3D11ClassInstance;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D11ClassInstance) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D11ClassInstance) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D11ClassInstance;ppDevice:LPLPID3D11Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D11ClassInstance;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D11ClassInstance;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D11ClassInstance;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetClassLinkage:access function(This:LPID3D11ClassInstance;ppLinkage:LPLPID3D11ClassLinkage) return void with Convention=>Stdcall;
      GetDesc:access function(This:LPID3D11ClassInstance;pDesc:LPD3D11_CLASS_INSTANCE_DESC) return void with Convention=>Stdcall;
      GetInstanceName:access function(This:LPID3D11ClassInstance;pInstanceName:LPSTR;pBufferLength:LPSIZE_T) return void with Convention=>Stdcall;
      GetTypeName:access function(This:LPID3D11ClassInstance;pTypeName:LPSTR;pBufferLength:LPSIZE_T) return void with Convention=>Stdcall;
   end record;

   type ID3D11ClassLinkage is record
      QueryInterface:access function(This:LPID3D11ClassLinkage;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D11ClassLinkage) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D11ClassLinkage) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D11ClassLinkage;ppDevice:LPLPID3D11Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D11ClassLinkage;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D11ClassLinkage;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D11ClassLinkage;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetClassInstance:access function(This:LPID3D11ClassLinkage;pClassInstanceName:LPCSTR;InstanceIndex:UINT;ppInstance:LPLPID3D11ClassInstance) return HRESULT with Convention=>Stdcall;
      CreateClassInstance:access function(This:LPID3D11ClassLinkage;pClassTypeName:LPCSTR;ConstantBufferOffset:UINT;ConstantVectorOffset:UINT;TextureOffset:UINT;SamplerOffset:UINT;ppInstance:LPLPID3D11ClassInstance) return HRESULT with Convention=>Stdcall;
   end record;

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

   type D3D11_FEATURE is (D3D11_FEATURE_THREADING,
                          D3D11_FEATURE_DOUBLES,
                          D3D11_FEATURE_FORMAT_SUPPORT,
                          D3D11_FEATURE_FORMAT_SUPPORT2,
                          D3D11_FEATURE_D3D10_X_HARDWAREIONS);
   for D3D11_FEATURE use (D3D11_FEATURE_THREADING=>0,
                          D3D11_FEATURE_DOUBLES=>( 1 ) ,
                          D3D11_FEATURE_FORMAT_SUPPORT=>( 2 ) ,
                          D3D11_FEATURE_FORMAT_SUPPORT2=>( 3 ) ,
                          D3D11_FEATURE_D3D10_X_HARDWAREIONS=>( 4 )
                         );

   type LPD3D11_FEATURE is access D3D11_FEATURE;

   type D3D11_FEATURE_DATA_THREADING is record
      DriverConcurrentCreates:BOOL;
      DriverCommandLists:BOOL;
   end record;

   type LPD3D11_FEATURE_DATA_THREADING is access all D3D11_FEATURE_DATA_THREADING;

   type D3D11_FEATURE_DATA_DOUBLES is record
      DoublePrecisionFloatShaderOps:BOOL;
   end record;

   type LPD3D11_FEATURE_DATA_DOUBLES is access all D3D11_FEATURE_DATA_DOUBLES;

   type D3D11_FEATURE_DATA_FORMAT_SUPPORT is record
      InFormat:DXGI_FORMAT;
      OutFormatSupport:UINT;
   end record;

   type LPD3D11_FEATURE_DATA_FORMAT_SUPPORT is access all D3D11_FEATURE_DATA_FORMAT_SUPPORT;

   type D3D11_FEATURE_DATA_FORMAT_SUPPORT2 is record
      InFormat:DXGI_FORMAT;
      OutFormatSupport2:UINT;
   end record;

   type LPD3D11_FEATURE_DATA_FORMAT_SUPPORT2 is access all D3D11_FEATURE_DATA_FORMAT_SUPPORT2;

   type D3D11_FEATURE_DATA_D3D10_X_HARDWAREIONS is record
      ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x:BOOL;
   end record;

   type LPD3D11_FEATURE_DATA_D3D10_X_HARDWAREIONS is access all D3D11_FEATURE_DATA_D3D10_X_HARDWAREIONS;

   type LPLPD3D11_FEATURE_DATA_D3D10_X_HARDWAREIONS is access all LPD3D11_FEATURE_DATA_D3D10_X_HARDWAREIONS;

   type ID3D11DeviceContext is record
      QueryInterface:access function(This:LPID3D11DeviceContext;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D11DeviceContext) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D11DeviceContext) return ULONG with Convention=>Stdcall;
      GetDevice:access function(This:LPID3D11DeviceContext;ppDevice:LPLPID3D11Device) return void with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D11DeviceContext;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D11DeviceContext;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D11DeviceContext;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      VSSetConstantBuffers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumBuffers:UINT;ppConstantBuffers:LPLPID3D11Buffer) return void with Convention=>Stdcall;
      PSSetShaderResources:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumViews:UINT;ppShaderResourceViews:LPLPID3D11ShaderResourceView) return void with Convention=>Stdcall;
      PSSetShader:access function(This:LPID3D11DeviceContext;pPixelShader:LPID3D11PixelShader;ppClassInstances:LPLPID3D11ClassInstance;NumClassInstances:UINT) return void with Convention=>Stdcall;
      PSSetSamplers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumSamplers:UINT;ppSamplers:LPLPID3D11SamplerState) return void with Convention=>Stdcall;
      VSSetShader:access function(This:LPID3D11DeviceContext;pVertexShader:LPID3D11VertexShader;ppClassInstances:LPLPID3D11ClassInstance;NumClassInstances:UINT) return void with Convention=>Stdcall;
      DrawIndexed:access function(This:LPID3D11DeviceContext;IndexCount:UINT;StartIndexLocation:UINT;BaseVertexLocation:INT) return void with Convention=>Stdcall;
      Draw:access function(This:LPID3D11DeviceContext;VertexCount:UINT;StartVertexLocation:UINT) return void with Convention=>Stdcall;
      Map:access function(This:LPID3D11DeviceContext;pResource:LPID3D11Resource;Subresource:UINT;MapType:D3D11_MAP;MapFlags:UINT;pMappedResource:LPD3D11_MAPPED_SUBRESOURCE) return HRESULT with Convention=>Stdcall;
      Unmap:access function(This:LPID3D11DeviceContext;pResource:LPID3D11Resource;Subresource:UINT) return void with Convention=>Stdcall;
      PSSetConstantBuffers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumBuffers:UINT;ppConstantBuffers:LPLPID3D11Buffer) return void with Convention=>Stdcall;
      IASetInputLayout:access function(This:LPID3D11DeviceContext;pInputLayout:LPID3D11InputLayout) return void with Convention=>Stdcall;
      IASetVertexBuffers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumBuffers:UINT;ppVertexBuffers:LPLPID3D11Buffer;pStrides:LPCUINT;pOffsets:LPCUINT) return void with Convention=>Stdcall;
      IASetIndexBuffer:access function(This:LPID3D11DeviceContext;pIndexBuffer:LPID3D11Buffer;Format:DXGI_FORMAT;Offset:UINT) return void with Convention=>Stdcall;
      DrawIndexedInstanced:access function(This:LPID3D11DeviceContext;IndexCountPerInstance:UINT;InstanceCount:UINT;StartIndexLocation:UINT;BaseVertexLocation:INT;StartInstanceLocation:UINT) return void with Convention=>Stdcall;
      DrawInstanced:access function(This:LPID3D11DeviceContext;VertexCountPerInstance:UINT;InstanceCount:UINT;StartVertexLocation:UINT;StartInstanceLocation:UINT) return void with Convention=>Stdcall;
      GSSetConstantBuffers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumBuffers:UINT;ppConstantBuffers:LPLPID3D11Buffer) return void with Convention=>Stdcall;
      GSSetShader:access function(This:LPID3D11DeviceContext;pShader:LPID3D11GeometryShader;ppClassInstances:LPLPID3D11ClassInstance;NumClassInstances:UINT) return void with Convention=>Stdcall;
      IASetPrimitiveTopology:access function(This:LPID3D11DeviceContext;Topology:D3D11_PRIMITIVE_TOPOLOGY) return void with Convention=>Stdcall;
      VSSetShaderResources:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumViews:UINT;ppShaderResourceViews:LPLPID3D11ShaderResourceView) return void with Convention=>Stdcall;
      VSSetSamplers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumSamplers:UINT;ppSamplers:LPLPID3D11SamplerState) return void with Convention=>Stdcall;
      Beginn:access function(This:LPID3D11DeviceContext;pAsync:LPID3D11Asynchronous) return void with Convention=>Stdcall;
      Endd:access function(This:LPID3D11DeviceContext;pAsync:LPID3D11Asynchronous) return void with Convention=>Stdcall;
      GetData:access function(This:LPID3D11DeviceContext;pAsync:LPID3D11Asynchronous;pData:LPvoid;DataSize:UINT;GetDataFlags:UINT) return HRESULT with Convention=>Stdcall;
      SetPredication:access function(This:LPID3D11DeviceContext;pPredicate:LPID3D11Predicate;PredicateValue:BOOL) return void with Convention=>Stdcall;
      GSSetShaderResources:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumViews:UINT;ppShaderResourceViews:LPLPID3D11ShaderResourceView) return void with Convention=>Stdcall;
      GSSetSamplers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumSamplers:UINT;ppSamplers:LPLPID3D11SamplerState) return void with Convention=>Stdcall;
      OMSetRenderTargets:access function(This:LPID3D11DeviceContext;NumViews:UINT;ppRenderTargetViews:LPLPID3D11RenderTargetView;pDepthStencilView:LPID3D11DepthStencilView) return void with Convention=>Stdcall;
      OMSetRenderTargetsAndUnorderedAccessViews:access function(This:LPID3D11DeviceContext;NumRTVs:UINT;ppRenderTargetViews:LPLPID3D11RenderTargetView;pDepthStencilView:LPID3D11DepthStencilView;UAVStartSlot:UINT;NumUAVs:UINT;ppUnorderedAccessViews:LPLPID3D11UnorderedAccessView;pUAVInitialCounts:LPCUINT) return void with Convention=>Stdcall;
      OMSetBlendState:access function(This:LPID3D11DeviceContext;pBlendState:LPID3D11BlendState;BlendFactor:float_array_0_to_3;SampleMask:UINT) return void with Convention=>Stdcall;
      OMSetDepthStencilState:access function(This:LPID3D11DeviceContext;pDepthStencilState:LPID3D11DepthStencilState;StencilRef:UINT) return void with Convention=>Stdcall;
      SOSetTargets:access function(This:LPID3D11DeviceContext;NumBuffers:UINT;ppSOTargets:LPLPID3D11Buffer;pOffsets:LPCUINT) return void with Convention=>Stdcall;
      DrawAuto:access function(This:LPID3D11DeviceContext) return void with Convention=>Stdcall;
      DrawIndexedInstancedIndirect:access function(This:LPID3D11DeviceContext;pBufferForArgs:LPID3D11Buffer;AlignedByteOffsetForArgs:UINT) return void with Convention=>Stdcall;
      DrawInstancedIndirect:access function(This:LPID3D11DeviceContext;pBufferForArgs:LPID3D11Buffer;AlignedByteOffsetForArgs:UINT) return void with Convention=>Stdcall;
      Dispatch:access function(This:LPID3D11DeviceContext;ThreadGroupCountX:UINT;ThreadGroupCountY:UINT;ThreadGroupCountZ:UINT) return void with Convention=>Stdcall;
      DispatchIndirect:access function(This:LPID3D11DeviceContext;pBufferForArgs:LPID3D11Buffer;AlignedByteOffsetForArgs:UINT) return void with Convention=>Stdcall;
      RSSetState:access function(This:LPID3D11DeviceContext;pRasterizerState:LPID3D11RasterizerState) return void with Convention=>Stdcall;
      RSSetViewports:access function(This:LPID3D11DeviceContext;NumViewports:UINT;pViewports:LPCD3D11_VIEWPORT) return void with Convention=>Stdcall;
      RSSetScissorRects:access function(This:LPID3D11DeviceContext;NumRects:UINT;pRects:LPCD3D11_RECT) return void with Convention=>Stdcall;
      CopySubresourceRegion:access function(This:LPID3D11DeviceContext;pDstResource:LPID3D11Resource;DstSubresource:UINT;DstX:UINT;DstY:UINT;DstZ:UINT;pSrcResource:LPID3D11Resource;SrcSubresource:UINT;pSrcBox:LPCD3D11_BOX) return void with Convention=>Stdcall;
      CopyResource:access function(This:LPID3D11DeviceContext;pDstResource:LPID3D11Resource;pSrcResource:LPID3D11Resource) return void with Convention=>Stdcall;
      UpdateSubresource:access function(This:LPID3D11DeviceContext;pDstResource:LPID3D11Resource;DstSubresource:UINT;pDstBox:LPCD3D11_BOX;pSrcData:LPCvoid;SrcRowPitch:UINT;SrcDepthPitch:UINT) return void with Convention=>Stdcall;
      CopyStructureCount:access function(This:LPID3D11DeviceContext;pDstBuffer:LPID3D11Buffer;DstAlignedByteOffset:UINT;pSrcView:LPID3D11UnorderedAccessView) return void with Convention=>Stdcall;
      ClearRenderTargetView:access function(This:LPID3D11DeviceContext;pRenderTargetView:LPID3D11RenderTargetView;ColorRGBA:float_array_0_to_3) return void with Convention=>Stdcall;
      ClearUnorderedAccessViewUint:access function(This:LPID3D11DeviceContext;pUnorderedAccessView:LPID3D11UnorderedAccessView;Values:uint_array_0_to_3) return void with Convention=>Stdcall;
      ClearUnorderedAccessViewFloat:access function(This:LPID3D11DeviceContext;pUnorderedAccessView:LPID3D11UnorderedAccessView;Values:float_array_0_to_3) return void with Convention=>Stdcall;
      ClearDepthStencilView:access function(This:LPID3D11DeviceContext;pDepthStencilView:LPID3D11DepthStencilView;ClearFlags:UINT;Depth:FLOAT;Stencil:UINT8) return void with Convention=>Stdcall;
      GenerateMips:access function(This:LPID3D11DeviceContext;pShaderResourceView:LPID3D11ShaderResourceView) return void with Convention=>Stdcall;
      SetResourceMinLOD:access function(This:LPID3D11DeviceContext;pResource:LPID3D11Resource;MinLOD:FLOAT) return void with Convention=>Stdcall;
      GetResourceMinLOD:access function(This:LPID3D11DeviceContext;pResource:LPID3D11Resource) return FLOAT with Convention=>Stdcall;
      ResolveSubresource:access function(This:LPID3D11DeviceContext;pDstResource:LPID3D11Resource;DstSubresource:UINT;pSrcResource:LPID3D11Resource;SrcSubresource:UINT;Format:DXGI_FORMAT) return void with Convention=>Stdcall;
      ExecuteCommandList:access function(This:LPID3D11DeviceContext;pCommandList:LPID3D11CommandList;RestoreContextState:BOOL) return void with Convention=>Stdcall;
      HSSetShaderResources:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumViews:UINT;ppShaderResourceViews:LPLPID3D11ShaderResourceView) return void with Convention=>Stdcall;
      HSSetShader:access function(This:LPID3D11DeviceContext;pHullShader:LPID3D11HullShader;ppClassInstances:LPLPID3D11ClassInstance;NumClassInstances:UINT) return void with Convention=>Stdcall;
      HSSetSamplers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumSamplers:UINT;ppSamplers:LPLPID3D11SamplerState) return void with Convention=>Stdcall;
      HSSetConstantBuffers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumBuffers:UINT;ppConstantBuffers:LPLPID3D11Buffer) return void with Convention=>Stdcall;
      DSSetShaderResources:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumViews:UINT;ppShaderResourceViews:LPLPID3D11ShaderResourceView) return void with Convention=>Stdcall;
      DSSetShader:access function(This:LPID3D11DeviceContext;pDomainShader:LPID3D11DomainShader;ppClassInstances:LPLPID3D11ClassInstance;NumClassInstances:UINT) return void with Convention=>Stdcall;
      DSSetSamplers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumSamplers:UINT;ppSamplers:LPLPID3D11SamplerState) return void with Convention=>Stdcall;
      DSSetConstantBuffers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumBuffers:UINT;ppConstantBuffers:LPLPID3D11Buffer) return void with Convention=>Stdcall;
      CSSetShaderResources:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumViews:UINT;ppShaderResourceViews:LPLPID3D11ShaderResourceView) return void with Convention=>Stdcall;
      CSSetUnorderedAccessViews:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumUAVs:UINT;ppUnorderedAccessViews:LPLPID3D11UnorderedAccessView;pUAVInitialCounts:LPCUINT) return void with Convention=>Stdcall;
      CSSetShader:access function(This:LPID3D11DeviceContext;pComputeShader:LPID3D11ComputeShader;ppClassInstances:LPLPID3D11ClassInstance;NumClassInstances:UINT) return void with Convention=>Stdcall;
      CSSetSamplers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumSamplers:UINT;ppSamplers:LPLPID3D11SamplerState) return void with Convention=>Stdcall;
      CSSetConstantBuffers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumBuffers:UINT;ppConstantBuffers:LPLPID3D11Buffer) return void with Convention=>Stdcall;
      VSGetConstantBuffers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumBuffers:UINT;ppConstantBuffers:LPLPID3D11Buffer) return void with Convention=>Stdcall;
      PSGetShaderResources:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumViews:UINT;ppShaderResourceViews:LPLPID3D11ShaderResourceView) return void with Convention=>Stdcall;
      PSGetShader:access function(This:LPID3D11DeviceContext;ppPixelShader:LPLPID3D11PixelShader;ppClassInstances:LPLPID3D11ClassInstance;pNumClassInstances:LPUINT) return void with Convention=>Stdcall;
      PSGetSamplers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumSamplers:UINT;ppSamplers:LPLPID3D11SamplerState) return void with Convention=>Stdcall;
      VSGetShader:access function(This:LPID3D11DeviceContext;ppVertexShader:LPLPID3D11VertexShader;ppClassInstances:LPLPID3D11ClassInstance;pNumClassInstances:LPUINT) return void with Convention=>Stdcall;
      PSGetConstantBuffers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumBuffers:UINT;ppConstantBuffers:LPLPID3D11Buffer) return void with Convention=>Stdcall;
      IAGetInputLayout:access function(This:LPID3D11DeviceContext;ppInputLayout:LPLPID3D11InputLayout) return void with Convention=>Stdcall;
      IAGetVertexBuffers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumBuffers:UINT;ppVertexBuffers:LPLPID3D11Buffer;pStrides:LPUINT;pOffsets:LPUINT) return void with Convention=>Stdcall;
      IAGetIndexBuffer:access function(This:LPID3D11DeviceContext;pIndexBuffer:LPLPID3D11Buffer;Format:LPDXGI_FORMAT;Offset:LPUINT) return void with Convention=>Stdcall;
      GSGetConstantBuffers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumBuffers:UINT;ppConstantBuffers:LPLPID3D11Buffer) return void with Convention=>Stdcall;
      GSGetShader:access function(This:LPID3D11DeviceContext;ppGeometryShader:LPLPID3D11GeometryShader;ppClassInstances:LPLPID3D11ClassInstance;pNumClassInstances:LPUINT) return void with Convention=>Stdcall;
      IAGetPrimitiveTopology:access function(This:LPID3D11DeviceContext;pTopology:LPD3D11_PRIMITIVE_TOPOLOGY) return void with Convention=>Stdcall;
      VSGetShaderResources:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumViews:UINT;ppShaderResourceViews:LPLPID3D11ShaderResourceView) return void with Convention=>Stdcall;
      VSGetSamplers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumSamplers:UINT;ppSamplers:LPLPID3D11SamplerState) return void with Convention=>Stdcall;
      GetPredication:access function(This:LPID3D11DeviceContext;ppPredicate:LPLPID3D11Predicate;pPredicateValue:LPBOOL) return void with Convention=>Stdcall;
      GSGetShaderResources:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumViews:UINT;ppShaderResourceViews:LPLPID3D11ShaderResourceView) return void with Convention=>Stdcall;
      GSGetSamplers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumSamplers:UINT;ppSamplers:LPLPID3D11SamplerState) return void with Convention=>Stdcall;
      OMGetRenderTargets:access function(This:LPID3D11DeviceContext;NumViews:UINT;ppRenderTargetViews:LPLPID3D11RenderTargetView;ppDepthStencilView:LPLPID3D11DepthStencilView) return void with Convention=>Stdcall;
      OMGetRenderTargetsAndUnorderedAccessViews:access function(This:LPID3D11DeviceContext;NumRTVs:UINT;ppRenderTargetViews:LPLPID3D11RenderTargetView;ppDepthStencilView:LPLPID3D11DepthStencilView;UAVStartSlot:UINT;NumUAVs:UINT;ppUnorderedAccessViews:LPLPID3D11UnorderedAccessView) return void with Convention=>Stdcall;
      OMGetBlendState:access function(This:LPID3D11DeviceContext;ppBlendState:LPLPID3D11BlendState;BlendFactor:FLOAT_Array_0_to_3;pSampleMask:LPUINT) return void with Convention=>Stdcall;
      OMGetDepthStencilState:access function(This:LPID3D11DeviceContext;ppDepthStencilState:LPLPID3D11DepthStencilState;pStencilRef:LPUINT) return void with Convention=>Stdcall;
      SOGetTargets:access function(This:LPID3D11DeviceContext;NumBuffers:UINT;ppSOTargets:LPLPID3D11Buffer) return void with Convention=>Stdcall;
      RSGetState:access function(This:LPID3D11DeviceContext;ppRasterizerState:LPLPID3D11RasterizerState) return void with Convention=>Stdcall;
      RSGetViewports:access function(This:LPID3D11DeviceContext;pNumViewports:LPUINT;pViewports:LPD3D11_VIEWPORT) return void with Convention=>Stdcall;
      RSGetScissorRects:access function(This:LPID3D11DeviceContext;pNumRects:LPUINT;pRects:LPD3D11_RECT) return void with Convention=>Stdcall;
      HSGetShaderResources:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumViews:UINT;ppShaderResourceViews:LPLPID3D11ShaderResourceView) return void with Convention=>Stdcall;
      HSGetShader:access function(This:LPID3D11DeviceContext;ppHullShader:LPLPID3D11HullShader;ppClassInstances:LPLPID3D11ClassInstance;pNumClassInstances:LPUINT) return void with Convention=>Stdcall;
      HSGetSamplers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumSamplers:UINT;ppSamplers:LPLPID3D11SamplerState) return void with Convention=>Stdcall;
      HSGetConstantBuffers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumBuffers:UINT;ppConstantBuffers:LPLPID3D11Buffer) return void with Convention=>Stdcall;
      DSGetShaderResources:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumViews:UINT;ppShaderResourceViews:LPLPID3D11ShaderResourceView) return void with Convention=>Stdcall;
      DSGetShader:access function(This:LPID3D11DeviceContext;ppDomainShader:LPLPID3D11DomainShader;ppClassInstances:LPLPID3D11ClassInstance;pNumClassInstances:LPUINT) return void with Convention=>Stdcall;
      DSGetSamplers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumSamplers:UINT;ppSamplers:LPLPID3D11SamplerState) return void with Convention=>Stdcall;
      DSGetConstantBuffers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumBuffers:UINT;ppConstantBuffers:LPLPID3D11Buffer) return void with Convention=>Stdcall;
      CSGetShaderResources:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumViews:UINT;ppShaderResourceViews:LPLPID3D11ShaderResourceView) return void with Convention=>Stdcall;
      CSGetUnorderedAccessViews:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumUAVs:UINT;ppUnorderedAccessViews:LPLPID3D11UnorderedAccessView) return void with Convention=>Stdcall;
      CSGetShader:access function(This:LPID3D11DeviceContext;ppComputeShader:LPLPID3D11ComputeShader;ppClassInstances:LPLPID3D11ClassInstance;pNumClassInstances:LPUINT) return void with Convention=>Stdcall;
      CSGetSamplers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumSamplers:UINT;ppSamplers:LPLPID3D11SamplerState) return void with Convention=>Stdcall;
      CSGetConstantBuffers:access function(This:LPID3D11DeviceContext;StartSlot:UINT;NumBuffers:UINT;ppConstantBuffers:LPLPID3D11Buffer) return void with Convention=>Stdcall;
      ClearState:access function(This:LPID3D11DeviceContext) return void with Convention=>Stdcall;
      Flush:access function(This:LPID3D11DeviceContext) return void with Convention=>Stdcall;
      GetType:access function(This:LPID3D11DeviceContext) return D3D11_DEVICE_CONTEXT_TYPE with Convention=>Stdcall;
      GetContextFlags:access function(This:LPID3D11DeviceContext) return UINT with Convention=>Stdcall;
      FinishCommandList:access function(This:LPID3D11DeviceContext;RestoreDeferredContextState:BOOL;ppCommandList:LPLPID3D11CommandList) return HRESULT with Convention=>Stdcall;
   end record;

   type ID3D11Device is record
      QueryInterface:access function(This:LPID3D11Device;riid:REFIID;ppvObject:LPLPvoid) return HRESULT with Convention=>Stdcall;
      AddRef:access function(This:LPID3D11Device) return ULONG with Convention=>Stdcall;
      Release:access function(This:LPID3D11Device) return ULONG with Convention=>Stdcall;
      CreateBuffer:access function(This:LPID3D11Device;pDesc:LPCD3D11_BUFFER_DESC;pInitialData:LPCD3D11_SUBRESOURCE_DATA;ppBuffer:LPLPID3D11Buffer) return HRESULT with Convention=>Stdcall;
      CreateTexture1D:access function(This:LPID3D11Device;pDesc:LPCD3D11_TEXTURE1D_DESC;pInitialData:LPCD3D11_SUBRESOURCE_DATA;ppTexture1D:LPLPID3D11Texture1D) return HRESULT with Convention=>Stdcall;
      CreateTexture2D:access function(This:LPID3D11Device;pDesc:LPCD3D11_TEXTURE2D_DESC;pInitialData:LPCD3D11_SUBRESOURCE_DATA;ppTexture2D:LPLPID3D11Texture2D) return HRESULT with Convention=>Stdcall;
      CreateTexture3D:access function(This:LPID3D11Device;pDesc:LPCD3D11_TEXTURE3D_DESC;pInitialData:LPCD3D11_SUBRESOURCE_DATA;ppTexture3D:LPLPID3D11Texture3D) return HRESULT with Convention=>Stdcall;
      CreateShaderResourceView:access function(This:LPID3D11Device;pResource:LPID3D11Resource;pDesc:LPCD3D11_SHADER_RESOURCE_VIEW_DESC;ppSRView:LPLPID3D11ShaderResourceView) return HRESULT with Convention=>Stdcall;
      CreateUnorderedAccessView:access function(This:LPID3D11Device;pResource:LPID3D11Resource;pDesc:LPCD3D11_UNORDERED_ACCESS_VIEW_DESC;ppUAView:LPLPID3D11UnorderedAccessView) return HRESULT with Convention=>Stdcall;
      CreateRenderTargetView:access function(This:LPID3D11Device;pResource:LPID3D11Resource;pDesc:LPCD3D11_RENDER_TARGET_VIEW_DESC;ppRTView:LPLPID3D11RenderTargetView) return HRESULT with Convention=>Stdcall;
      CreateDepthStencilView:access function(This:LPID3D11Device;pResource:LPID3D11Resource;pDesc:LPCD3D11_DEPTH_STENCIL_VIEW_DESC;ppDepthStencilView:LPLPID3D11DepthStencilView) return HRESULT with Convention=>Stdcall;
      CreateInputLayout:access function(This:LPID3D11Device;pInputElementDescs:LPCD3D11_INPUT_ELEMENT_DESC;NumElements:UINT;pShaderBytecodeWithInputSignature:LPCvoid;BytecodeLength:SIZE_T;ppInputLayout:LPLPID3D11InputLayout) return HRESULT with Convention=>Stdcall;
      CreateVertexShader:access function(This:LPID3D11Device;pShaderBytecode:LPCvoid;BytecodeLength:SIZE_T;pClassLinkage:LPID3D11ClassLinkage;ppVertexShader:LPLPID3D11VertexShader) return HRESULT with Convention=>Stdcall;
      CreateGeometryShader:access function(This:LPID3D11Device;pShaderBytecode:LPCvoid;BytecodeLength:SIZE_T;pClassLinkage:LPID3D11ClassLinkage;ppGeometryShader:LPLPID3D11GeometryShader) return HRESULT with Convention=>Stdcall;
      CreateGeometryShaderWithStreamOutput:access function(This:LPID3D11Device;pShaderBytecode:LPCvoid;BytecodeLength:SIZE_T;pSODeclaration:LPCD3D11_SO_DECLARATION_ENTRY;NumEntries:UINT;pBufferStrides:LPCUINT;NumStrides:UINT;RasterizedStream:UINT;pClassLinkage:LPID3D11ClassLinkage;ppGeometryShader:LPLPID3D11GeometryShader) return HRESULT with Convention=>Stdcall;
      CreatePixelShader:access function(This:LPID3D11Device;pShaderBytecode:LPCvoid;BytecodeLength:SIZE_T;pClassLinkage:LPID3D11ClassLinkage;ppPixelShader:LPLPID3D11PixelShader) return HRESULT with Convention=>Stdcall;
      CreateHullShader:access function(This:LPID3D11Device;pShaderBytecode:LPCvoid;BytecodeLength:SIZE_T;pClassLinkage:LPID3D11ClassLinkage;ppHullShader:LPLPID3D11HullShader) return HRESULT with Convention=>Stdcall;
      CreateDomainShader:access function(This:LPID3D11Device;pShaderBytecode:LPCvoid;BytecodeLength:SIZE_T;pClassLinkage:LPID3D11ClassLinkage;ppDomainShader:LPLPID3D11DomainShader) return HRESULT with Convention=>Stdcall;
      CreateComputeShader:access function(This:LPID3D11Device;pShaderBytecode:LPCvoid;BytecodeLength:SIZE_T;pClassLinkage:LPID3D11ClassLinkage;ppComputeShader:LPLPID3D11ComputeShader) return HRESULT with Convention=>Stdcall;
      CreateClassLinkage:access function(This:LPID3D11Device;ppLinkage:LPLPID3D11ClassLinkage) return HRESULT with Convention=>Stdcall;
      CreateBlendState:access function(This:LPID3D11Device;pBlendStateDesc:LPCD3D11_BLEND_DESC;ppBlendState:LPLPID3D11BlendState) return HRESULT with Convention=>Stdcall;
      CreateDepthStencilState:access function(This:LPID3D11Device;pDepthStencilDesc:LPCD3D11_DEPTH_STENCIL_DESC;ppDepthStencilState:LPLPID3D11DepthStencilState) return HRESULT with Convention=>Stdcall;
      CreateRasterizerState:access function(This:LPID3D11Device;pRasterizerDesc:LPCD3D11_RASTERIZER_DESC;ppRasterizerState:LPLPID3D11RasterizerState) return HRESULT with Convention=>Stdcall;
      CreateSamplerState:access function(This:LPID3D11Device;pSamplerDesc:LPCD3D11_SAMPLER_DESC;ppSamplerState:LPLPID3D11SamplerState) return HRESULT with Convention=>Stdcall;
      CreateQuery:access function(This:LPID3D11Device;pQueryDesc:LPCD3D11_QUERY_DESC;ppQuery:LPLPID3D11Query) return HRESULT with Convention=>Stdcall;
      CreatePredicate:access function(This:LPID3D11Device;pPredicateDesc:LPCD3D11_QUERY_DESC;ppPredicate:LPLPID3D11Predicate) return HRESULT with Convention=>Stdcall;
      CreateCounter:access function(This:LPID3D11Device;pCounterDesc:LPCD3D11_COUNTER_DESC;ppCounter:LPLPID3D11Counter) return HRESULT with Convention=>Stdcall;
      CreateDeferredContext:access function(This:LPID3D11Device;ContextFlags:UINT;ppDeferredContext:LPLPID3D11DeviceContext) return HRESULT with Convention=>Stdcall;
      OpenSharedResource:access function(This:LPID3D11Device;hResource:win32.winnt.HANDLE;ReturnedInterface:REFIID;ppResource:LPLPvoid) return HRESULT with Convention=>Stdcall;
      CheckFormatSupport:access function(This:LPID3D11Device;Format:DXGI_FORMAT;pFormatSupport:LPUINT) return HRESULT with Convention=>Stdcall;
      CheckMultisampleQualityLevels:access function(This:LPID3D11Device;Format:DXGI_FORMAT;SampleCount:UINT;pNumQualityLevels:LPUINT) return HRESULT with Convention=>Stdcall;
      CheckCounterInfo:access function(This:LPID3D11Device;pCounterInfo:LPD3D11_COUNTER_INFO) return void with Convention=>Stdcall;
      CheckCounter:access function(This:LPID3D11Device;pDesc:LPCD3D11_COUNTER_DESC;pType:LPD3D11_COUNTER_TYPE;pActiveCounters:LPUINT;szName:LPSTR;pNameLength:LPUINT;szUnits:LPSTR;pUnitsLength:LPUINT;szDescription:LPSTR;pDescriptionLength:LPUINT) return HRESULT with Convention=>Stdcall;
      CheckFeatureSupport:access function(This:LPID3D11Device;Feature:D3D11_FEATURE;pFeatureSupportData:LPvoid;FeatureSupportDataSize:UINT) return HRESULT with Convention=>Stdcall;
      GetPrivateData:access function(This:LPID3D11Device;guid:REFGUID;pDataSize:LPUINT;pData:LPvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateData:access function(This:LPID3D11Device;guid:REFGUID;DataSize:UINT;pData:LPCvoid) return HRESULT with Convention=>Stdcall;
      SetPrivateDataInterface:access function(This:LPID3D11Device;guid:REFGUID;pData:LPCIUnknown) return HRESULT with Convention=>Stdcall;
      GetFeatureLevel:access function(This:LPID3D11Device) return D3D_FEATURE_LEVEL with Convention=>Stdcall;
      GetCreationFlags:access function(This:LPID3D11Device) return UINT with Convention=>Stdcall;
      GetDeviceRemovedReason:access function(This:LPID3D11Device) return HRESULT with Convention=>Stdcall;
      GetImmediateContext:access function(This:LPID3D11Device;ppImmediateContext:LPLPID3D11DeviceContext) return void with Convention=>Stdcall;
      SetExceptionMode:access function(This:LPID3D11Device;RaiseFlags:UINT) return HRESULT with Convention=>Stdcall;
      GetExceptionMode:access function(This:LPID3D11Device) return UINT with Convention=>Stdcall;
   end record;

   type D3D11_CREATE_DEVICE_FLAG is (D3D11_CREATE_DEVICE_SINGLETHREADED,
                                     D3D11_CREATE_DEVICE_DEBUG,
                                     D3D11_CREATE_DEVICE_SWITCH_TO_REF,
                                     D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADINGIMIZATIONS,
                                     D3D11_CREATE_DEVICE_BGRA_SUPPORT);
   for D3D11_CREATE_DEVICE_FLAG use (D3D11_CREATE_DEVICE_SINGLETHREADED=>16#1#,
                                     D3D11_CREATE_DEVICE_DEBUG=>16#2#,
                                     D3D11_CREATE_DEVICE_SWITCH_TO_REF=>16#4#,
                                     D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADINGIMIZATIONS=>16#8#,
                                     D3D11_CREATE_DEVICE_BGRA_SUPPORT=>16#20#);

   type LPD3D11_CREATE_DEVICE_FLAG is access D3D11_CREATE_DEVICE_FLAG;

   D3D11_SDK_VERSION : constant := ( 7 );

   type PFN_D3D11_CREATE_DEVICE is access function(Adaptor:LPIDXGIAdapter;DriverType:D3D_DRIVER_TYPE;Software:HMODULE;Flags:UINT;pcFeatureLevels:LPD3D_FEATURE_LEVEL;FeatureLevels:UINT;SDKVersion:UINT;ppDevice:LPLPID3D11Device;pFeatureLevel:LPD3D_FEATURE_LEVEL;ppImmediateContext:LPLPID3D11DeviceContext) return HRESULT with Convention=>Stdcall;

   function D3D11CreateDevice(pAdapter:LPIDXGIAdapter;DriverType:D3D_DRIVER_TYPE;Software:HMODULE;Flags:UINT;pFeatureLevels:LPCD3D_FEATURE_LEVEL;FeatureLevels:UINT;SDKVersion:UINT;ppDevice:LPLPID3D11Device;pFeatureLevel:LPD3D_FEATURE_LEVEL;ppImmediateContext:LPLPID3D11DeviceContext) return HRESULT with Import,Convention=>stdcall,external_name=>"D3D11CreateDevice";

   type PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN is access function(Adaptor:LPIDXGIAdapter;DrvType:D3D_DRIVER_TYPE;hmd:HMODULE;ui:UINT;pcfl:LPD3D_FEATURE_LEVEL;FeatureLevels:UINT;ui1:UINT;pcscd:LPDXGI_SWAP_CHAIN_DESC;ppsc:LPLPIDXGISwapChain;ppd11dev:LPLPID3D11Device;pfl:LPD3D_FEATURE_LEVEL;ppD11DevCon:LPLPID3D11DeviceContext) return HRESULT with Convention=>Stdcall;

   function D3D11CreateDeviceAndSwapChain(pAdapter:LPIDXGIAdapter;DriverType:D3D_DRIVER_TYPE;Software:HMODULE;Flags:UINT;pFeatureLevels:LPCD3D_FEATURE_LEVEL;FeatureLevels:UINT;SDKVersion:UINT;pSwapChainDesc:access constant DXGI_SWAP_CHAIN_DESC;ppSwapChain:LPLPIDXGISwapChain;ppDevice:LPLPID3D11Device;pFeatureLevel:LPD3D_FEATURE_LEVEL;ppImmediateContext:LPLPID3D11DeviceContext) return HRESULT with Import,Convention=>stdcall,external_name=>"D3D11CreateDeviceAndSwapChain";

   IID_ID3D11DeviceChild:constant win32.rpcdce.GUID:=(16#1841e5c8#,16#16b0#,16#489b#,(16#bc#,16#c8#,16#44#,16#cf#,16#b0#,16#d5#,16#de#,16#ae#));
   IID_ID3D11DepthStencilState:constant win32.rpcdce.GUID:=(16#03823efb#,16#8d8f#,16#4e1c#,(16#9a#,16#a2#,16#f6#,16#4b#,16#b2#,16#cb#,16#fd#,16#f1#));
   IID_ID3D11BlendState:constant win32.rpcdce.GUID:=(16#75b68faa#,16#347d#,16#4159#,(16#8f#,16#45#,16#a0#,16#64#,16#0f#,16#01#,16#cd#,16#9a#));
   IID_ID3D11RasterizerState:constant win32.rpcdce.GUID:=(16#9bb4ab81#,16#ab1a#,16#4d8f#,(16#b5#,16#06#,16#fc#,16#04#,16#20#,16#0b#,16#6e#,16#e7#));
   IID_ID3D11Resource:constant win32.rpcdce.GUID:=(16#dc8e63f3#,16#d12b#,16#4952#,(16#b4#,16#7b#,16#5e#,16#45#,16#02#,16#6a#,16#86#,16#2d#));
   IID_ID3D11Buffer:constant win32.rpcdce.GUID:=(16#48570b85#,16#d1ee#,16#4fcd#,(16#a2#,16#50#,16#eb#,16#35#,16#07#,16#22#,16#b0#,16#37#));
   IID_ID3D11Texture1D:constant win32.rpcdce.GUID:=(16#f8fb5c27#,16#c6b3#,16#4f75#,(16#a4#,16#c8#,16#43#,16#9a#,16#f2#,16#ef#,16#56#,16#4c#));
   IID_ID3D11Texture2D:constant win32.rpcdce.GUID:=(16#6f15aaf2#,16#d208#,16#4e89#,(16#9a#,16#b4#,16#48#,16#95#,16#35#,16#d3#,16#4f#,16#9c#));
   IID_ID3D11Texture3D:constant win32.rpcdce.GUID:=(16#037e866e#,16#f56d#,16#4357#,(16#a8#,16#af#,16#9d#,16#ab#,16#be#,16#6e#,16#25#,16#0e#));
   IID_ID3D11View:constant win32.rpcdce.GUID:=(16#839d1216#,16#bb2e#,16#412b#,(16#b7#,16#f4#,16#a9#,16#db#,16#eb#,16#e0#,16#8e#,16#d1#));
   IID_ID3D11ShaderResourceView:constant win32.rpcdce.GUID:=(16#b0e06fe0#,16#8192#,16#4e1a#,(16#b1#,16#ca#,16#36#,16#d7#,16#41#,16#47#,16#10#,16#b2#));
   IID_ID3D11RenderTargetView:constant win32.rpcdce.GUID:=(16#dfdba067#,16#0b8d#,16#4865#,(16#87#,16#5b#,16#d7#,16#b4#,16#51#,16#6c#,16#c1#,16#64#));
   IID_ID3D11DepthStencilView:constant win32.rpcdce.GUID:=(16#9fdac92a#,16#1876#,16#48c3#,(16#af#,16#ad#,16#25#,16#b9#,16#4f#,16#84#,16#a9#,16#b6#));
   IID_ID3D11UnorderedAccessView:constant win32.rpcdce.GUID:=(16#28acf509#,16#7f5c#,16#48f6#,(16#86#,16#11#,16#f3#,16#16#,16#01#,16#0a#,16#63#,16#80#));
   IID_ID3D11VertexShader:constant win32.rpcdce.GUID:=(16#3b301d64#,16#d678#,16#4289#,(16#88#,16#97#,16#22#,16#f8#,16#92#,16#8b#,16#72#,16#f3#));
   IID_ID3D11HullShader:constant win32.rpcdce.GUID:=(16#8e5c6061#,16#628a#,16#4c8e#,(16#82#,16#64#,16#bb#,16#e4#,16#5c#,16#b3#,16#d5#,16#dd#));
   IID_ID3D11DomainShader:constant win32.rpcdce.GUID:=(16#f582c508#,16#0f36#,16#490c#,(16#99#,16#77#,16#31#,16#ee#,16#ce#,16#26#,16#8c#,16#fa#));
   IID_ID3D11GeometryShader:constant win32.rpcdce.GUID:=(16#38325b96#,16#effb#,16#4022#,(16#ba#,16#02#,16#2e#,16#79#,16#5b#,16#70#,16#27#,16#5c#));
   IID_ID3D11PixelShader:constant win32.rpcdce.GUID:=(16#ea82e40d#,16#51dc#,16#4f33#,(16#93#,16#d4#,16#db#,16#7c#,16#91#,16#25#,16#ae#,16#8c#));
   IID_ID3D11ComputeShader:constant win32.rpcdce.GUID:=(16#4f5b196e#,16#c2bd#,16#495e#,(16#bd#,16#01#,16#1f#,16#de#,16#d3#,16#8e#,16#49#,16#69#));
   IID_ID3D11InputLayout:constant win32.rpcdce.GUID:=(16#e4819ddc#,16#4cf0#,16#4025#,(16#bd#,16#26#,16#5d#,16#e8#,16#2a#,16#3e#,16#07#,16#b7#));
   IID_ID3D11SamplerState:constant win32.rpcdce.GUID:=(16#da6fea51#,16#564c#,16#4487#,(16#98#,16#10#,16#f0#,16#d0#,16#f9#,16#b4#,16#e3#,16#a5#));
   IID_ID3D11Asynchronous:constant win32.rpcdce.GUID:=(16#4b35d0cd#,16#1e15#,16#4258#,(16#9c#,16#98#,16#1b#,16#13#,16#33#,16#f6#,16#dd#,16#3b#));
   IID_ID3D11Query:constant win32.rpcdce.GUID:=(16#d6c00747#,16#87b7#,16#425e#,(16#b8#,16#4d#,16#44#,16#d1#,16#08#,16#56#,16#0a#,16#fd#));
   IID_ID3D11Predicate:constant win32.rpcdce.GUID:=(16#9eb576dd#,16#9f77#,16#4d86#,(16#81#,16#aa#,16#8b#,16#ab#,16#5f#,16#e4#,16#90#,16#e2#));
   IID_ID3D11Counter:constant win32.rpcdce.GUID:=(16#6e8c49fb#,16#a371#,16#4770#,(16#b4#,16#40#,16#29#,16#08#,16#60#,16#22#,16#b7#,16#41#));
   IID_ID3D11ClassInstance:constant win32.rpcdce.GUID:=(16#a6cd7faa#,16#b0b7#,16#4a2f#,(16#94#,16#36#,16#86#,16#62#,16#a6#,16#57#,16#97#,16#cb#));
   IID_ID3D11ClassLinkage:constant win32.rpcdce.GUID:=(16#ddf57cba#,16#9543#,16#46e4#,(16#a1#,16#2b#,16#f2#,16#07#,16#a0#,16#fe#,16#7f#,16#ed#));
   IID_ID3D11CommandList:constant win32.rpcdce.GUID:=(16#a24bc4d1#,16#769e#,16#43f7#,(16#80#,16#13#,16#98#,16#ff#,16#56#,16#6c#,16#18#,16#e2#));
   IID_ID3D11DeviceContext:constant win32.rpcdce.GUID:=(16#c0bfa96c#,16#e089#,16#44fb#,(16#8e#,16#af#,16#26#,16#f8#,16#79#,16#61#,16#90#,16#da#));
   IID_ID3D11Device:constant win32.rpcdce.GUID:=(16#db6f6ddb#,16#ac77#,16#4e88#,(16#82#,16#53#,16#81#,16#9d#,16#f9#,16#bb#,16#f1#,16#40#));




   --
   -- THE END
   --



end d3d11;




























 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值