' ########################################################################################
' Microsoft Windows
' File: D3D11.inc
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
#IF NOT %DEF(PBX_d3d11_PBI)
#DEFINE PBX_d3d11_PBI
%EQUATE `D3D11_INC = 1
'/* header files for imported files */
#INCLUDE ONCE "Legacy/COM/OAIdl.inc"
#INCLUDE ONCE "Legacy/COM/OCIdl.inc"
#INCLUDE ONCE "Legacy/Graphics/DXGI.inc"
#INCLUDE ONCE "Legacy/COM/D3DCommon.inc"
$IID_ID3D11DeviceChild = GUID$("{1841e5c8-16b0-489b-bcc8-44cfb0d5deae}")
$IID_ID3D11DepthStencilState = GUID$("{03823efb-8d8f-4e1c-9aa2-f64bb2cbfdf1}")
$IID_ID3D11BlendState = GUID$("{75b68faa-347d-4159-8f45-a0640f01cd9a}")
$IID_ID3D11RasterizerState = GUID$("{9bb4ab81-ab1a-4d8f-b506-fc04200b6ee7}")
$IID_ID3D11Resource = GUID$("{dc8e63f3-d12b-4952-b47b-5e45026a862d}")
$IID_ID3D11Buffer = GUID$("{48570b85-d1ee-4fcd-a250-eb350722b037}")
$IID_ID3D11Texture1D = GUID$("{f8fb5c27-c6b3-4f75-a4c8-439af2ef564c}")
$IID_ID3D11Texture2D = GUID$("{6f15aaf2-d208-4e89-9ab4-489535d34f9c}")
$IID_ID3D11Texture3D = GUID$("{037e866e-f56d-4357-a8af-9dabbe6e250e}")
$IID_ID3D11View = GUID$("{839d1216-bb2e-412b-b7f4-a9dbebe08ed1}")
$IID_ID3D11ShaderResourceView = GUID$("{b0e06fe0-8192-4e1a-b1ca-36d7414710b2}")
$IID_ID3D11RenderTargetView = GUID$("{dfdba067-0b8d-4865-875b-d7b4516cc164}")
$IID_ID3D11DepthStencilView = GUID$("{9fdac92a-1876-48c3-afad-25b94f84a9b6}")
$IID_ID3D11UnorderedAccessView = GUID$("{28acf509-7f5c-48f6-8611-f316010a6380}")
$IID_ID3D11VertexShader = GUID$("{3b301d64-d678-4289-8897-22f8928b72f3}")
$IID_ID3D11HullShader = GUID$("{8e5c6061-628a-4c8e-8264-bbe45cb3d5dd}")
$IID_ID3D11DomainShader = GUID$("{f582c508-0f36-490c-9977-31eece268cfa}")
$IID_ID3D11GeometryShader = GUID$("{38325b96-effb-4022-ba02-2e795b70275c}")
$IID_ID3D11PixelShader = GUID$("{ea82e40d-51dc-4f33-93d4-db7c9125ae8c}")
$IID_ID3D11ComputeShader = GUID$("{4f5b196e-c2bd-495e-bd01-1fded38e4969}")
$IID_ID3D11InputLayout = GUID$("{e4819ddc-4cf0-4025-bd26-5de82a3e07b7}")
$IID_ID3D11SamplerState = GUID$("{da6fea51-564c-4487-9810-f0d0f9b4e3a5}")
$IID_ID3D11Asynchronous = GUID$("{4b35d0cd-1e15-4258-9c98-1b1333f6dd3b}")
$IID_ID3D11Query = GUID$("{d6c00747-87b7-425e-b84d-44d108560afd}")
$IID_ID3D11Predicate = GUID$("{9eb576dd-9f77-4d86-81aa-8bab5fe490e2}")
$IID_ID3D11Counter = GUID$("{6e8c49fb-a371-4770-b440-29086022b741}")
$IID_ID3D11ClassInstance = GUID$("{a6cd7faa-b0b7-4a2f-9436-8662a65797cb}")
$IID_ID3D11ClassLinkage = GUID$("{ddf57cba-9543-46e4-a12b-f207a0fe7fed}")
$IID_ID3D11CommandList = GUID$("{a24bc4d1-769e-43f7-8013-98ff566c18e2}")
$IID_ID3D11DeviceContext = GUID$("{c0bfa96c-e089-44fb-8eaf-26f8796190da}")
$IID_ID3D11Device = GUID$("{db6f6ddb-ac77-4e88-8253-819df9bbf140}")
#IF NOT %DEF(%D3D11_CONSTANTS)
 %D3D11_CONSTANTS = 1
%EQUATE `D3D11_16BIT_INDEX_STRIP_CUT_VALUE = &Hffff
%EQUATE `D3D11_32BIT_INDEX_STRIP_CUT_VALUE = &Hffffffff
%EQUATE `D3D11_8BIT_INDEX_STRIP_CUT_VALUE = &Hff
%EQUATE `D3D11_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT = 9
%EQUATE `D3D11_CLIP_OR_CULL_DISTANCE_COUNT = 8
%EQUATE `D3D11_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT = 2
%EQUATE `D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT = 14
%EQUATE `D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS = 4
%EQUATE `D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT = 15
%EQUATE `D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4
%EQUATE `D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT = 15
%EQUATE `D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1
%EQUATE `D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1
%EQUATE `D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT = 64
%EQUATE `D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4
%EQUATE `D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT = 1
%EQUATE `D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1
%EQUATE `D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1
%EQUATE `D3D11_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS = 1
%EQUATE `D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT = 128
%EQUATE `D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST = 1
%EQUATE `D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS = 1
%EQUATE `D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT = 128
%EQUATE `D3D11_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS = 1
%EQUATE `D3D11_COMMONSHADER_SAMPLER_REGISTER_COUNT = 16
%EQUATE `D3D11_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST = 1
%EQUATE `D3D11_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS = 1
%EQUATE `D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT = 16
%EQUATE `D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT = 32
%EQUATE `D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENTS = 4
%EQUATE `D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_COMMONSHADER_TEMP_REGISTER_COUNT = 4096
%EQUATE `D3D11_COMMONSHADER_TEMP_REGISTER_READS_PER_INST = 3
%EQUATE `D3D11_COMMONSHADER_TEMP_REGISTER_READ_PORTS = 3
%EQUATE `D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX = 10
%EQUATE `D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN = -10
%EQUATE `D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE = -8
%EQUATE `D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE = 7
%EQUATE `D3D11_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 256
%EQUATE `D3D11_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP = 64
%EQUATE `D3D11_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 240
%EQUATE `D3D11_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP = 68
%EQUATE `D3D11_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 224
%EQUATE `D3D11_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP = 72
%EQUATE `D3D11_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 208
%EQUATE `D3D11_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP = 76
%EQUATE `D3D11_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 192
%EQUATE `D3D11_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP = 84
%EQUATE `D3D11_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 176
%EQUATE `D3D11_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP = 92
%EQUATE `D3D11_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 160
%EQUATE `D3D11_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP = 100
%EQUATE `D3D11_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 144
%EQUATE `D3D11_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP = 112
%EQUATE `D3D11_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 128
%EQUATE `D3D11_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP = 128
%EQUATE `D3D11_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 112
%EQUATE `D3D11_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP = 144
%EQUATE `D3D11_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 96
%EQUATE `D3D11_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP = 168
%EQUATE `D3D11_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 80
%EQUATE `D3D11_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP = 204
%EQUATE `D3D11_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 64
%EQUATE `D3D11_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP = 256
%EQUATE `D3D11_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 48
%EQUATE `D3D11_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP = 340
%EQUATE `D3D11_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 32
%EQUATE `D3D11_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP = 512
%EQUATE `D3D11_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 16
%EQUATE `D3D11_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP = 768
%EQUATE `D3D11_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION = 1
%EQUATE `D3D11_CS_4_X_RAW_UAV_BYTE_ALIGNMENT = 256
%EQUATE `D3D11_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP = 768
%EQUATE `D3D11_CS_4_X_THREAD_GROUP_MAX_X = 768
%EQUATE `D3D11_CS_4_X_THREAD_GROUP_MAX_Y = 768
%EQUATE `D3D11_CS_4_X_UAV_REGISTER_COUNT = 1
%EQUATE `D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION = 65535
%EQUATE `D3D11_CS_TGSM_REGISTER_COUNT = 8192
%EQUATE `D3D11_CS_TGSM_REGISTER_READS_PER_INST = 1
%EQUATE `D3D11_CS_TGSM_RESOURCE_REGISTER_COMPONENTS = 1
%EQUATE `D3D11_CS_TGSM_RESOURCE_REGISTER_READ_PORTS = 1
%EQUATE `D3D11_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP = 1024
%EQUATE `D3D11_CS_THREAD_GROUP_MAX_X = 1024
%EQUATE `D3D11_CS_THREAD_GROUP_MAX_Y = 1024
%EQUATE `D3D11_CS_THREAD_GROUP_MAX_Z = 64
%EQUATE `D3D11_CS_THREAD_GROUP_MIN_X = 1
%EQUATE `D3D11_CS_THREAD_GROUP_MIN_Y = 1
%EQUATE `D3D11_CS_THREAD_GROUP_MIN_Z = 1
%EQUATE `D3D11_CS_THREAD_LOCAL_TEMP_REGISTER_POOL = 16384
MACRO D3D11_DEFAULT_BLEND_FACTOR_ALPHA = 1.0!
MACRO D3D11_DEFAULT_BLEND_FACTOR_BLUE = 1.0!
MACRO D3D11_DEFAULT_BLEND_FACTOR_GREEN = 1.0!
MACRO D3D11_DEFAULT_BLEND_FACTOR_RED = 1.0!
MACRO D3D11_DEFAULT_BORDER_COLOR_COMPONENT = 0.0!
%EQUATE `D3D11_DEFAULT_DEPTH_BIAS = 0
MACRO D3D11_DEFAULT_DEPTH_BIAS_CLAMP = 0.0!
MACRO D3D11_DEFAULT_MAX_ANISOTROPY = 16.0!
MACRO D3D11_DEFAULT_MIP_LOD_BIAS = 0.0!
%EQUATE `D3D11_DEFAULT_RENDER_TARGET_ARRAY_INDEX = 0
%EQUATE `D3D11_DEFAULT_SAMPLE_MASK = &Hffffffff
%EQUATE `D3D11_DEFAULT_SCISSOR_ENDX = 0
%EQUATE `D3D11_DEFAULT_SCISSOR_ENDY = 0
%EQUATE `D3D11_DEFAULT_SCISSOR_STARTX = 0
%EQUATE `D3D11_DEFAULT_SCISSOR_STARTY = 0
MACRO D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS = 0.0!
%EQUATE `D3D11_DEFAULT_STENCIL_READ_MASK = &Hff
%EQUATE `D3D11_DEFAULT_STENCIL_REFERENCE = 0
%EQUATE `D3D11_DEFAULT_STENCIL_WRITE_MASK = &Hff
%EQUATE `D3D11_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX = 0
%EQUATE `D3D11_DEFAULT_VIEWPORT_HEIGHT = 0
MACRO D3D11_DEFAULT_VIEWPORT_MAX_DEPTH = 0.0!
MACRO D3D11_DEFAULT_VIEWPORT_MIN_DEPTH = 0.0!
%EQUATE `D3D11_DEFAULT_VIEWPORT_TOPLEFTX = 0
%EQUATE `D3D11_DEFAULT_VIEWPORT_TOPLEFTY = 0
%EQUATE `D3D11_DEFAULT_VIEWPORT_WIDTH = 0
%EQUATE `D3D11_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS = 3968
%EQUATE `D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS = 4
%EQUATE `D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT = 32
%EQUATE `D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST = 2
%EQUATE `D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS = 1
%EQUATE `D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS = 3
%EQUATE `D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT = 1
%EQUATE `D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST = 2
%EQUATE `D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS = 1
%EQUATE `D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS = 4
%EQUATE `D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT = 32
%EQUATE `D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST = 2
%EQUATE `D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS = 1
%EQUATE `D3D11_DS_OUTPUT_REGISTER_COMPONENTS = 4
%EQUATE `D3D11_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_DS_OUTPUT_REGISTER_COUNT = 32
MACRO D3D11_FLOAT16_FUSED_TOLERANCE_IN_ULP = 0.6
MACRO D3D11_FLOAT32_MAX = 3.402823466e+38!
MACRO D3D11_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP = 0.6!
MACRO D3D11_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR = 2.4!
MACRO D3D11_FLOAT_TO_SRGB_EXPONENT_NUMERATOR = 1.0!
MACRO D3D11_FLOAT_TO_SRGB_OFFSET = 0.055!
MACRO D3D11_FLOAT_TO_SRGB_SCALE_1 = 12.92!
MACRO D3D11_FLOAT_TO_SRGB_SCALE_2 = 1.055!
MACRO D3D11_FLOAT_TO_SRGB_THRESHOLD = 0.0031308!
MACRO D3D11_FTOI_INSTRUCTION_MAX_INPUT = 2147483647.999!
MACRO D3D11_FTOI_INSTRUCTION_MIN_INPUT = -2147483648.999!
MACRO D3D11_FTOU_INSTRUCTION_MAX_INPUT = 4294967295.999!
MACRO D3D11_FTOU_INSTRUCTION_MIN_INPUT = 0.0!
%EQUATE `D3D11_GS_INPUT_INSTANCE_ID_READS_PER_INST = 2
%EQUATE `D3D11_GS_INPUT_INSTANCE_ID_READ_PORTS = 1
%EQUATE `D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS = 1
%EQUATE `D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COUNT = 1
%EQUATE `D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS = 1
%EQUATE `D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_GS_INPUT_PRIM_CONST_REGISTER_COUNT = 1
%EQUATE `D3D11_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST = 2
%EQUATE `D3D11_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS = 1
%EQUATE `D3D11_GS_INPUT_REGISTER_COMPONENTS = 4
%EQUATE `D3D11_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_GS_INPUT_REGISTER_COUNT = 32
%EQUATE `D3D11_GS_INPUT_REGISTER_READS_PER_INST = 2
%EQUATE `D3D11_GS_INPUT_REGISTER_READ_PORTS = 1
%EQUATE `D3D11_GS_INPUT_REGISTER_VERTICES = 32
%EQUATE `D3D11_GS_MAX_INSTANCE_COUNT = 32
%EQUATE `D3D11_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES = 1024
%EQUATE `D3D11_GS_OUTPUT_ELEMENTS = 32
%EQUATE `D3D11_GS_OUTPUT_REGISTER_COMPONENTS = 4
%EQUATE `D3D11_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_GS_OUTPUT_REGISTER_COUNT = 32
%EQUATE `D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT = 32
%EQUATE `D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT = 32
%EQUATE `D3D11_HS_CONTROL_POINT_REGISTER_COMPONENTS = 4
%EQUATE `D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_HS_CONTROL_POINT_REGISTER_READS_PER_INST = 2
%EQUATE `D3D11_HS_CONTROL_POINT_REGISTER_READ_PORTS = 1
%EQUATE `D3D11_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND = &Hffffffff
%EQUATE `D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS = 1
%EQUATE `D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT = 1
%EQUATE `D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST = 2
%EQUATE `D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS = 1
%EQUATE `D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS = 1
%EQUATE `D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT = 1
%EQUATE `D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST = 2
%EQUATE `D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS = 1
%EQUATE `D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS = 1
%EQUATE `D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT = 1
%EQUATE `D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST = 2
%EQUATE `D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS = 1
%EQUATE `D3D11_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND = &Hffffffff
MACRO D3D11_HS_MAXTESSFACTOR_LOWER_BOUND = 1.0!
MACRO D3D11_HS_MAXTESSFACTOR_UPPER_BOUND = 64.0!
%EQUATE `D3D11_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS = 3968
%EQUATE `D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS = 1
%EQUATE `D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT = 1
%EQUATE `D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST = 2
%EQUATE `D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS = 1
%EQUATE `D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS = 4
%EQUATE `D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT = 32
%EQUATE `D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST = 2
%EQUATE `D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS = 1
%EQUATE `D3D11_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES = 0
%EQUATE `D3D11_IA_DEFAULT_PRIMITIVE_TOPOLOGY = 0
%EQUATE `D3D11_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES = 0
%EQUATE `D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT = 1
%EQUATE `D3D11_IA_INSTANCE_ID_BIT_COUNT = 32
%EQUATE `D3D11_IA_INTEGER_ARITHMETIC_BIT_COUNT = 32
%EQUATE `D3D11_IA_PATCH_MAX_CONTROL_POINT_COUNT = 32
%EQUATE `D3D11_IA_PRIMITIVE_ID_BIT_COUNT = 32
%EQUATE `D3D11_IA_VERTEX_ID_BIT_COUNT = 32
%EQUATE `D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 32
%EQUATE `D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 128
%EQUATE `D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 32
%EQUATE `D3D11_INTEGER_DIVIDE_BY_ZERO_QUOTIENT = &Hffffffff
%EQUATE `D3D11_INTEGER_DIVIDE_BY_ZERO_REMAINDER = &Hffffffff
%EQUATE `D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL = &Hffffffff
%EQUATE `D3D11_KEEP_UNORDERED_ACCESS_VIEWS = &Hffffffff
MACRO D3D11_LINEAR_GAMMA = 1.0!
%EQUATE `D3D11_MAJOR_VERSION = 11
MACRO D3D11_MAX_BORDER_COLOR_COMPONENT = 1.0!
MACRO D3D11_MAX_DEPTH = 1.0!
%EQUATE `D3D11_MAX_MAXANISOTROPY = 16
%EQUATE `D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT = 32
MACRO D3D11_MAX_POSITION_VALUE = 3.402823466e+34!
%EQUATE `D3D11_MAX_TEXTURE_DIMENSION_2_TO_EXP = 17
%EQUATE `D3D11_MINOR_VERSION = 0
MACRO D3D11_MIN_BORDER_COLOR_COMPONENT = 0.0!
MACRO D3D11_MIN_DEPTH = 0.0!
%EQUATE `D3D11_MIN_MAXANISOTROPY = 0
MACRO D3D11_MIP_LOD_BIAS_MAX = 15.99!
MACRO D3D11_MIP_LOD_BIAS_MIN = -16.0!
%EQUATE `D3D11_MIP_LOD_FRACTIONAL_BIT_COUNT = 8
%EQUATE `D3D11_MIP_LOD_RANGE_BIT_COUNT = 8
MACRO D3D11_MULTISAMPLE_ANTIALIAS_LINE_WIDTH = 1.4!
%EQUATE `D3D11_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT = 0
%EQUATE `D3D11_PIXEL_ADDRESS_RANGE_BIT_COUNT = 15
%EQUATE `D3D11_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT = 16
%EQUATE `D3D11_PS_CS_UAV_REGISTER_COMPONENTS = 1
%EQUATE `D3D11_PS_CS_UAV_REGISTER_COUNT = 8
%EQUATE `D3D11_PS_CS_UAV_REGISTER_READS_PER_INST = 1
%EQUATE `D3D11_PS_CS_UAV_REGISTER_READ_PORTS = 1
%EQUATE `D3D11_PS_FRONTFACING_DEFAULT_VALUE = &Hffffffff
%EQUATE `D3D11_PS_FRONTFACING_FALSE_VALUE = 0
%EQUATE `D3D11_PS_FRONTFACING_TRUE_VALUE = &Hffffffff
%EQUATE `D3D11_PS_INPUT_REGISTER_COMPONENTS = 4
%EQUATE `D3D11_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_PS_INPUT_REGISTER_COUNT = 32
%EQUATE `D3D11_PS_INPUT_REGISTER_READS_PER_INST = 2
%EQUATE `D3D11_PS_INPUT_REGISTER_READ_PORTS = 1
MACRO D3D11_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT = 0.0!
%EQUATE `D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS = 1
%EQUATE `D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT = 1
%EQUATE `D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENTS = 1
%EQUATE `D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_PS_OUTPUT_MASK_REGISTER_COUNT = 1
%EQUATE `D3D11_PS_OUTPUT_REGISTER_COMPONENTS = 4
%EQUATE `D3D11_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_PS_OUTPUT_REGISTER_COUNT = 8
MACRO D3D11_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT = 0.5!
%EQUATE `D3D11_RAW_UAV_SRV_BYTE_ALIGNMENT = 16
%EQUATE `D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE = 4096
%EQUATE `D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP = 27
%EQUATE `D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT = 4096
%EQUATE `D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE = 4096
%EQUATE `D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 32
%EQUATE `D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP = 32
%EQUATE `D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION = 16384
%EQUATE `D3D11_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT = 1024
%EQUATE `D3D11_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT = 4096
%EQUATE `D3D11_REQ_MAXANISOTROPY = 16
%EQUATE `D3D11_REQ_MIP_LEVELS = 15
%EQUATE `D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES = 2048
%EQUATE `D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE = 4096
%EQUATE `D3D11_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH = 16384
%EQUATE `D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM = 128
MACRO D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM = 0.25!
%EQUATE `D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP = 20
%EQUATE `D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE = 4096
%EQUATE `D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = 2048
%EQUATE `D3D11_REQ_TEXTURE1D_U_DIMENSION = 16384
%EQUATE `D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION = 2048
%EQUATE `D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION = 16384
%EQUATE `D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 2048
%EQUATE `D3D11_REQ_TEXTURECUBE_DIMENSION = 16384
%EQUATE `D3D11_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL = 0
%EQUATE `D3D11_SHADER_MAJOR_VERSION = 5
%EQUATE `D3D11_SHADER_MAX_INSTANCES = 65535
%EQUATE `D3D11_SHADER_MAX_INTERFACES = 256
%EQUATE `D3D11_SHADER_MAX_INTERFACE_CALL_SITES = 4096
%EQUATE `D3D11_SHADER_MAX_TYPES = 65535
%EQUATE `D3D11_SHADER_MINOR_VERSION = 0
%EQUATE `D3D11_SHIFT_INSTRUCTION_PAD_VALUE = 0
%EQUATE `D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT = 5
%EQUATE `D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT = 8
%EQUATE `D3D11_SO_BUFFER_MAX_STRIDE_IN_BYTES = 2048
%EQUATE `D3D11_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = 512
%EQUATE `D3D11_SO_BUFFER_SLOT_COUNT = 4
%EQUATE `D3D11_SO_DDI_REGISTER_INDEX_DENOTING_GAP = &Hffffffff
%EQUATE `D3D11_SO_NO_RASTERIZED_STREAM = &Hffffffff
%EQUATE `D3D11_SO_OUTPUT_COMPONENT_COUNT = 128
%EQUATE `D3D11_SO_STREAM_COUNT = 4
%EQUATE `D3D11_SPEC_DATE_DAY = 19
%EQUATE `D3D11_SPEC_DATE_MONTH = 02
%EQUATE `D3D11_SPEC_DATE_YEAR = 2009
MACRO D3D11_SPEC_VERSION = 0.01
MACRO D3D11_SRGB_GAMMA = 2.2!
MACRO D3D11_SRGB_TO_FLOAT_DENOMINATOR_1 = 12.92!
MACRO D3D11_SRGB_TO_FLOAT_DENOMINATOR_2 = 1.055!
MACRO D3D11_SRGB_TO_FLOAT_EXPONENT = 2.4!
MACRO D3D11_SRGB_TO_FLOAT_OFFSET = 0.055!
MACRO D3D11_SRGB_TO_FLOAT_THRESHOLD = 0.04045!
MACRO D3D11_SRGB_TO_FLOAT_TOLERANCE_IN_ULP = 0.5!
%EQUATE `D3D11_STANDARD_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_STANDARD_COMPONENT_BIT_COUNT_DOUBLED = 64
%EQUATE `D3D11_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE = 4
%EQUATE `D3D11_STANDARD_PIXEL_COMPONENT_COUNT = 128
%EQUATE `D3D11_STANDARD_PIXEL_ELEMENT_COUNT = 32
%EQUATE `D3D11_STANDARD_VECTOR_SIZE = 4
%EQUATE `D3D11_STANDARD_VERTEX_ELEMENT_COUNT = 32
%EQUATE `D3D11_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT = 64
%EQUATE `D3D11_SUBPIXEL_FRACTIONAL_BIT_COUNT = 8
%EQUATE `D3D11_SUBTEXEL_FRACTIONAL_BIT_COUNT = 8
%EQUATE `D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR = 64
%EQUATE `D3D11_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR = 64
%EQUATE `D3D11_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR = 63
%EQUATE `D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR = 64
%EQUATE `D3D11_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR = 2
%EQUATE `D3D11_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR = 1
%EQUATE `D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR = 1
%EQUATE `D3D11_TEXEL_ADDRESS_RANGE_BIT_COUNT = 16
%EQUATE `D3D11_UNBOUND_MEMORY_ACCESS_RESULT = 0
%EQUATE `D3D11_VIEWPORT_AND_SCISSORRECT_MAX_INDEX = 15
%EQUATE `D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16
%EQUATE `D3D11_VIEWPORT_BOUNDS_MAX = 32767
%EQUATE `D3D11_VIEWPORT_BOUNDS_MIN = -32768
%EQUATE `D3D11_VS_INPUT_REGISTER_COMPONENTS = 4
%EQUATE `D3D11_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_VS_INPUT_REGISTER_COUNT = 32
%EQUATE `D3D11_VS_INPUT_REGISTER_READS_PER_INST = 2
%EQUATE `D3D11_VS_INPUT_REGISTER_READ_PORTS = 1
%EQUATE `D3D11_VS_OUTPUT_REGISTER_COMPONENTS = 4
%EQUATE `D3D11_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32
%EQUATE `D3D11_VS_OUTPUT_REGISTER_COUNT = 32
%EQUATE `D3D11_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT = 10
%EQUATE `D3D11_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 25
%EQUATE `D3D11_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP = 25
#ENDIF ' #IF NOT %DEF(%D3D11_CONSTANTS)
%EQUATE `FACD3D11 = &H87c
%EQUATE `FACD3D11DEBUG = %FACD3D11 + 1
'#define MAKE_D3D11_HRESULT( code ) MAKE_HRESULT( 1, _FACD3D11, code )
MACRO MAKE_D3D11_HRESULT(ncode) = MAKE_HRESULT(1, %FACD3D11, ncode)
'#define MAKE_D3D11_STATUS( code ) MAKE_HRESULT( 0, _FACD3D11, code )
MACRO MAKE_D3D11_STATUS(ncode) = MAKE_HRESULT(0, %FACD3D11, ncode)
'#define D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS MAKE_D3D11_HRESULT(1)
%EQUATE `D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS = &H887C0001&
'#define D3D11_ERROR_FILE_NOT_FOUND MAKE_D3D11_HRESULT(2)
%EQUATE `D3D11_ERROR_FILE_NOT_FOUND = &H887C0002&
'#define D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS MAKE_D3D11_HRESULT(3)
%EQUATE `D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS = &H887C0003&
'#define D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD MAKE_D3D11_HRESULT(4)
%EQUATE `D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD = &H887C0004&
' enum D3D11_INPUT_CLASSIFICATION
%EQUATE `D3D11_INPUT_PER_VERTEX_DATA = 0
%EQUATE `D3D11_INPUT_PER_INSTANCE_DATA = 1
%EQUATE `D3D11_APPEND_ALIGNED_ELEMENT = &Hffffffff
' // Size = 28 bytes
TYPE D3D11_INPUT_ELEMENT_DESC DWORD
 SemanticName AS ASCIIZ PTR
 SemanticIndex AS DWORD ' UINT
 Format AS DWORD ' DXGI_FORMAT
 InputSlot AS DWORD ' UINT
 AlignedByteOffset AS DWORD ' UINT
 InputSlotClass AS DWORD ' D3D11_INPUT_CLASSIFICATION
 InstanceDataStepRate AS DWORD ' UINT
END TYPE
' enum D3D11_FILL_MODE
%EQUATE `D3D11_FILL_WIREFRAME = 2
%EQUATE `D3D11_FILL_SOLID = 3
' enum D3D11_PRIMITIVE_TOPOLOGY
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED = 0
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_POINTLIST = 1
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_LINELIST = 2
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP = 3
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = 34
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = 35
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = 36
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = 37
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = 38
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = 39
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = 40
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = 41
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = 42
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = 43
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = 44
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = 45
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = 46
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = 47
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = 48
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = 49
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = 50
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = 51
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = 52
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = 53
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = 54
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = 55
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = 56
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = 57
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = 58
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = 59
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = 60
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = 61
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = 62
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = 63
%EQUATE `D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = 64
' enum D3D11_PRIMITIVE
%EQUATE `D3D11_PRIMITIVE_UNDEFINED = 0
%EQUATE `D3D11_PRIMITIVE_POINT = 1
%EQUATE `D3D11_PRIMITIVE_LINE = 2
%EQUATE `D3D11_PRIMITIVE_TRIANGLE = 3
%EQUATE `D3D11_PRIMITIVE_LINE_ADJ = 6
%EQUATE `D3D11_PRIMITIVE_TRIANGLE_ADJ = 7
%EQUATE `D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH = 8
%EQUATE `D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH = 9
%EQUATE `D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH = 10
%EQUATE `D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH = 11
%EQUATE `D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH = 12
%EQUATE `D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH = 13
%EQUATE `D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH = 14
%EQUATE `D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH = 15
%EQUATE `D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH = 16
%EQUATE `D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH = 17
%EQUATE `D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH = 18
%EQUATE `D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH = 19
%EQUATE `D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH = 20
%EQUATE `D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH = 21
%EQUATE `D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH = 22
%EQUATE `D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH = 23
%EQUATE `D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH = 24
%EQUATE `D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH = 25
%EQUATE `D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH = 26
%EQUATE `D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH = 27
%EQUATE `D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH = 28
%EQUATE `D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH = 29
%EQUATE `D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH = 30
%EQUATE `D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH = 31
%EQUATE `D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH = 32
%EQUATE `D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH = 33
%EQUATE `D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH = 34
%EQUATE `D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH = 35
%EQUATE `D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH = 36
%EQUATE `D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH = 37
%EQUATE `D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH = 38
%EQUATE `D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH = 39
' enum D3D11_CULL_MODE
%EQUATE `D3D11_CULL_NONE = 1
%EQUATE `D3D11_CULL_FRONT = 2
%EQUATE `D3D11_CULL_BACK = 3
' // Size = 16 bytes
TYPE D3D11_SO_DECLARATION_ENTRY BYTE
 Stream AS DWORD ' UINT
 SemanticName AS ASCIIZ PTR
 SemanticIndex AS DWORD ' UINT
 StartComponent AS BYTE ' BYTE
 ComponentCount AS BYTE ' BYTE
 OutputSlot AS BYTE ' BYTE
 filler_ AS BYTE ' // To keep alignment
END TYPE
' // Size = 24 bytes
TYPE D3D11_VIEWPORT DWORD
 TopLeftX AS SINGLE ' FLOAT
 TopLeftY AS SINGLE ' FLOAT
 Width AS SINGLE ' FLOAT
 Height AS SINGLE ' FLOAT
 MinDepth AS SINGLE ' FLOAT
 MaxDepth AS SINGLE ' FLOAT
END TYPE
' enum D3D11_RESOURCE_DIMENSION
%EQUATE `D3D11_RESOURCE_DIMENSION_UNKNOWN = 0
%EQUATE `D3D11_RESOURCE_DIMENSION_BUFFER = 1
%EQUATE `D3D11_RESOURCE_DIMENSION_TEXTURE1D = 2
%EQUATE `D3D11_RESOURCE_DIMENSION_TEXTURE2D = 3
%EQUATE `D3D11_RESOURCE_DIMENSION_TEXTURE3D = 4
' enum D3D11_SRV_DIMENSION
%EQUATE `D3D11_SRV_DIMENSION_UNKNOWN = 0
%EQUATE `D3D11_SRV_DIMENSION_BUFFER = 1
%EQUATE `D3D11_SRV_DIMENSION_TEXTURE1D = 2
%EQUATE `D3D11_SRV_DIMENSION_TEXTURE1DARRAY = 3
%EQUATE `D3D11_SRV_DIMENSION_TEXTURE2D = 4
%EQUATE `D3D11_SRV_DIMENSION_TEXTURE2DARRAY = 5
%EQUATE `D3D11_SRV_DIMENSION_TEXTURE2DMS = 6
%EQUATE `D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY = 7
%EQUATE `D3D11_SRV_DIMENSION_TEXTURE3D = 8
%EQUATE `D3D11_SRV_DIMENSION_TEXTURECUBE = 9
%EQUATE `D3D11_SRV_DIMENSION_TEXTURECUBEARRAY = 10
%EQUATE `D3D11_SRV_DIMENSION_BUFFEREX = 11
' enum D3D11_DSV_DIMENSION
%EQUATE `D3D11_DSV_DIMENSION_UNKNOWN = 0
%EQUATE `D3D11_DSV_DIMENSION_TEXTURE1D = 1
%EQUATE `D3D11_DSV_DIMENSION_TEXTURE1DARRAY = 2
%EQUATE `D3D11_DSV_DIMENSION_TEXTURE2D = 3
%EQUATE `D3D11_DSV_DIMENSION_TEXTURE2DARRAY = 4
%EQUATE `D3D11_DSV_DIMENSION_TEXTURE2DMS = 5
%EQUATE `D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY = 6
' enum D3D11_RTV_DIMENSION
%EQUATE `D3D11_RTV_DIMENSION_UNKNOWN = 0
%EQUATE `D3D11_RTV_DIMENSION_BUFFER = 1
%EQUATE `D3D11_RTV_DIMENSION_TEXTURE1D = 2
%EQUATE `D3D11_RTV_DIMENSION_TEXTURE1DARRAY = 3
%EQUATE `D3D11_RTV_DIMENSION_TEXTURE2D = 4
%EQUATE `D3D11_RTV_DIMENSION_TEXTURE2DARRAY = 5
%EQUATE `D3D11_RTV_DIMENSION_TEXTURE2DMS = 6
%EQUATE `D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY = 7
%EQUATE `D3D11_RTV_DIMENSION_TEXTURE3D = 8
' enum D3D11_UAV_DIMENSION
%EQUATE `D3D11_UAV_DIMENSION_UNKNOWN = 0
%EQUATE `D3D11_UAV_DIMENSION_BUFFER = 1
%EQUATE `D3D11_UAV_DIMENSION_TEXTURE1D = 2
%EQUATE `D3D11_UAV_DIMENSION_TEXTURE1DARRAY = 3
%EQUATE `D3D11_UAV_DIMENSION_TEXTURE2D = 4
%EQUATE `D3D11_UAV_DIMENSION_TEXTURE2DARRAY = 5
%EQUATE `D3D11_UAV_DIMENSION_TEXTURE3D = 8
' enum D3D11_USAGE
%EQUATE `D3D11_USAGE_DEFAULT = 0
%EQUATE `D3D11_USAGE_IMMUTABLE = 1
%EQUATE `D3D11_USAGE_DYNAMIC = 2
%EQUATE `D3D11_USAGE_STAGING = 3
' enum D3D11_BIND_FLAG
%EQUATE `D3D11_BIND_VERTEX_BUFFER = &H1
%EQUATE `D3D11_BIND_INDEX_BUFFER = &H2
%EQUATE `D3D11_BIND_CONSTANT_BUFFER = &H4
%EQUATE `D3D11_BIND_SHADER_RESOURCE = &H8
%EQUATE `D3D11_BIND_STREAM_OUTPUT = &H10
%EQUATE `D3D11_BIND_RENDER_TARGET = &H20
%EQUATE `D3D11_BIND_DEPTH_STENCIL = &H40
%EQUATE `D3D11_BIND_UNORDERED_ACCESS = &H80
' enum D3D11_CPU_ACCESS_FLAG
%EQUATE `D3D11_CPU_ACCESS_WRITE = &H10000
%EQUATE `D3D11_CPU_ACCESS_READ = &H20000
' enum D3D11_RESOURCE_MISC_FLAG
%EQUATE `D3D11_RESOURCE_MISC_GENERATE_MIPS = &H1
%EQUATE `D3D11_RESOURCE_MISC_SHARED = &H2
%EQUATE `D3D11_RESOURCE_MISC_TEXTURECUBE = &H4
%EQUATE `D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS = &H10
%EQUATE `D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = &H20
%EQUATE `D3D11_RESOURCE_MISC_BUFFER_STRUCTURED = &H40
%EQUATE `D3D11_RESOURCE_MISC_RESOURCE_CLAMP = &H80
%EQUATE `D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX = &H100
%EQUATE `D3D11_RESOURCE_MISC_GDI_COMPATIBLE = &H200
' enum D3D11_MAP
%EQUATE `D3D11_MAP_READ = 1
%EQUATE `D3D11_MAP_WRITE = 2
%EQUATE `D3D11_MAP_READ_WRITE = 3
%EQUATE `D3D11_MAP_WRITE_DISCARD = 4
%EQUATE `D3D11_MAP_WRITE_NO_OVERWRITE = 5
' enum D3D11_MAP_FLAG
%EQUATE `D3D11_MAP_FLAG_DO_NOT_WAIT = &H100000
' enum D3D11_RAISE_FLAG
%EQUATE `D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR = &H1
' enum D3D11_CLEAR_FLAG
%EQUATE `D3D11_CLEAR_DEPTH = &H1
%EQUATE `D3D11_CLEAR_STENCIL = &H2
'typedef RECT D3D11_RECT;
MACRO D3D11_RECT = RECT
' // Size = 24 bytes
TYPE D3D11_BOX DWORD
 left AS DWORD ' UINT
 top AS DWORD ' UINT
 front AS DWORD ' UINT
 right AS DWORD ' UINT
 bottom AS DWORD ' UINT
 back AS DWORD ' UINT
END TYPE
' ########################################################################################
' ID3D11DeviceChild interface
' IID = 1841e5c8-16b0-489b-bcc8-44cfb0d5deae
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ID3D11DeviceChild_INTERFACE_DEFINED)
 %ID3D11DeviceChild_INTERFACE_DEFINED = 1
INTERFACE ID3D11DeviceChild $IID_ID3D11DeviceChild
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11DeviceChild_INTERFACE_DEFINED__ */
' enum D3D11_COMPARISON_FUNC
%EQUATE `D3D11_COMPARISON_NEVER = 1
%EQUATE `D3D11_COMPARISON_LESS = 2
%EQUATE `D3D11_COMPARISON_EQUAL = 3
%EQUATE `D3D11_COMPARISON_LESS_EQUAL = 4
%EQUATE `D3D11_COMPARISON_GREATER = 5
%EQUATE `D3D11_COMPARISON_NOT_EQUAL = 6
%EQUATE `D3D11_COMPARISON_GREATER_EQUAL = 7
%EQUATE `D3D11_COMPARISON_ALWAYS = 8
' enum D3D11_DEPTH_WRITE_MASK
%EQUATE `D3D11_DEPTH_WRITE_MASK_ZERO = 0
%EQUATE `D3D11_DEPTH_WRITE_MASK_ALL = 1
' enum D3D11_STENCIL_OP
%EQUATE `D3D11_STENCIL_OP_KEEP = 1
%EQUATE `D3D11_STENCIL_OP_ZERO = 2
%EQUATE `D3D11_STENCIL_OP_REPLACE = 3
%EQUATE `D3D11_STENCIL_OP_INCR_SAT = 4
%EQUATE `D3D11_STENCIL_OP_DECR_SAT = 5
%EQUATE `D3D11_STENCIL_OP_INVERT = 6
%EQUATE `D3D11_STENCIL_OP_INCR = 7
%EQUATE `D3D11_STENCIL_OP_DECR = 8
' // Size = 16 bytes
TYPE D3D11_DEPTH_STENCILOP_DESC DWORD
 StencilFailOp AS LONG ' D3D11_STENCIL_OP
 StencilDepthFailOp AS LONG ' D3D11_STENCIL_OP
 StencilPassOp AS LONG ' D3D11_STENCIL_OP
 StencilFunc AS LONG ' D3D11_COMPARISON_FUNC
END TYPE
' // Size = 52 bytes
TYPE D3D11_DEPTH_STENCIL_DESC WORD
 DepthEnable AS LONG
 DepthWriteMask AS LONG ' D3D11_DEPTH_WRITE_MASK
 DepthFunc AS LONG ' D3D11_COMPARISON_FUNC
 StencilEnable AS LONG
 StencilReadMask AS WORD ' UINT8
 StencilWriteMask AS WORD ' UINT8
 FrontFace AS D3D11_DEPTH_STENCILOP_DESC
 BackFace AS D3D11_DEPTH_STENCILOP_DESC
END TYPE
' ########################################################################################
' ID3D11DepthStencilState interface
' IID = 03823efb-8d8f-4e1c-9aa2-f64bb2cbfdf1
' Inherited interface = ID3D11DeviceChild
' ########################################################################################
#IF NOT %DEF(%ID3D11DepthStencilState_INTERFACE_DEFINED)
 %ID3D11DepthStencilState_INTERFACE_DEFINED = 1
INTERFACE ID3D11DepthStencilState $IID_ID3D11DepthStencilState
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11DepthStencilState method
 ' =====================================================================================
 METHOD GetDesc ( ' VTable offset = 28
 BYREF pDesc AS D3D11_DEPTH_STENCIL_DESC
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11DepthStencilState_INTERFACE_DEFINED__ */
' enum D3D11_BLEND
%EQUATE `D3D11_BLEND_ZERO = 1
%EQUATE `D3D11_BLEND_ONE = 2
%EQUATE `D3D11_BLEND_SRC_COLOR = 3
%EQUATE `D3D11_BLEND_INV_SRC_COLOR = 4
%EQUATE `D3D11_BLEND_SRC_ALPHA = 5
%EQUATE `D3D11_BLEND_INV_SRC_ALPHA = 6
%EQUATE `D3D11_BLEND_DEST_ALPHA = 7
%EQUATE `D3D11_BLEND_INV_DEST_ALPHA = 8
%EQUATE `D3D11_BLEND_DEST_COLOR = 9
%EQUATE `D3D11_BLEND_INV_DEST_COLOR = 10
%EQUATE `D3D11_BLEND_SRC_ALPHA_SAT = 11
%EQUATE `D3D11_BLEND_BLEND_FACTOR = 14
%EQUATE `D3D11_BLEND_INV_BLEND_FACTOR = 15
%EQUATE `D3D11_BLEND_SRC1_COLOR = 16
%EQUATE `D3D11_BLEND_INV_SRC1_COLOR = 17
%EQUATE `D3D11_BLEND_SRC1_ALPHA = 18
%EQUATE `D3D11_BLEND_INV_SRC1_ALPHA = 19
' enum D3D11_BLEND_OP
%EQUATE `D3D11_BLEND_OP_ADD = 1
%EQUATE `D3D11_BLEND_OP_SUBTRACT = 2
%EQUATE `D3D11_BLEND_OP_REV_SUBTRACT = 3
%EQUATE `D3D11_BLEND_OP_MIN = 4
%EQUATE `D3D11_BLEND_OP_MAX = 5
' enum D3D11_COLOR_WRITE_ENABLE
%EQUATE `D3D11_COLOR_WRITE_ENABLE_RED = 1
%EQUATE `D3D11_COLOR_WRITE_ENABLE_GREEN = 2
%EQUATE `D3D11_COLOR_WRITE_ENABLE_BLUE = 4
%EQUATE `D3D11_COLOR_WRITE_ENABLE_ALPHA = 8
%EQUATE `D3D11_COLOR_WRITE_ENABLE_ALL = (((%D3D11_COLOR_WRITE_ENABLE_RED OR %D3D11_COLOR_WRITE_ENABLE_GREEN) OR %D3D11_COLOR_WRITE_ENABLE_BLUE) OR %D3D11_COLOR_WRITE_ENABLE_ALPHA)
' // Size = 32 bytes
TYPE D3D11_RENDER_TARGET_BLEND_DESC DWORD
 BlendEnable AS LONG
 SrcBlend AS LONG ' D3D11_BLEND
 DestBlend AS LONG ' D3D11_BLEND
 BlendOp AS LONG ' D3D11_BLEND_OP
 SrcBlendAlpha AS LONG ' D3D11_BLEND
 DestBlendAlpha AS LONG ' D3D11_BLEND
 BlendOpAlpha AS LONG ' D3D11_BLEND
 RenderTargetWriteMask AS WORD ' UINT8
END TYPE
' // Size = 264 bytes
TYPE D3D11_BLEND_DESC DWORD
 AlphaToCoverageEnable AS LONG
 IndependentBlendEnable AS LONG
 RenderTarget(7) AS D3D11_RENDER_TARGET_BLEND_DESC
END TYPE
' ########################################################################################
' ID3D11BlendState interface
' IID = 75b68faa-347d-4159-8f45-a0640f01cd9a
' Inherited interface = ID3D11DeviceChild
' ########################################################################################
#IF NOT %DEF(%ID3D11BlendState_INTERFACE_DEFINED)
 %ID3D11BlendState_INTERFACE_DEFINED = 1
INTERFACE ID3D11BlendState $IID_ID3D11BlendState
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11BlendState method
 ' =====================================================================================
 METHOD GetDesc ( ' VTable offset = 28
 BYREF pDesc AS D3D11_BLEND_DESC
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11BlendState_INTERFACE_DEFINED__ */
' // Size = 40 bytes
TYPE D3D11_RASTERIZER_DESC DWORD
 FillMode AS LONG ' D3D11_FILL_MODE
 CullMode AS LONG ' D3D11_CULL_MODE
 FrontCounterClockwise AS LONG
 DepthBias AS LONG ' INT
 DepthBiasClamp AS SINGLE ' FLOAT
 SlopeScaledDepthBias AS SINGLE ' FLOAT
 DepthClipEnable AS LONG
 ScissorEnable AS LONG
 MultisampleEnable AS LONG
 AntialiasedLineEnable AS LONG
END TYPE
' ########################################################################################
' ID3D11RasterizerState interface
' IID = 9bb4ab81-ab1a-4d8f-b506-fc04200b6ee7
' Inherited interface = ID3D11DeviceChild
' ########################################################################################
#IF NOT %DEF(%ID3D11RasterizerState_INTERFACE_DEFINED)
 %ID3D11RasterizerState_INTERFACE_DEFINED = 1
INTERFACE ID3D11RasterizerState $IID_ID3D11RasterizerState
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11RasterizerState method
 ' =====================================================================================
 METHOD GetDesc ( ' VTable offset = 28
 BYREF pDesc AS D3D11_RASTERIZER_DESC
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11RasterizerState_INTERFACE_DEFINED__ */
' // Size = 12 bytes
TYPE D3D11_SUBRESOURCE_DATA DWORD
 pSysMem AS DWORD ' const void *
 SysMemPitch AS DWORD ' UINT
 SysMemSlicePitch AS DWORD ' UINT
END TYPE
' // Size = 12 bytes
TYPE D3D11_MAPPED_SUBRESOURCE DWORD
 pData AS DWORD ' void *
 RowPitch AS DWORD ' UINT
 DepthPitch AS DWORD ' UINT
END TYPE
' ########################################################################################
' ID3D11Resource interface
' IID = dc8e63f3-d12b-4952-b47b-5e45026a862d
' Inherited interface = ID3D11DeviceChild
' ########################################################################################
#IF NOT %DEF(%ID3D11Resource_INTERFACE_DEFINED)
 %ID3D11Resource_INTERFACE_DEFINED = 1
INTERFACE ID3D11Resource $IID_ID3D11Resource
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11Resource methods
 ' =====================================================================================
 METHOD GetType ( ' VTable offset = 28
 BYREF pResourceDimension AS LONG
 ) ' void
 ' =====================================================================================
 METHOD SetEvictionPriority ( ' VTable offset = 32
 BYVAL EvictionPriority AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD GetEvictionPriority ( ' VTable offset = 36
 ) AS DWORD ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11Resource_INTERFACE_DEFINED__ */
' // Size = 24 bytes
TYPE D3D11_BUFFER_DESC DWORD
 ByteWidth AS DWORD ' UINT
 Usage AS LONG ' D3D11_USAGE
 BindFlags AS DWORD ' UINT
 CPUAccessFlags AS DWORD ' UINT
 MiscFlags AS DWORD ' UINT
 StructureByteStride AS DWORD ' UINT
END TYPE
' ########################################################################################
' ID3D11Buffer interface
' IID = 48570b85-d1ee-4fcd-a250-eb350722b037
' Inherited interface = ID3D11Resource
' ########################################################################################
#IF NOT %DEF(%ID3D11Buffer_INTERFACE_DEFINED)
 %ID3D11Buffer_INTERFACE_DEFINED = 1
INTERFACE ID3D11Buffer $IID_ID3D11Buffer
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11Resource methods
 ' =====================================================================================
 METHOD GetType ( ' VTable offset = 28
 BYREF pResourceDimension AS LONG
 ) ' void
 ' =====================================================================================
 METHOD SetEvictionPriority ( ' VTable offset = 32
 BYVAL EvictionPriority AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD GetEvictionPriority ( ' VTable offset = 36
 ) AS DWORD ' void
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11Buffer method
 ' =====================================================================================
 METHOD GetDesc ( ' VTable offset = 40
 BYREF pDesc AS D3D11_BUFFER_DESC
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11Buffer_INTERFACE_DEFINED__ */
' // Size = 32 bytes
TYPE D3D11_TEXTURE1D_DESC DWORD
 Width AS DWORD ' UINT
 MipLevels AS DWORD ' UINT
 ArraySize AS DWORD ' UINT
 Format AS DWORD ' DXGI_FORMAT
 Usage AS LONG ' D3D11_USAGE
 BindFlags AS DWORD ' UINT
 CPUAccessFlags AS DWORD ' UINT
 MiscFlags AS DWORD ' UINT
END TYPE
' ########################################################################################
' ID3D11Texture1D interface
' IID = f8fb5c27-c6b3-4f75-a4c8-439af2ef564c
' Inherited interface = ID3D11Resource
' ########################################################################################
#IF NOT %DEF(%ID3D11Texture1D_INTERFACE_DEFINED)
 %ID3D11Texture1D_INTERFACE_DEFINED = 1
INTERFACE ID3D11Texture1D $IID_ID3D11Texture1D
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11Resource methods
 ' =====================================================================================
 METHOD GetType ( ' VTable offset = 28
 BYREF pResourceDimension AS LONG
 ) ' void
 ' =====================================================================================
 METHOD SetEvictionPriority ( ' VTable offset = 32
 BYVAL EvictionPriority AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD GetEvictionPriority ( ' VTable offset = 36
 ) AS DWORD ' void
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11Texture1D method
 ' =====================================================================================
 METHOD GetDesc ( ' VTable offset = 40
 BYREF pDesc AS D3D11_TEXTURE1D_DESC
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11Texture1D_INTERFACE_DEFINED__ */
' // Size = 44 bytes
TYPE D3D11_TEXTURE2D_DESC DWORD
 Width AS DWORD ' UINT
 Height AS DWORD ' UINT
 MipLevels AS DWORD ' UINT
 ArraySize AS DWORD ' UINT
 Format AS DWORD ' DXGI_FORMAT
 SampleDesc AS DXGI_SAMPLE_DESC
 Usage AS LONG ' D3D11_USAGE
 BindFlags AS DWORD ' UINT
 CPUAccessFlags AS DWORD ' UINT
 MiscFlags AS DWORD ' UINT
END TYPE
' ########################################################################################
' ID3D11Texture2D interface
' IID = 6f15aaf2-d208-4e89-9ab4-489535d34f9c
' Inherited interface = ID3D11Resource
' ########################################################################################
#IF NOT %DEF(%ID3D11Texture2D_INTERFACE_DEFINED)
 %ID3D11Texture2D_INTERFACE_DEFINED = 1
INTERFACE ID3D11Texture2D $IID_ID3D11Texture2D
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11Resource methods
 ' =====================================================================================
 METHOD GetType ( ' VTable offset = 28
 BYREF pResourceDimension AS LONG
 ) ' void
 ' =====================================================================================
 METHOD SetEvictionPriority ( ' VTable offset = 32
 BYVAL EvictionPriority AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD GetEvictionPriority ( ' VTable offset = 36
 ) AS DWORD ' void
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11Texture2D method
 ' =====================================================================================
 METHOD GetDesc ( ' VTable offset = 40
 BYREF pDesc AS D3D11_TEXTURE2D_DESC
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11Texture2D_INTERFACE_DEFINED__ */
' // Size = 36 bytes
TYPE D3D11_TEXTURE3D_DESC
 Width AS DWORD ' UINT
 Height AS DWORD ' UINT
 Depth AS DWORD ' UINT
 MipLevels AS DWORD ' UINT
 Format AS DWORD ' DXGI_FORMAT
 Usage AS LONG ' D3D11_USAGE
 BindFlags AS DWORD ' UINT
 CPUAccessFlags AS DWORD ' UINT
 MiscFlags AS DWORD ' UINT
END TYPE
' ########################################################################################
' ID3D11Texture3D interface
' IID = 037e866e-f56d-4357-a8af-9dabbe6e250e
' Inherited interface = ID3D11Resource
' ########################################################################################
#IF NOT %DEF(%ID3D11Texture3D_INTERFACE_DEFINED)
 %ID3D11Texture3D_INTERFACE_DEFINED = 1
INTERFACE ID3D11Texture3D $IID_ID3D11Texture3D
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11Resource methods
 ' =====================================================================================
 METHOD GetType ( ' VTable offset = 28
 BYREF pResourceDimension AS LONG
 ) ' void
 ' =====================================================================================
 METHOD SetEvictionPriority ( ' VTable offset = 32
 BYVAL EvictionPriority AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD GetEvictionPriority ( ' VTable offset = 36
 ) AS DWORD ' void
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11Texture3D method
 ' =====================================================================================
 METHOD GetDesc ( ' VTable offset = 40
 BYREF pDesc AS D3D11_TEXTURE3D_DESC
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11Texture3D_INTERFACE_DEFINED__ */
' enum D3D11_TEXTURECUBE_FACE
%EQUATE `D3D11_TEXTURECUBE_FACE_POSITIVE_X = 0
%EQUATE `D3D11_TEXTURECUBE_FACE_NEGATIVE_X = 1
%EQUATE `D3D11_TEXTURECUBE_FACE_POSITIVE_Y = 2
%EQUATE `D3D11_TEXTURECUBE_FACE_NEGATIVE_Y = 3
%EQUATE `D3D11_TEXTURECUBE_FACE_POSITIVE_Z = 4
%EQUATE `D3D11_TEXTURECUBE_FACE_NEGATIVE_Z = 5
' ########################################################################################
' ID3D11View interface
' IID = 839d1216-bb2e-412b-b7f4-a9dbebe08ed1
' Inherited interface = ID3D11DeviceChild
' ########################################################################################
#IF NOT %DEF(%ID3D11View_INTERFACE_DEFINED)
 %ID3D11View_INTERFACE_DEFINED = 1
INTERFACE ID3D11View $IID_ID3D11View
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11View method
 ' =====================================================================================
 METHOD GetResource ( ' VTable offset = 28
 BYREF ppResource AS ID3D11Resource
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11View_INTERFACE_DEFINED__ */
' // Size = 4 bytes
UNION D3D11_BUFFER_SRV_UNION_1 DWORD
 FirstElement AS DWORD ' UINT
 ElementOffset AS DWORD ' UINT
END UNION
' // Size = 4 bytes
UNION D3D11_BUFFER_SRV_UNION_2 DWORD
 NumElements AS DWORD ' UINT
 ElementWidth AS DWORD ' UINT
END UNION
' // Size = 8 bytes
TYPE D3D11_BUFFER_SRV DWORD
 D3D11_BUFFER_SRV_UNION_1
 D3D11_BUFFER_SRV_UNION_2
END TYPE
' enum D3D11_BUFFEREX_SRV_FLAG
%EQUATE `D3D11_BUFFEREX_SRV_FLAG_RAW = &H1
' // Size = 12 bytes
TYPE D3D11_BUFFEREX_SRV DWORD
 FirstElement AS DWORD ' UINT
 NumElements AS DWORD ' UINT
 Flags AS DWORD ' UINT
END TYPE
' // Size = 8 bytes
TYPE D3D11_TEX1D_SRV DWORD
 MostDetailedMip AS DWORD ' UINT
 MipLevels AS DWORD ' UINT
END TYPE
' // Size = 16 bytes
TYPE D3D11_TEX1D_ARRAY_SRV DWORD
 MostDetailedMip AS DWORD ' UINT
 MipLevels AS DWORD ' UINT
 FirstArraySlice AS DWORD ' UINT
 ArraySize AS DWORD ' UINT
END TYPE
' // Size = 8 bytes
TYPE D3D11_TEX2D_SRV DWORD
 MostDetailedMip AS DWORD ' UINT
 MipLevels AS DWORD ' UINT
END TYPE
' // Size = 16 bytes
TYPE D3D11_TEX2D_ARRAY_SRV DWORD
 MostDetailedMip AS DWORD ' UINT
 MipLevels AS DWORD ' UINT
 FirstArraySlice AS DWORD ' UINT
 ArraySize AS DWORD ' UINT
END TYPE
' // Size = 8 bytes
TYPE D3D11_TEX3D_SRV DWORD
 MostDetailedMip AS DWORD ' UINT
 MipLevels AS DWORD ' UINT
END TYPE
' // Size = 8 bytes
TYPE D3D11_TEXCUBE_SRV DWORD
 MostDetailedMip AS DWORD ' UINT
 MipLevels AS DWORD ' UINT
END TYPE
' // Size = 16 bytes
TYPE D3D11_TEXCUBE_ARRAY_SRV DWORD
 MostDetailedMip AS DWORD ' UINT
 MipLevels AS DWORD ' UINT
 First2DArrayFace AS DWORD ' UINT
 NumCubes AS DWORD ' UINT
END TYPE
' // Size = 4 bytes
TYPE D3D11_TEX2DMS_SRV DWORD
 UnusedField_NothingToDefine AS DWORD ' UINT
END TYPE
' // Size = 8 bytes
TYPE D3D11_TEX2DMS_ARRAY_SRV DWORD
 FirstArraySlice AS DWORD ' UINT
 ArraySize AS DWORD ' UINT
END TYPE
' // Size = 16 bytes
UNION D3D11_SHADER_RESOURCE_VIEW_DESC_UNION DWORD
 Buffer AS D3D11_BUFFER_SRV
 Texture1D AS D3D11_TEX1D_SRV
 Texture1DArray AS D3D11_TEX1D_ARRAY_SRV
 Texture2D AS D3D11_TEX2D_SRV
 Texture2DArray AS D3D11_TEX2D_ARRAY_SRV
 Texture2DMS AS D3D11_TEX2DMS_SRV
 Texture2DMSArray AS D3D11_TEX2DMS_ARRAY_SRV
 Texture3D AS D3D11_TEX3D_SRV
 TextureCube AS D3D11_TEXCUBE_SRV
 TextureCubeArray AS D3D11_TEXCUBE_ARRAY_SRV
 BufferEx AS D3D11_BUFFEREX_SRV
END UNION
' // Size = 24 bytes
TYPE D3D11_SHADER_RESOURCE_VIEW_DESC DWORD
 Format AS DWORD ' DXGI_FORMAT
 ViewDimension AS LONG ' D3D11_SRV_DIMENSION
 D3D11_SHADER_RESOURCE_VIEW_DESC_UNION
END TYPE
' ########################################################################################
' ID3D11ShaderResourceView interface
' IID = b0e06fe0-8192-4e1a-b1ca-36d7414710b2
' Inherited interface = ID3D11View
' ########################################################################################
#IF NOT %DEF(%ID3D11ShaderResourceView_INTERFACE_DEFINED)
 %ID3D11ShaderResourceView_INTERFACE_DEFINED = 1
INTERFACE ID3D11ShaderResourceView $IID_ID3D11ShaderResourceView
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11View method
 ' =====================================================================================
 METHOD GetResource ( ' VTable offset = 28
 BYREF ppResource AS ID3D11Resource
 ) ' void
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11ShaderResourceView method
 ' =====================================================================================
 METHOD GetDesc ( ' VTable offset = 32
 BYREF pDesc AS D3D11_SHADER_RESOURCE_VIEW_DESC
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11ShaderResourceView_INTERFACE_DEFINED__ */
' // Size = 4 bytes
UNION D3D11_BUFFER_RTV_UNION_1 DWORD
 FirstElement AS DWORD ' UINT
 ElementOffset AS DWORD ' UINT
END UNION
' // Size = 4 bytes
UNION D3D11_BUFFER_RTV_UNION_2 DWORD
 NumElements AS DWORD ' UINT
 ElementWidth AS DWORD ' UINT
END UNION
' // Size = 8 bytes
TYPE D3D11_BUFFER_RTV
 D3D11_BUFFER_RTV_UNION_1
 D3D11_BUFFER_RTV_UNION_2
END TYPE
' // Size = 4 bytes
TYPE D3D11_TEX1D_RTV DWORD
 MipSlice AS DWORD ' UINT
END TYPE
' // Size = 12 bytes
TYPE D3D11_TEX1D_ARRAY_RTV DWORD
 MipSlice AS DWORD ' UINT
 FirstArraySlice AS DWORD ' UINT
 ArraySize AS DWORD ' UINT
END TYPE
' // Size = 4 bytes
TYPE D3D11_TEX2D_RTV DWORD
 MipSlice AS DWORD ' UINT
END TYPE
' // Size = 4 bytes
TYPE D3D11_TEX2DMS_RTV DWORD
 UnusedField_NothingToDefine AS DWORD ' UINT
END TYPE
' // Size = 12 bytes
TYPE D3D11_TEX2D_ARRAY_RTV DWORD
 MipSlice AS DWORD ' UINT
 FirstArraySlice AS DWORD ' UINT
 ArraySize AS DWORD ' UINT
END TYPE
' // Size = 8 bytes
TYPE D3D11_TEX2DMS_ARRAY_RTV DWORD
 FirstArraySlice AS DWORD ' UINT
 ArraySize AS DWORD ' UINT
END TYPE
' // Size = 8 bytes
TYPE D3D11_TEX3D_RTV
 MipSlice AS DWORD ' UINT
 FirstWSlice AS DWORD ' UINT
 WSize AS DWORD ' UINT
END TYPE
' // Size = 12 bytes
UNION D3D11_RENDER_TARGET_VIEW_DESC_UNION DWORD
 Buffer AS D3D11_BUFFER_RTV
 Texture1D AS D3D11_TEX1D_RTV
 Texture1DArray AS D3D11_TEX1D_ARRAY_RTV
 Texture2D AS D3D11_TEX2D_RTV
 Texture2DArray AS D3D11_TEX2D_ARRAY_RTV
 Texture2DMS AS D3D11_TEX2DMS_RTV
 Texture2DMSArray AS D3D11_TEX2DMS_ARRAY_RTV
 Texture3D AS D3D11_TEX3D_RTV
END UNION
' // Size = 20 bytes
TYPE D3D11_RENDER_TARGET_VIEW_DESC DWORD
 Format AS DWORD ' DXGI_FORMAT
 ViewDimension AS LONG ' D3D11_RTV_DIMENSION
 D3D11_RENDER_TARGET_VIEW_DESC_UNION
END TYPE
' ########################################################################################
' ID3D11RenderTargetView interface
' IID = dfdba067-0b8d-4865-875b-d7b4516cc164
' Inherited interface = ID3D11View
' ########################################################################################
#IF NOT %DEF(%ID3D11RenderTargetView_INTERFACE_DEFINED)
 %ID3D11RenderTargetView_INTERFACE_DEFINED = 1
INTERFACE ID3D11RenderTargetView $IID_ID3D11RenderTargetView
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11View method
 ' =====================================================================================
 METHOD GetResource ( ' VTable offset = 28
 BYREF ppResource AS ID3D11Resource
 ) ' void
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11RenderTargetView method
 ' =====================================================================================
 METHOD GetDesc ( ' VTable offset = 32
 BYREF pDesc AS D3D11_RENDER_TARGET_VIEW_DESC
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11RenderTargetView_INTERFACE_DEFINED__ */
' // Size = 4 bytes
TYPE D3D11_TEX1D_DSV DWORD
 MipSlice AS DWORD ' UINT
END TYPE
' // Size = 12 bytes
TYPE D3D11_TEX1D_ARRAY_DSV DWORD
 MipSlice AS DWORD ' UINT
 FirstArraySlice AS DWORD ' UINT
 ArraySize AS DWORD ' UINT
END TYPE
' // Size = 4 bytes
TYPE D3D11_TEX2D_DSV DWORD
 MipSlice AS DWORD ' UINT
END TYPE
' // Size = 12 bytes
TYPE D3D11_TEX2D_ARRAY_DSV DWORD
 MipSlice AS DWORD ' UINT
 FirstArraySlice AS DWORD ' UINT
 ArraySize AS DWORD ' UINT
END TYPE
' // Size = 4 bytes
TYPE D3D11_TEX2DMS_DSV DWORD
 UnusedField_NothingToDefine AS DWORD ' UINT
END TYPE
' // Size = 8 bytes
TYPE D3D11_TEX2DMS_ARRAY_DSV DWORD
 FirstArraySlice AS DWORD ' UINT
 ArraySize AS DWORD ' UINT
END TYPE
' enum D3D11_DSV_FLAG
%EQUATE `D3D11_DSV_READ_ONLY_DEPTH = &H1
%EQUATE `D3D11_DSV_READ_ONLY_STENCIL = &H2
' // Size = 12 bytes
UNION D3D11_DEPTH_STENCIL_VIEW_DESC_UNION DWORD
 Texture1D AS D3D11_TEX1D_DSV
 Texture1DArray AS D3D11_TEX1D_ARRAY_DSV
 Texture2D AS D3D11_TEX2D_DSV
 Texture2DArray AS D3D11_TEX2D_ARRAY_DSV
 Texture2DMS AS D3D11_TEX2DMS_DSV
 Texture2DMSArray AS D3D11_TEX2DMS_ARRAY_DSV
END UNION
' // Size = 24 bytes
TYPE D3D11_DEPTH_STENCIL_VIEW_DESC DWORD
 Format AS DWORD ' DXGI_FORMAT
 ViewDimension AS LONG ' D3D11_DSV_DIMENSION
 Flags AS DWORD ' UINT
 D3D11_DEPTH_STENCIL_VIEW_DESC_UNION
END TYPE
' ########################################################################################
' ID3D11DepthStencilView interface
' IID = 9fdac92a-1876-48c3-afad-25b94f84a9b6
' Inherited interface = ID3D11View
' ########################################################################################
#IF NOT %DEF(%ID3D11DepthStencilView_INTERFACE_DEFINED)
 %ID3D11DepthStencilView_INTERFACE_DEFINED = 1
INTERFACE ID3D11DepthStencilView $IID_ID3D11DepthStencilView
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11View method
 ' =====================================================================================
 METHOD GetResource ( ' VTable offset = 28
 BYREF ppResource AS ID3D11Resource
 ) ' void
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11DepthStencilView method
 ' =====================================================================================
 METHOD GetDesc ( ' VTable offset = 32
 BYREF pDesc AS D3D11_DEPTH_STENCIL_VIEW_DESC
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11DepthStencilView_INTERFACE_DEFINED__ */
' enum D3D11_BUFFER_UAV_FLAG
%EQUATE `D3D11_BUFFER_UAV_FLAG_RAW = &H1
%EQUATE `D3D11_BUFFER_UAV_FLAG_APPEND = &H2
%EQUATE `D3D11_BUFFER_UAV_FLAG_COUNTER = &H4
' // Size = 12 bytes
TYPE D3D11_BUFFER_UAV DWORD
 FirstElement AS DWORD ' UINT
 NumElements AS DWORD ' UINT
 Flags AS DWORD ' UINT
END TYPE
' // Size = 4 bytes
TYPE D3D11_TEX1D_UAV DWORD
 MipSlice AS DWORD ' UINT
END TYPE
' // Size = 12 bytes
TYPE D3D11_TEX1D_ARRAY_UAV DWORD
 MipSlice AS DWORD ' UINT
 FirstArraySlice AS DWORD ' UINT
 ArraySize AS DWORD ' UINT
END TYPE
' // Size = 4 bytes
TYPE D3D11_TEX2D_UAV DWORD
 MipSlice AS DWORD ' UINT
END TYPE
' // Size = 12 bytes
TYPE D3D11_TEX2D_ARRAY_UAV DWORD
 MipSlice AS DWORD ' UINT
 FirstArraySlice AS DWORD ' UINT
 ArraySize AS DWORD ' UINT
END TYPE
' // Size = 12 bytes
TYPE D3D11_TEX3D_UAV DWORD
 MipSlice AS DWORD ' UINT
 FirstWSlice AS DWORD ' UINT
 WSize AS DWORD ' UINT
END TYPE
' // Size = 52 bytes
UNION D3D11_UNORDERED_ACCESS_VIEW_DESC_UNION
 Buffer AS D3D11_BUFFER_UAV
 Texture1D AS D3D11_TEX1D_UAV
 Texture1DArray AS D3D11_TEX1D_ARRAY_UAV
 Texture2D AS D3D11_TEX2D_UAV
 Texture2DArray AS D3D11_TEX2D_ARRAY_UAV
 Texture3D AS D3D11_TEX3D_UAV
END UNION
' // Size = 20 bytes
TYPE D3D11_UNORDERED_ACCESS_VIEW_DESC DWORD
 Format AS DWORD ' DXGI_FORMAT
 ViewDimension AS LONG ' D3D11_UAV_DIMENSION
 D3D11_UNORDERED_ACCESS_VIEW_DESC_UNION
END TYPE
' ########################################################################################
' ID3D11UnorderedAccessView interface
' IID = 28acf509-7f5c-48f6-8611-f316010a6380
' Inherited interface = ID3D11View
' ########################################################################################
#IF NOT %DEF(%ID3D11UnorderedAccessView_INTERFACE_DEFINED)
 %ID3D11UnorderedAccessView_INTERFACE_DEFINED = 1
INTERFACE ID3D11UnorderedAccessView $IID_ID3D11UnorderedAccessView
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11View method
 ' =====================================================================================
 METHOD GetResource ( ' VTable offset = 28
 BYREF ppResource AS ID3D11Resource
 ) ' void
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11UnorderedAccessView method
 ' =====================================================================================
 METHOD GetDesc ( ' VTable offset = 32
 BYREF pDesc AS D3D11_UNORDERED_ACCESS_VIEW_DESC
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11UnorderedAccessView_INTERFACE_DEFINED__ */
' ########################################################################################
' ID3D11VertexShader interface
' IID = 79cf2233-7536-4948-9d36-1e4692dc5760
' Inherited interface = ID3D11DeviceChild
' ########################################################################################
#IF NOT %DEF(%ID3D11VertexShader_INTERFACE_DEFINED)
 %ID3D11VertexShader_INTERFACE_DEFINED = 1
INTERFACE ID3D11VertexShader $IID_ID3D11VertexShader
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11VertexShader methods
 ' =====================================================================================
 ' No additional methods
END INTERFACE
#ENDIF ' /* __ID3D11VertexShader_INTERFACE_DEFINED__ */
' ########################################################################################
' ID3D11HullShader interface
' IID = 8e5c6061-628a-4c8e-8264-bbe45cb3d5dd
' Inherited interface = ID3D11DeviceChild
' ########################################################################################
#IF NOT %DEF(%ID3D11HullShader_INTERFACE_DEFINED)
 %ID3D11HullShader_INTERFACE_DEFINED = 1
INTERFACE ID3D11HullShader $IID_ID3D11HullShader
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11HullShader methods
 ' =====================================================================================
 ' No additional methods
END INTERFACE
#ENDIF ' /* __ID3D11HullShader_INTERFACE_DEFINED__ */
' ########################################################################################
' ID3D11DomainShader interface
' IID = f582c508-0f36-490c-9977-31eece268cfa
' Inherited interface = ID3D11DeviceChild
' ########################################################################################
#IF NOT %DEF(%ID3D11DomainShader_INTERFACE_DEFINED)
 %ID3D11DomainShader_INTERFACE_DEFINED = 1
INTERFACE ID3D11DomainShader $IID_ID3D11DomainShader
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11DomainShader methods
 ' =====================================================================================
 ' No additional methods
END INTERFACE
#ENDIF ' /* __ID3D11DomainShader_INTERFACE_DEFINED__ */
' ########################################################################################
' ID3D11GeometryShader interface
' IID = 38325b96-effb-4022-ba02-2e795b70275c
' Inherited interface = ID3D11DeviceChild
' ########################################################################################
#IF NOT %DEF(%ID3D11GeometryShader_INTERFACE_DEFINED)
 %ID3D11GeometryShader_INTERFACE_DEFINED = 1
INTERFACE ID3D11GeometryShader $IID_ID3D11GeometryShader
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11GeometryShader methods
 ' =====================================================================================
 ' No additional methods
END INTERFACE
#ENDIF ' /* __ID3D11GeometryShader_INTERFACE_DEFINED__ */
' ########################################################################################
' ID3D11PixelShader interface
' IID = ea82e40d-51dc-4f33-93d4-db7c9125ae8c
' Inherited interface = ID3D11DeviceChild
' ########################################################################################
#IF NOT %DEF(%ID3D11PixelShader_INTERFACE_DEFINED)
 %ID3D11PixelShader_INTERFACE_DEFINED = 1
INTERFACE ID3D11PixelShader $IID_ID3D11PixelShader
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11PixelShader methods
 ' =====================================================================================
 ' No additional methods
END INTERFACE
#ENDIF ' /* __ID3D11PixelShader_INTERFACE_DEFINED__ */
' ########################################################################################
' ID3D11ComputeShader interface
' IID = 4f5b196e-c2bd-495e-bd01-1fded38e4969
' Inherited interface = ID3D11DeviceChild
' ########################################################################################
#IF NOT %DEF(%ID3D11ComputeShader_INTERFACE_DEFINED)
 %ID3D11ComputeShader_INTERFACE_DEFINED = 1
INTERFACE ID3D11ComputeShader $IID_ID3D11ComputeShader
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11ComputeShader methods
 ' =====================================================================================
 ' No additional methods
END INTERFACE
#ENDIF ' /* __ID3D11ComputeShader_INTERFACE_DEFINED__ */
' ########################################################################################
' ID3D11InputLayout interface
' IID = e4819ddc-4cf0-4025-bd26-5de82a3e07b7
' Inherited interface = ID3D11DeviceChild
' ########################################################################################
#IF NOT %DEF(%ID3D11InputLayout_INTERFACE_DEFINED)
 %ID3D11InputLayout_INTERFACE_DEFINED = 1
INTERFACE ID3D11InputLayout $IID_ID3D11InputLayout
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11InputLayout methods
 ' =====================================================================================
 ' No additional methods
END INTERFACE
#ENDIF ' /* __ID3D11InputLayout_INTERFACE_DEFINED__ */
' enum D3D11_FILTER
%EQUATE `D3D11_FILTER_MIN_MAG_MIP_POINT = 0
%EQUATE `D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR = &H1
%EQUATE `D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = &H4
%EQUATE `D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR = &H5
%EQUATE `D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT = &H10
%EQUATE `D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = &H11
%EQUATE `D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT = &H14
%EQUATE `D3D11_FILTER_MIN_MAG_MIP_LINEAR = &H15
%EQUATE `D3D11_FILTER_ANISOTROPIC = &H55
%EQUATE `D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT = &H80
%EQUATE `D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = &H81
%EQUATE `D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = &H84
%EQUATE `D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = &H85
%EQUATE `D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = &H90
%EQUATE `D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = &H91
%EQUATE `D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = &H94
%EQUATE `D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = &H95
%EQUATE `D3D11_FILTER_COMPARISON_ANISOTROPIC = &Hd5
' enum D3D11_FILTER_TYPE
%EQUATE `D3D11_FILTER_TYPE_POINT = 0
%EQUATE `D3D11_FILTER_TYPE_LINEAR = 1
%EQUATE `D3D11_FILTER_TYPE_MASK = &H3
%EQUATE `D3D11_MIN_FILTER_SHIFT = 4
%EQUATE `D3D11_MAG_FILTER_SHIFT = 2
%EQUATE `D3D11_MIP_FILTER_SHIFT = 0
%EQUATE `D3D11_COMPARISON_FILTERING_BIT = &H80
%EQUATE `D3D11_ANISOTROPIC_FILTERING_BIT = &H40
'#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 ) ) )
FUNCTION D3D11_ENCODE_BASIC_FILTER (BYVAL min_ AS DWORD, BYVAL mag_ AS DWORD, BYVAL mip_ AS DWORD, BYVAL bComparison AS LONG) AS DWORD
 LOCAL x0, x1, x2, x3 AS DWORD
 x0 = IIF(bComparison, %D3D11_COMPARISON_FILTERING_BIT, 0)
 x1 = min_ AND %D3D11_FILTER_TYPE_MASK
 SHIFT LEFT x1, %D3D11_MIN_FILTER_SHIFT
 x2 = mag_ AND %D3D11_FILTER_TYPE_MASK
 SHIFT LEFT x1, %D3D11_MAG_FILTER_SHIFT
 x3 = mip_ AND %D3D11_FILTER_TYPE_MASK
 SHIFT LEFT x1, %D3D11_MIP_FILTER_SHIFT
 FUNCTION = x0 OR x1 OR x2 OR x3
END FUNCTION
'#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 ) ) )
FUNCTION D3D11_ENCODE_ANISOTROPIC_FILTER (BYVAL bComparison AS LONG) AS DWORD
 FUNCTION = %D3D11_ANISOTROPIC_FILTERING_BIT OR D3D11_ENCODE_BASIC_FILTER(%D3D11_FILTER_TYPE_LINEAR, %D3D11_FILTER_TYPE_LINEAR, %D3D11_FILTER_TYPE_LINEAR, bComparison)
END FUNCTION
'#define D3D11_DECODE_MIN_FILTER( d3d11Filter ) \
' ( ( D3D11_FILTER_TYPE ) \
' ( ( ( d3d11Filter ) >> D3D11_MIN_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) )
FUNCTION D3D11_DECODE_MIN_FILTER (BYVAL d3d11Filter AS DWORD) AS DWORD
 SHIFT RIGHT d3d11Filter, %D3D11_MIN_FILTER_SHIFT
 FUNCTION = d3d11Filter AND %D3D11_FILTER_TYPE_MASK
END FUNCTION
'#define D3D11_DECODE_MAG_FILTER( d3d11Filter ) \
' ( ( D3D11_FILTER_TYPE ) \
' ( ( ( d3d11Filter ) >> D3D11_MAG_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) )
FUNCTION D3D11_DECODE_MAG_FILTER (BYVAL d3d11Filter AS DWORD) AS DWORD
 SHIFT RIGHT d3d11Filter, %D3D11_MAG_FILTER_SHIFT
 FUNCTION = d3d11Filter AND %D3D11_FILTER_TYPE_MASK
END FUNCTION
'#define D3D11_DECODE_MIP_FILTER( d3d11Filter ) \
' ( ( D3D11_FILTER_TYPE ) \
' ( ( ( d3d11Filter ) >> D3D11_MIP_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) )
FUNCTION D3D11_DECODE_MIP_FILTER (BYVAL d3d11Filter AS DWORD) AS DWORD
 SHIFT RIGHT d3d11Filter, %D3D11_MIP_FILTER_SHIFT
 FUNCTION = d3d11Filter AND %D3D11_FILTER_TYPE_MASK
END FUNCTION
'#define D3D11_DECODE_IS_COMPARISON_FILTER( d3d11Filter ) \
' ( ( d3d11Filter ) & D3D11_COMPARISON_FILTERING_BIT )
FUNCTION D3D11_DECODE_IS_COMPARISON_FILTER (BYVAL d3d11Filter AS DWORD) AS DWORD
 FUNCTION = d3d11Filter AND %D3D11_COMPARISON_FILTERING_BIT
END FUNCTION
'#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 ) ) )
FUNCTION D3D11_DECODE_IS_ANISOTROPIC_FILTER (BYVAL d3d11Filter AS DWORD) AS LONG
 FUNCTION = (d3d11Filter AND %D3D11_ANISOTROPIC_FILTERING_BIT) AND (%D3D11_FILTER_TYPE_LINEAR = D3D11_DECODE_MIN_FILTER(d3d11Filter)) AND (%D3D11_FILTER_TYPE_LINEAR = D3D11_DECODE_MAG_FILTER(d3d11Filter)) AND (%D3D11_FILTER_TYPE_LINEAR = D3D11_DECODE_MIP_FILTER(d3d11Filter))
END FUNCTION
' enum D3D11_TEXTURE_ADDRESS_MODE
%EQUATE `D3D11_TEXTURE_ADDRESS_WRAP = 1
%EQUATE `D3D11_TEXTURE_ADDRESS_MIRROR = 2
%EQUATE `D3D11_TEXTURE_ADDRESS_CLAMP = 3
%EQUATE `D3D11_TEXTURE_ADDRESS_BORDER = 4
%EQUATE `D3D11_TEXTURE_ADDRESS_MIRROR_ONCE = 5
' // Size = 52 bytes
TYPE D3D11_SAMPLER_DESC DWORD
 Filter AS DWORD ' D3D11_FILTER
 AddressU AS LONG ' D3D11_TEXTURE_ADDRESS_MODE
 AddressV AS LONG ' D3D11_TEXTURE_ADDRESS_MODE
 AddressW AS LONG ' D3D11_TEXTURE_ADDRESS_MODE
 MipLODBias AS SINGLE ' FLOAT
 MaxAnisotropy AS DWORD ' UINT
 ComparisonFunc AS LONG ' D3D11_COMPARISON_FUNC
 BorderColor(3) AS SINGLE ' FLOAT BorderColor [ 4 ]
 MinLOD AS SINGLE ' FLOAT
 MaxLOD AS SINGLE ' FLOAT
END TYPE
' ########################################################################################
' ID3D11SamplerState interface
' IID = da6fea51-564c-4487-9810-f0d0f9b4e3a5
' Inherited interface = ID3D11DeviceChild
' ########################################################################################
#IF NOT %DEF(%ID3D11SamplerState_INTERFACE_DEFINED)
 %ID3D11SamplerState_INTERFACE_DEFINED = 1
INTERFACE ID3D11SamplerState $IID_ID3D11SamplerState
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11SamplerState method
 ' =====================================================================================
 METHOD GetDesc ( ' VTable offset = 28
 BYREF pDesc AS D3D11_SAMPLER_DESC
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11SamplerState_INTERFACE_DEFINED__ */
' enum D3D11_FORMAT_SUPPORT
%EQUATE `D3D11_FORMAT_SUPPORT_BUFFER = &H1
%EQUATE `D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER = &H2
%EQUATE `D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER = &H4
%EQUATE `D3D11_FORMAT_SUPPORT_SO_BUFFER = &H8
%EQUATE `D3D11_FORMAT_SUPPORT_TEXTURE1D = &H10
%EQUATE `D3D11_FORMAT_SUPPORT_TEXTURE2D = &H20
%EQUATE `D3D11_FORMAT_SUPPORT_TEXTURE3D = &H40
%EQUATE `D3D11_FORMAT_SUPPORT_TEXTURECUBE = &H80
%EQUATE `D3D11_FORMAT_SUPPORT_SHADER_LOAD = &H100
%EQUATE `D3D11_FORMAT_SUPPORT_SHADER_SAMPLE = &H200
%EQUATE `D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = &H400
%EQUATE `D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = &H800
%EQUATE `D3D11_FORMAT_SUPPORT_MIP = &H1000
%EQUATE `D3D11_FORMAT_SUPPORT_MIP_AUTOGEN = &H2000
%EQUATE `D3D11_FORMAT_SUPPORT_RENDER_TARGET = &H4000
%EQUATE `D3D11_FORMAT_SUPPORT_BLENDABLE = &H8000
%EQUATE `D3D11_FORMAT_SUPPORT_DEPTH_STENCIL = &H10000
%EQUATE `D3D11_FORMAT_SUPPORT_CPU_LOCKABLE = &H20000
%EQUATE `D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = &H40000
%EQUATE `D3D11_FORMAT_SUPPORT_DISPLAY = &H80000
%EQUATE `D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = &H100000
%EQUATE `D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = &H200000
%EQUATE `D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD = &H400000
%EQUATE `D3D11_FORMAT_SUPPORT_SHADER_GATHER = &H800000
%EQUATE `D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST = &H1000000
%EQUATE `D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW = &H2000000
%EQUATE `D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON = &H4000000
' enum D3D11_FORMAT_SUPPORT2
%EQUATE `D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = &H1
%EQUATE `D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = &H2
%EQUATE `D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = &H4
%EQUATE `D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = &H8
%EQUATE `D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = &H10
%EQUATE `D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = &H20
%EQUATE `D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD = &H40
%EQUATE `D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE = &H80
' ########################################################################################
' ID3D11Asynchronous interface
' IID = 4b35d0cd-1e15-4258-9c98-1b1333f6dd3b
' Inherited interface = ID3D11DeviceChild
' ########################################################################################
#IF NOT %DEF(%ID3D11Asynchronous_INTERFACE_DEFINED)
 %ID3D11Asynchronous_INTERFACE_DEFINED = 1
INTERFACE ID3D11Asynchronous $IID_ID3D11Asynchronous
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11Asynchronous method
 ' =====================================================================================
 METHOD GetDataSize ( ' VTable offset = 28
 ) AS DWORD ' UINT
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11Asynchronous_INTERFACE_DEFINED__ */
' enum D3D11_ASYNC_GETDATA_FLAG
%EQUATE `D3D11_ASYNC_GETDATA_DONOTFLUSH = &H1
' enum D3D11_QUERY
%EQUATE `D3D11_QUERY_EVENT = 0
%EQUATE `D3D11_QUERY_OCCLUSION = %D3D11_QUERY_EVENT + 1
%EQUATE `D3D11_QUERY_TIMESTAMP = %D3D11_QUERY_OCCLUSION + 1
%EQUATE `D3D11_QUERY_TIMESTAMP_DISJOINT = %D3D11_QUERY_TIMESTAMP + 1
%EQUATE `D3D11_QUERY_PIPELINE_STATISTICS = %D3D11_QUERY_TIMESTAMP_DISJOINT + 1
%EQUATE `D3D11_QUERY_OCCLUSION_PREDICATE = %D3D11_QUERY_PIPELINE_STATISTICS + 1
%EQUATE `D3D11_QUERY_SO_STATISTICS = %D3D11_QUERY_OCCLUSION_PREDICATE + 1
%EQUATE `D3D11_QUERY_SO_OVERFLOW_PREDICATE = %D3D11_QUERY_SO_STATISTICS + 1
%EQUATE `D3D11_QUERY_SO_STATISTICS_STREAM0 = %D3D11_QUERY_SO_OVERFLOW_PREDICATE + 1
%EQUATE `D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 = %D3D11_QUERY_SO_STATISTICS_STREAM0 + 1
%EQUATE `D3D11_QUERY_SO_STATISTICS_STREAM1 = %D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 + 1
%EQUATE `D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 = %D3D11_QUERY_SO_STATISTICS_STREAM1 + 1
%EQUATE `D3D11_QUERY_SO_STATISTICS_STREAM2 = %D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 + 1
%EQUATE `D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 = %D3D11_QUERY_SO_STATISTICS_STREAM2 + 1
%EQUATE `D3D11_QUERY_SO_STATISTICS_STREAM3 = %D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 + 1
%EQUATE `D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3 = %D3D11_QUERY_SO_STATISTICS_STREAM3 + 1
' enum D3D11_QUERY_MISC_FLAG
%EQUATE `D3D11_QUERY_MISC_PREDICATEHINT = &H1
' // Size = 8 bytes
TYPE D3D11_QUERY_DESC DWORD
 Query AS LONG ' D3D11_QUERY
 MiscFlags AS DWORD ' UINT
END TYPE
' ########################################################################################
' ID3D11Query interface
' IID = d6c00747-87b7-425e-b84d-44d108560afd
' Inherited interface = ID3D11Asynchronous
' ########################################################################################
#IF NOT %DEF(%ID3D11Query_INTERFACE_DEFINED)
 %ID3D11Query_INTERFACE_DEFINED = 1
INTERFACE ID3D11Query $IID_ID3D11Query
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11Asynchronous method
 ' =====================================================================================
 METHOD GetDataSize ( ' VTable offset = 28
 ) AS DWORD ' UINT
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11Query method
 ' =====================================================================================
 METHOD GetDesc ( ' VTable offset = 32
 BYREF pDesc AS D3D11_QUERY_DESC
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11Query_INTERFACE_DEFINED__ */
' ########################################################################################
' ID3D11Predicate interface
' IID = 9eb576dd-9f77-4d86-81aa-8bab5fe490e2
' Inherited interface = ID3D11Predicate
' ########################################################################################
#IF NOT %DEF(%ID3D11Predicate_INTERFACE_DEFINED)
 %ID3D11Predicate_INTERFACE_DEFINED = 1
INTERFACE ID3D11Predicate $IID_ID3D11Predicate
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11Asynchronous method
 ' =====================================================================================
 METHOD GetDataSize ( ' VTable offset = 28
 ) AS DWORD ' UINT
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11Query method
 ' =====================================================================================
 METHOD GetDesc ( ' VTable offset = 32
 BYREF pDesc AS D3D11_QUERY_DESC
 ) ' void
 ' =====================================================================================
 ' No additional methods
END INTERFACE
#ENDIF ' /* __ID3D11Predicate_INTERFACE_DEFINED__ */
' // Size = 16 bytes
TYPE D3D11_QUERY_DATA_TIMESTAMP_DISJOINT QWORD
 Frequency AS QUAD ' UINT64
 Disjoint AS LONG
END TYPE
' // Size = 88 bytes
TYPE D3D11_QUERY_DATA_PIPELINE_STATISTICS QWORD
 IAVertices AS QUAD ' UINT64
 IAPrimitives AS QUAD ' UINT64
 VSInvocations AS QUAD ' UINT64
 GSInvocations AS QUAD ' UINT64
 GSPrimitives AS QUAD ' UINT64
 CInvocations AS QUAD ' UINT64
 CPrimitives AS QUAD ' UINT64
 PSInvocations AS QUAD ' UINT64
 HSInvocations AS QUAD ' UINT64
 DSInvocations AS QUAD ' UINT64
 CSInvocations AS QUAD ' UINT64
END TYPE
' // Size = 16 bytes
TYPE D3D11_QUERY_DATA_SO_STATISTICS QWORD
 NumPrimitivesWritten AS QUAD ' UINT64
 PrimitivesStorageNeeded AS QUAD ' UINT64
END TYPE
' enum D3D11_COUNTER
%EQUATE `D3D11_COUNTER_DEVICE_DEPENDENT_0 = &H40000000
' enum D3D11_COUNTER_TYPE
%EQUATE `D3D11_COUNTER_TYPE_FLOAT32 = 0
%EQUATE `D3D11_COUNTER_TYPE_UINT16 = %D3D11_COUNTER_TYPE_FLOAT32 + 1
%EQUATE `D3D11_COUNTER_TYPE_UINT32 = %D3D11_COUNTER_TYPE_UINT16 + 1
%EQUATE `D3D11_COUNTER_TYPE_UINT64 = %D3D11_COUNTER_TYPE_UINT32 + 1
' // Size = 8 bytes
TYPE D3D11_COUNTER_DESC DWORD
 Counter AS DWORD ' D3D11_COUNTER
 MiscFlags AS DWORD ' UINT
END TYPE
' // Size = 12 bytes
TYPE D3D11_COUNTER_INFO DWORD
 LastDeviceDependentCounter AS DWORD ' D3D11_COUNTER
 NumSimultaneousCounters AS DWORD ' UINT
 NumDetectableParallelUnits AS WORD ' UINT8
END TYPE
' ########################################################################################
' ID3D11Counter interface
' IID = 6e8c49fb-a371-4770-b440-29086022b741
' Inherited interface = ID3D11Asynchronous
' ########################################################################################
#IF NOT %DEF(%ID3D11Counter_INTERFACE_DEFINED)
 %ID3D11Counter_INTERFACE_DEFINED = 1
INTERFACE ID3D11Counter $IID_ID3D11Counter
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11Asynchronous method
 ' =====================================================================================
 METHOD GetDataSize ( ' VTable offset = 28
 ) AS DWORD ' UINT
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11Counter method
 ' =====================================================================================
 METHOD GetDesc ( ' VTable offset = 32
 BYREF pDesc AS D3D11_COUNTER_DESC
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11Counter_INTERFACE_DEFINED__ */
' enum D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS
%EQUATE `D3D11_STANDARD_MULTISAMPLE_PATTERN = &Hffffffff
%EQUATE `D3D11_CENTER_MULTISAMPLE_PATTERN = &Hfffffffe
' enum D3D11_DEVICE_CONTEXT_TYPE
%EQUATE `D3D11_DEVICE_CONTEXT_IMMEDIATE = 0
%EQUATE `D3D11_DEVICE_CONTEXT_DEFERRED = %D3D11_DEVICE_CONTEXT_IMMEDIATE + 1
' // Size = 32 bytes
TYPE D3D11_CLASS_INSTANCE_DESC DWORD
 InstanceId AS DWORD ' UINT
 InstanceIndex AS DWORD ' UINT
 TypeId AS DWORD ' UINT
 ConstantBuffer AS DWORD ' UINT
 BaseConstantBufferOffset AS DWORD ' UINT
 BaseTexture AS DWORD ' UINT
 BaseSampler AS DWORD ' UINT
 Created As LONG
END TYPE
' ########################################################################################
' ID3D11ClassInstance interface
' IID = a6cd7faa-b0b7-4a2f-9436-8662a65797cb
' Inherited interface = ID3D11DeviceChild
' ########################################################################################
#IF NOT %DEF(%ID3D11ClassInstance_INTERFACE_DEFINED)
 %ID3D11ClassInstance_INTERFACE_DEFINED = 1
INTERFACE ID3D11ClassInstance $IID_ID3D11ClassInstance
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11ClassInstance methods
 ' =====================================================================================
 METHOD GetClassLinkage ( ' VTable offset = 28
 BYREF ppLinkage AS ID3D11ClassLinkage
 ) ' void
 ' =====================================================================================
 METHOD GetDesc ( ' VTable offset = 32
 BYREF pDesc AS D3D11_CLASS_INSTANCE_DESC
 ) ' void
 ' =====================================================================================
 METHOD GetInstanceName ( ' VTable offset = 36
 BYREF pInstanceName AS ASCIIZ
 , BYREF pBufferLength AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD GetTypeName ( ' VTable offset = 40
 BYREF pTypeName AS ASCIIZ
 , BYREF pBufferLength AS DWORD
 ) ' void
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11ClassInstance_INTERFACE_DEFINED__ */
' ########################################################################################
' ID3D11ClassLinkage interface
' IID = ddf57cba-9543-46e4-a12b-f207a0fe7fed
' Inherited interface = ID3D11DeviceChild
' ########################################################################################
#IF NOT %DEF(%ID3D11ClassLinkage_INTERFACE_DEFINED)
 %ID3D11ClassLinkage_INTERFACE_DEFINED = 1
INTERFACE ID3D11ClassLinkage $IID_ID3D11ClassLinkage
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11ClassLinkage methods
 ' =====================================================================================
 METHOD GetClassInstance ( ' VTable offset = 28
 BYREF pClassInstanceName AS ASCIIZ
 , BYVAL InstanceIndex AS DWORD
 , BYREF ppInstance AS ID3D11ClassInstance
 ) AS LONG
 ' =====================================================================================
 METHOD CreateClassInstance ( ' VTable offset = 32
 BYREF pClassTypeName AS ASCIIZ
 , BYVAL ConstantBufferOffset AS DWORD
 , BYVAL ConstantVectorOffset AS DWORD
 , BYVAL TextureOffset AS DWORD
 , BYVAL SamplerOffset AS DWORD
 , BYREF ppInstance AS ID3D11ClassInstance
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11ClassLinkage_INTERFACE_DEFINED__ */
' ########################################################################################
' ID3D11CommandList interface
' IID = a24bc4d1-769e-43f7-8013-98ff566c18e2
' Inherited interface = ID3D11DeviceChild
' ########################################################################################
#IF NOT %DEF(%ID3D11CommandList_INTERFACE_DEFINED)
 %ID3D11CommandList_INTERFACE_DEFINED = 1
INTERFACE ID3D11CommandList $IID_ID3D11CommandList
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' No additional methods
END INTERFACE
#ENDIF ' /* __ID3D11CommandList_INTERFACE_DEFINED__ */
' enum D3D11_FEATURE
%EQUATE `D3D11_FEATURE_THREADING = 0
%EQUATE `D3D11_FEATURE_DOUBLES = %D3D11_FEATURE_THREADING + 1
%EQUATE `D3D11_FEATURE_FORMAT_SUPPORT = %D3D11_FEATURE_DOUBLES + 1
%EQUATE `D3D11_FEATURE_FORMAT_SUPPORT2 = %D3D11_FEATURE_FORMAT_SUPPORT + 1
%EQUATE `D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS = %D3D11_FEATURE_FORMAT_SUPPORT2 + 1
' // Size = 8 bytes
TYPE D3D11_FEATURE_DATA_THREADING DWORD
 DriverConcurrentCreates AS LONG
 DriverCommandLists AS LONG
END TYPE
' // Size = 4 bytes
TYPE D3D11_FEATURE_DATA_DOUBLES DWORD
 DoublePrecisionFloatShaderOps AS LONG
END TYPE
' // Size = 8 bytes
TYPE D3D11_FEATURE_DATA_FORMAT_SUPPORT DWORD
 InFormat AS DWORD ' DXGI_FORMAT
 OutFormatSupport AS DWORD ' UINT
END TYPE
' // Size = 8 bytes
TYPE D3D11_FEATURE_DATA_FORMAT_SUPPORT2 DWORD
 InFormat AS DWORD ' DXGI_FORMAT
 OutFormatSupport2 AS DWORD ' UINT
END TYPE
' // Size = 4 bytes
TYPE D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS DWORD
 ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x AS LONG
END TYPE
' ########################################################################################
' ID3D11DeviceContext interface
' IID = c0bfa96c-e089-44fb-8eaf-26f8796190da
' Inherited interface = ID3D11DeviceChild
' ########################################################################################
#IF NOT %DEF(%ID3D11DeviceContext_INTERFACE_DEFINED)
 %ID3D11DeviceContext_INTERFACE_DEFINED = 1
INTERFACE ID3D11DeviceContext $IID_ID3D11DeviceContext
 INHERIT IUnknown
 ' =====================================================================================
 ' ID3D11DeviceChild methods
 ' =====================================================================================
 METHOD GetDevice ( ' VTable offset = 12
 BYREF ppDevice AS ID3D11Device
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 16
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 20
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 24
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ID3D11DeviceContext methods
 ' =====================================================================================
 METHOD VSSetConstantBuffers ( ' VTable offset = 28
 BYVAL StartSlot AS DWORD
 , BYVAL NumBuffers AS DWORD
 , BYREF ppConstantBuffers AS ID3D11Buffer
 ) ' void
 ' =====================================================================================
 METHOD PSSetShaderResources ( ' VTable offset = 32
 BYVAL StartSlot AS DWORD
 , BYVAL NumViews AS DWORD
 , BYREF ppShaderResourceViews AS ID3D11ShaderResourceView
 ) ' void
 ' =====================================================================================
 METHOD PSSetShader ( ' VTable offset = 36
 BYVAL pPixelShader AS ID3D11PixelShader
 , BYREF ppClassInstances AS ID3D11ClassInstance
 , BYVAL NumClassInstances AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD PSSetSamplers ( ' VTable offset = 40
 BYVAL StartSlot AS DWORD
 , BYVAL NumSamplers AS DWORD
 , BYREF ppSamplers AS ID3D11SamplerState
 ) ' void
 ' =====================================================================================
 METHOD VSSetShader ( ' VTable offset = 44
 BYVAL pVertexShader AS ID3D11VertexShader
 , BYREF ppClassInstances AS ID3D11ClassInstance
 , BYVAL NumClassInstances AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD DrawIndexed ( ' VTable offset = 48
 BYVAL IndexCount AS DWORD
 , BYVAL StartIndexLocation AS DWORD
 , BYVAL BaseVertexLocation AS LONG
 ) ' void
 ' =====================================================================================
 METHOD Draw ( ' VTable offset = 52
 BYVAL VertexCount AS DWORD
 , BYVAL StartVertexLocation AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD Map ( ' VTable offset = 56
 BYVAL pResource AS ID3D11Resource
 , BYVAL Subresource AS DWORD
 , BYVAL MapType AS LONG
 , BYVAL MapFlags AS DWORD
 , BYREF pMappedResource AS D3D11_MAPPED_SUBRESOURCE
 ) AS LONG
 ' =====================================================================================
 METHOD Unmap ( ' VTable offset = 60
 BYVAL pResource AS ID3D11Resource
 , BYVAL Subresource AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD PSSetConstantBuffers ( ' VTable offset = 64
 BYVAL StartSlot AS DWORD
 , BYVAL NumBuffers AS DWORD
 , BYREF ppConstantBuffers AS ID3D11Buffer
 ) ' void
 ' =====================================================================================
 METHOD IASetInputLayout ( ' VTable offset = 68
 BYVAL pInputLayout AS ID3D11InputLayout
 ) ' void
 ' =====================================================================================
 METHOD IASetVertexBuffers ( ' VTable offset = 72
 BYVAL StartSlot AS DWORD
 , BYVAL NumBuffers AS DWORD
 , BYREF ppVertexBuffers AS ID3D11Buffer
 , BYREF pStrides AS DWORD
 , BYREF pOffsets AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD IASetIndexBuffer ( ' VTable offset = 76
 BYVAL pIndexBuffer AS ID3D11Buffer
 , BYVAL Format AS DWORD
 , BYVAL Offset AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD DrawIndexedInstanced ( ' VTable offset = 80
 BYVAL IndexCountPerInstance AS DWORD
 , BYVAL InstanceCount AS DWORD
 , BYVAL StartIndexLocation AS DWORD
 , BYVAL BaseVertexLocation AS LONG
 , BYVAL StartInstanceLocation AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD DrawInstanced ( ' VTable offset = 84
 BYVAL VertexCountPerInstance AS DWORD
 , BYVAL InstanceCount AS DWORD
 , BYVAL StartVertexLocation AS DWORD
 , BYVAL StartInstanceLocation AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD GSSetConstantBuffers ( ' VTable offset = 88
 BYVAL StartSlot AS DWORD
 , BYVAL NumBuffers AS DWORD
 , BYVAL ppConstantBuffers AS ID3D11Buffer
 ) ' void
 ' =====================================================================================
 METHOD GSSetShader ( ' VTable offset = 92
 BYVAL pShader AS ID3D11GeometryShader
 , BYREF ppClassInstances AS ID3D11ClassInstance
 , BYVAL NumClassInstances AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD IASetPrimitiveTopology ( ' VTable offset = 96
 BYVAL Topology AS LONG
 ) ' void
 ' =====================================================================================
 METHOD VSSetShaderResources ( ' VTable offset = 100
 BYVAL StartSlot AS DWORD
 , BYVAL NumViews AS DWORD
 , BYREF ppShaderResourceViews AS ID3D11ShaderResourceView
 ) ' void
 ' =====================================================================================
 METHOD VSSetSamplers ( ' VTable offset = 104
 BYVAL StartSlot AS DWORD
 , BYVAL NumSamplers AS DWORD
 , BYREF ppSamplers AS ID3D11SamplerState
 ) ' void
 ' =====================================================================================
 METHOD Begin ( ' VTable offset = 108
 BYVAL pAsync AS ID3D11Asynchronous
 ) ' void
 ' =====================================================================================
 METHOD End ( ' VTable offset = 112
 BYVAL pAsync AS ID3D11Asynchronous
 ) ' void
 ' =====================================================================================
 METHOD GetData ( ' VTable offset = 116
 BYVAL pAsync AS ID3D11Asynchronous
 , BYVAL pData AS DWORD
 , BYVAL DataSize AS DWORD
 , BYVAL GetDataFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPredication ( ' VTable offset = 120
 BYVAL pPredicate AS ID3D11Predicate
 , BYVAL PredicateValue AS LONG
 ) ' void
 ' =====================================================================================
 METHOD GSSetShaderResources ( ' VTable offset = 124
 BYVAL StartSlot AS DWORD
 , BYVAL NumViews AS DWORD
 , BYREF ppShaderResourceViews AS ID3D11ShaderResourceView
 ) ' void
 ' =====================================================================================
 METHOD GSSetSamplers ( ' VTable offset = 128
 BYVAL StartSlot AS DWORD
 , BYVAL NumSamplers AS DWORD
 , BYREF ppSamplers AS ID3D11SamplerState
 ) ' void
 ' =====================================================================================
 METHOD OMSetRenderTargets ( ' VTable offset = 132
 BYVAL NumViews AS DWORD
 , BYREF ppRenderTargetViews AS ID3D11RenderTargetView
 , BYVAL pDepthStencilView AS ID3D11DepthStencilView
 ) ' void
 ' =====================================================================================
 METHOD OMSetRenderTargetsAndUnorderedAccessViews ( ' VTable offset = 136
 BYVAL NumRTVs AS DWORD
 , BYREF ppRenderTargetViews AS ID3D11RenderTargetView
 , BYVAL pDepthStencilView AS ID3D11DepthStencilView
 , BYVAL UAVStartSlot AS DWORD
 , BYVAL NumUAVs AS DWORD
 , BYREF ppUnorderedAccessViews AS ID3D11UnorderedAccessView
 , BYREF pUAVInitialCounts AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD OMSetBlendState ( ' VTable offset = 140
 BYVAL pBlendState AS ID3D11BlendState
 , BYREF BlendFactor AS SINGLE
 , BYVAL SampleMask AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD OMSetDepthStencilState ( ' VTable offset = 144
 BYVAL pDepthStencilState AS ID3D11DepthStencilState
 , BYVAL StencilRef AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD SOSetTargets ( ' VTable offset = 148
 BYVAL NumBuffers AS DWORD
 , BYREF ppSOTargets AS ID3D11Buffer
 , BYREF pOffsets AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD DrawAuto ( ' VTable offset = 152
 ) ' void
 ' =====================================================================================
 METHOD DrawIndexedInstancedIndirect ( ' VTable offset = 156
 BYVAL pBufferForArgs AS ID3D11Buffer
 , BYVAL AlignedByteOffsetForArgs AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD DrawInstancedIndirect ( ' VTable offset = 160
 BYVAL pBufferForArgs AS ID3D11Buffer
 , BYVAL AlignedByteOffsetForArgs AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD Dispatch_ ( ' VTable offset = 164
 BYVAL ThreadGroupCountX AS DWORD
 , BYVAL ThreadGroupCountY AS DWORD
 , BYVAL ThreadGroupCountZ AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD DispatchIndirect ( ' VTable offset = 168
 BYVAL pBufferForArgs AS ID3D11Buffer
 , BYVAL AlignedByteOffsetForArgs AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD RSSetState ( ' VTable offset = 172
 BYVAL pRasterizerState AS ID3D11RasterizerState
 ) ' void
 ' =====================================================================================
 METHOD RSSetViewports ( ' VTable offset = 176
 BYVAL NumViewports AS DWORD
 , BYREF pViewports AS D3D11_VIEWPORT
 ) ' void
 ' =====================================================================================
 METHOD RSSetScissorRects ( ' VTable offset = 180
 BYVAL NumRects AS DWORD
 , BYREF pRects AS D3D11_RECT
 ) ' void
 ' =====================================================================================
 METHOD CopySubresourceRegion ( ' VTable offset = 184
 BYVAL pDstResource AS ID3D11Resource
 , BYVAL DstSubresource AS DWORD
 , BYVAL DstX AS DWORD
 , BYVAL DstY AS DWORD
 , BYVAL DstZ AS DWORD
 , BYVAL pSrcResource AS ID3D11Resource
 , BYVAL SrcSubresource AS DWORD
 , BYREF pSrcBox AS D3D11_BOX
 ) ' void
 ' =====================================================================================
 METHOD CopyResource ( ' VTable offset = 188
 BYVAL pDstResource AS ID3D11Resource
 , BYVAL pSrcResource AS ID3D11Resource
 ) ' void
 ' =====================================================================================
 METHOD UpdateSubresource ( ' VTable offset = 192
 BYVAL pDstResource AS ID3D11Resource
 , BYVAL DstSubresource AS DWORD
 , BYREF pDstBox AS D3D11_BOX
 , BYVAL pSrcData AS DWORD
 , BYVAL SrcRowPitch AS DWORD
 , BYVAL SrcDepthPitch AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD CopyStructureCount ( ' VTable offset = 196
 BYVAL pDstBuffer AS ID3D11Buffer
 , BYVAL DstAlignedByteOffset AS DWORD
 , BYVAL pSrcView AS ID3D11UnorderedAccessView
 ) ' void
 ' =====================================================================================
 METHOD ClearRenderTargetView ( ' VTable offset = 200
 BYVAL pRenderTargetView AS ID3D11RenderTargetView
 , BYREF ColorRGBA AS SINGLE
 ) ' void
 ' =====================================================================================
 METHOD ClearUnorderedAccessViewUint ( ' VTable offset = 204
 BYVAL pUnorderedAccessView AS ID3D11UnorderedAccessView
 , BYREF Values AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD ClearUnorderedAccessViewFloat ( ' VTable offset = 208
 BYVAL pUnorderedAccessView AS ID3D11UnorderedAccessView
 , BYREF Values AS SINGLE
 ) ' void
 ' =====================================================================================
 METHOD ClearDepthStencilView ( ' VTable offset = 212
 BYVAL pDepthStencilView AS ID3D11DepthStencilView
 , BYVAL ClearFlags AS DWORD
 , BYVAL Depth AS SINGLE
 , BYVAL Stencil AS WORD
 ) ' void
 ' =====================================================================================
 METHOD GenerateMips ( ' VTable offset = 216
 BYVAL pShaderResourceView AS ID3D11ShaderResourceView
 ) ' void
 ' =====================================================================================
 METHOD SetResourceMinLOD ( ' VTable offset = 220
 BYVAL pResource AS ID3D11Resource
 , BYVAL MinLOD AS SINGLE
 ) ' void
 ' =====================================================================================
 METHOD GetResourceMinLOD ( ' VTable offset = 224
 BYVAL pResource AS ID3D11Resource
 ) AS SINGLE ' FLOAT
 ' =====================================================================================
 METHOD ResolveSubresource ( ' VTable offset = 228
 BYVAL pDstResource AS ID3D11Resource
 , BYVAL DstSubresource AS DWORD
 , BYVAL pSrcResource AS ID3D11Resource
 , BYVAL SrcSubresource AS DWORD
 , BYVAL Format AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD ExecuteCommandList ( ' VTable offset = 232
 BYVAL pCommandList AS ID3D11CommandList
 , BYVAL RestoreContextState AS LONG
 ) ' void
 ' =====================================================================================
 METHOD HSSetShaderResources ( ' VTable offset = 236
 BYVAL StartSlot AS DWORD
 , BYVAL NumViews AS DWORD
 , BYREF ppShaderResourceViews AS ID3D11ShaderResourceView
 ) ' void
 ' =====================================================================================
 METHOD HSSetShader ( ' VTable offset = 240
 BYVAL pHullShader AS ID3D11HullShader
 , BYREF ppClassInstances AS ID3D11ClassInstance
 , BYVAL NumClassInstances AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD HSSetSamplers ( ' VTable offset = 244
 BYVAL StartSlot AS DWORD
 , BYVAL NumSamplers AS DWORD
 , BYREF ppSamplers AS ID3D11SamplerState
 ) ' void
 ' =====================================================================================
 METHOD HSSetConstantBuffers ( ' VTable offset = 248
 BYVAL StartSlot AS DWORD
 , BYVAL NumBuffers AS DWORD
 , BYREF ppConstantBuffers AS ID3D11Buffer
 ) ' void
 ' =====================================================================================
 METHOD DSSetShaderResources ( ' VTable offset = 252
 BYVAL StartSlot AS DWORD
 , BYVAL NumViews AS DWORD
 , BYREF ppShaderResourceViews AS ID3D11ShaderResourceView
 ) ' void
 ' =====================================================================================
 METHOD DSSetShader ( ' VTable offset = 256
 BYVAL pDomainShader AS ID3D11DomainShader
 , BYREF ppClassInstances AS ID3D11ClassInstance
 , BYVAL NumClassInstances AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD DSSetSamplers ( ' VTable offset = 260
 BYVAL StartSlot AS DWORD
 , BYVAL NumSamplers AS DWORD
 , BYREF ppSamplers AS ID3D11SamplerState
 ) ' void
 ' =====================================================================================
 METHOD DSSetConstantBuffers ( ' VTable offset = 264
 BYVAL StartSlot AS DWORD
 , BYVAL NumBuffers AS DWORD
 , BYREF ppConstantBuffers AS ID3D11Buffer
 ) ' void
 ' =====================================================================================
 METHOD CSSetShaderResources ( ' VTable offset = 268
 BYVAL StartSlot AS DWORD
 , BYVAL NumViews AS DWORD
 , BYREF ppShaderResourceViews AS ID3D11ShaderResourceView
 ) ' void
 ' =====================================================================================
 METHOD CSSetUnorderedAccessViews ( ' VTable offset = 272
 BYVAL StartSlot AS DWORD
 , BYVAL NumUAVs AS DWORD
 , BYREF ppUnorderedAccessViews AS ID3D11UnorderedAccessView
 , BYREF pUAVInitialCounts AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD CSSetShader ( ' VTable offset = 276
 BYVAL pComputeShader AS ID3D11ComputeShader
 , BYREF ppClassInstances AS ID3D11ClassInstance
 , BYVAL NumClassInstances AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD CSSetSamplers ( ' VTable offset = 280
 BYVAL StartSlot AS DWORD
 , BYVAL NumSamplers AS DWORD
 , BYREF ppSamplers AS ID3D11SamplerState
 ) ' void
 ' =====================================================================================
 METHOD CSSetConstantBuffers ( ' VTable offset = 284
 BYVAL StartSlot AS DWORD
 , BYVAL NumBuffers AS DWORD
 , BYREF ppConstantBuffers AS ID3D11Buffer
 ) ' void
 ' =====================================================================================
 METHOD VSGetConstantBuffers ( ' VTable offset = 288
 BYVAL StartSlot AS DWORD
 , BYVAL NumBuffers AS DWORD
 , BYREF ppConstantBuffers AS ID3D11Buffer
 ) ' void
 ' =====================================================================================
 METHOD PSGetShaderResources ( ' VTable offset = 292
 BYVAL StartSlot AS DWORD
 , BYVAL NumViews AS DWORD
 , BYREF ppShaderResourceViews AS ID3D11ShaderResourceView
 ) ' void
 ' =====================================================================================
 METHOD PSGetShader ( ' VTable offset = 296
 BYREF ppPixelShader AS ID3D11PixelShader
 , BYREF ppClassInstances AS ID3D11ClassInstance
 , BYREF pNumClassInstances AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD PSGetSamplers ( ' VTable offset = 300
 BYVAL StartSlot AS DWORD
 , BYVAL NumSamplers AS DWORD
 , BYREF ppSamplers AS ID3D11SamplerState
 ) ' void
 ' =====================================================================================
 METHOD VSGetShader ( ' VTable offset = 304
 BYREF ppVertexShader AS ID3D11VertexShader
 , BYREF ppClassInstances AS ID3D11ClassInstance
 , BYREF pNumClassInstances AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD PSGetConstantBuffers ( ' VTable offset = 308
 BYVAL StartSlot AS DWORD
 , BYVAL NumBuffers AS DWORD
 , BYREF ppConstantBuffers AS ID3D11Buffer
 ) ' void
 ' =====================================================================================
 METHOD IAGetInputLayout ( ' VTable offset = 312
 BYREF ppInputLayout AS ID3D11InputLayout
 ) ' void
 ' =====================================================================================
 METHOD IAGetVertexBuffers ( ' VTable offset = 316
 BYVAL StartSlot AS DWORD
 , BYVAL NumBuffers AS DWORD
 , BYREF ppVertexBuffers AS ID3D11Buffer
 , BYREF pStrides AS DWORD
 , BYREF pOffsets AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD IAGetIndexBuffer ( ' VTable offset = 320
 BYREF pIndexBuffer AS ID3D11Buffer
 , BYREF Format AS DWORD
 , BYREF Offset AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD GSGetConstantBuffers ( ' VTable offset = 324
 BYVAL StartSlot AS DWORD
 , BYVAL NumBuffers AS DWORD
 , BYREF ppConstantBuffers AS ID3D11Buffer
 ) ' void
 ' =====================================================================================
 METHOD GSGetShader ( ' VTable offset = 328
 BYREF ppGeometryShader AS ID3D11GeometryShader
 , BYREF ppClassInstances AS ID3D11ClassInstance
 , BYREF pNumClassInstances AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD IAGetPrimitiveTopology ( ' VTable offset = 332
 BYREF pTopology AS LONG
 ) ' void
 ' =====================================================================================
 METHOD VSGetShaderResources ( ' VTable offset = 336
 BYVAL StartSlot AS DWORD
 , BYVAL NumViews AS DWORD
 , BYREF ppShaderResourceViews AS ID3D11ShaderResourceView
 ) ' void
 ' =====================================================================================
 METHOD VSGetSamplers ( ' VTable offset = 340
 BYVAL StartSlot AS DWORD
 , BYVAL NumSamplers AS DWORD
 , BYREF ppSamplers AS ID3D11SamplerState
 ) ' void
 ' =====================================================================================
 METHOD GetPredication ( ' VTable offset = 344
 BYREF ppPredicate AS ID3D11Predicate
 , BYREF pPredicateValue AS LONG
 ) ' void
 ' =====================================================================================
 METHOD GSGetShaderResources ( ' VTable offset = 348
 BYVAL StartSlot AS DWORD
 , BYVAL NumViews AS DWORD
 , BYREF ppShaderResourceViews AS ID3D11ShaderResourceView
 ) ' void
 ' =====================================================================================
 METHOD GSGetSamplers ( ' VTable offset = 352
 BYVAL StartSlot AS DWORD
 , BYVAL NumSamplers AS DWORD
 , BYREF ppSamplers AS ID3D11SamplerState
 ) ' void
 ' =====================================================================================
 METHOD OMGetRenderTargets ( ' VTable offset = 356
 BYVAL NumViews AS DWORD
 , BYREF ppRenderTargetViews AS ID3D11RenderTargetView
 , BYREF ppDepthStencilView AS ID3D11DepthStencilView
 ) ' void
 ' =====================================================================================
 METHOD OMGetRenderTargetsAndUnorderedAccessViews ( ' VTable offset = 360
 BYVAL NumRTVs AS DWORD
 , BYREF ppRenderTargetViews AS ID3D11RenderTargetView
 , BYREF ppDepthStencilView AS ID3D11DepthStencilView
 , BYVAL UAVStartSlot AS DWORD
 , BYVAL NumUAVs AS DWORD
 , BYREF ppUnorderedAccessViews AS ID3D11UnorderedAccessView
 ) ' void
 ' =====================================================================================
 METHOD OMGetBlendState ( ' VTable offset = 364
 BYREF ppBlendState AS ID3D11BlendState
 , BYREF BlendFactor AS SINGLE
 , BYREF pSampleMask AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD OMGetDepthStencilState ( ' VTable offset = 368
 BYREF ppDepthStencilState AS ID3D11DepthStencilState
 , BYREF pStencilRef AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD SOGetTargets ( ' VTable offset = 372
 BYVAL NumBuffers AS DWORD
 , BYREF ppSOTargets AS ID3D11Buffer
 ) ' void
 ' =====================================================================================
 METHOD RSGetState ( ' VTable offset = 376
 BYREF ppRasterizerState AS ID3D11RasterizerState
 ) ' void
 ' =====================================================================================
 METHOD RSGetViewports ( ' VTable offset = 380
 BYREF pNumViewports AS DWORD
 , BYREF pViewports AS D3D11_VIEWPORT
 ) ' void
 ' =====================================================================================
 METHOD RSGetScissorRects ( ' VTable offset = 384
 BYREF pNumRects AS DWORD
 , BYREF pRects AS D3D11_RECT
 ) ' void
 ' =====================================================================================
 METHOD HSGetShaderResources ( ' VTable offset = 388
 BYVAL StartSlot AS DWORD
 , BYVAL NumViews AS DWORD
 , BYREF ppShaderResourceViews AS ID3D11ShaderResourceView
 ) ' void
 ' =====================================================================================
 METHOD HSGetShader ( ' VTable offset = 392
 BYREF ppHullShader AS ID3D11HullShader
 , BYREF ppClassInstances AS ID3D11ClassInstance
 , BYREF pNumClassInstances AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD HSGetSamplers ( ' VTable offset = 396
 BYVAL StartSlot AS DWORD
 , BYVAL NumSamplers AS DWORD
 , BYREF ppSamplers AS ID3D11SamplerState
 ) ' void
 ' =====================================================================================
 METHOD HSGetConstantBuffers ( ' VTable offset = 400
 BYVAL StartSlot AS DWORD
 , BYVAL NumBuffers AS DWORD
 , BYREF ppConstantBuffers AS ID3D11Buffer
 ) ' void
 ' =====================================================================================
 METHOD DSGetShaderResources ( ' VTable offset = 404
 BYVAL StartSlot AS DWORD
 , BYVAL NumViews AS DWORD
 , BYREF ppShaderResourceViews AS ID3D11ShaderResourceView
 ) ' void
 ' =====================================================================================
 METHOD DSGetShader ( ' VTable offset = 408
 BYREF ppDomainShader AS ID3D11DomainShader
 , BYREF ppClassInstances AS ID3D11ClassInstance
 , BYREF pNumClassInstances AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD DSGetSamplers ( ' VTable offset = 412
 BYVAL StartSlot AS DWORD
 , BYVAL NumSamplers AS DWORD
 , BYREF ppSamplers AS ID3D11SamplerState
 ) ' void
 ' =====================================================================================
 METHOD DSGetConstantBuffers ( ' VTable offset = 416
 BYVAL StartSlot AS DWORD
 , BYVAL NumBuffers AS DWORD
 , BYREF ppConstantBuffers AS ID3D11Buffer
 ) ' void
 ' =====================================================================================
 METHOD CSGetShaderResources ( ' VTable offset = 420
 BYVAL StartSlot AS DWORD
 , BYVAL NumViews AS DWORD
 , BYREF ppShaderResourceViews AS ID3D11ShaderResourceView
 ) ' void
 ' =====================================================================================
 METHOD CSGetUnorderedAccessViews ( ' VTable offset = 424
 BYVAL StartSlot AS DWORD
 , BYVAL NumUAVs AS DWORD
 , BYREF ppUnorderedAccessViews AS ID3D11UnorderedAccessView
 ) ' void
 ' =====================================================================================
 METHOD CSGetShader ( ' VTable offset = 428
 BYREF ppComputeShader AS ID3D11ComputeShader
 , BYREF ppClassInstances AS ID3D11ClassInstance
 , BYREF pNumClassInstances AS DWORD
 ) ' void
 ' =====================================================================================
 METHOD CSGetSamplers ( ' VTable offset = 432
 BYVAL StartSlot AS DWORD
 , BYVAL NumSamplers AS DWORD
 , BYREF ppSamplers AS ID3D11SamplerState
 ) ' void
 ' =====================================================================================
 METHOD CSGetConstantBuffers ( ' VTable offset = 436
 BYVAL StartSlot AS DWORD
 , BYVAL NumBuffers AS DWORD
 , BYREF ppConstantBuffers AS ID3D11Buffer
 ) ' void
 ' =====================================================================================
 METHOD ClearState ( ' VTable offset = 440
 ) ' void
 ' =====================================================================================
 METHOD Flush ( ' VTable offset = 444
 ) ' void
 ' =====================================================================================
 METHOD GetType ( ' VTable offset = 448
 ) AS LONG ' D3D11_DEVICE_CONTEXT_TYPE
 ' =====================================================================================
 METHOD GetContextFlags ( ' VTable offset = 452
 ) AS DWORD ' UINT
 ' =====================================================================================
 METHOD FinishCommandList ( ' VTable offset = 456
 BYVAL RestoreDeferredContextState AS LONG
 , BYREF ppCommandList AS ID3D11CommandList
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11DeviceContext_INTERFACE_DEFINED__ */
' ########################################################################################
' ID3D11Device interface
' IID = db6f6ddb-ac77-4e88-8253-819df9bbf140
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ID3D11Device_INTERFACE_DEFINED)
 %ID3D11Device_INTERFACE_DEFINED = 1
INTERFACE ID3D11Device $IID_ID3D11Device
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreateBuffer ( ' VTable offset = 12
 BYREF pDesc AS D3D11_BUFFER_DESC
 , BYREF pInitialData AS D3D11_SUBRESOURCE_DATA
 , BYREF ppBuffer AS ID3D11Buffer
 ) AS LONG
 ' =====================================================================================
 METHOD CreateTexture1D ( ' VTable offset = 16
 BYREF pDesc AS D3D11_TEXTURE1D_DESC
 , BYREF pInitialData AS D3D11_SUBRESOURCE_DATA
 , BYREF ppTexture1D AS ID3D11Texture1D
 ) AS LONG
 ' =====================================================================================
 METHOD CreateTexture2D ( ' VTable offset = 20
 BYREF pDesc AS D3D11_TEXTURE2D_DESC
 , BYREF pInitialData AS D3D11_SUBRESOURCE_DATA
 , BYREF ppTexture2D AS ID3D11Texture2D
 ) AS LONG
 ' =====================================================================================
 METHOD CreateTexture3D ( ' VTable offset = 24
 BYREF pDesc AS D3D11_TEXTURE3D_DESC
 , BYREF pInitialData AS D3D11_SUBRESOURCE_DATA
 , BYREF ppTexture3D AS ID3D11Texture3D
 ) AS LONG
 ' =====================================================================================
 METHOD CreateShaderResourceView ( ' VTable offset = 28
 BYVAL pResource AS ID3D11Resource
 , BYREF pDesc AS D3D11_SHADER_RESOURCE_VIEW_DESC
 , BYREF ppSRView AS ID3D11ShaderResourceView
 ) AS LONG
 ' =====================================================================================
 METHOD CreateUnorderedAccessView ( ' VTable offset = 32
 BYVAL pResource AS ID3D11Resource
 , BYREF pDesc AS D3D11_UNORDERED_ACCESS_VIEW_DESC
 , BYREF ppUAView AS ID3D11UnorderedAccessView
 ) AS LONG
 ' =====================================================================================
 METHOD CreateRenderTargetView ( ' VTable offset = 36
 BYVAL pResource AS ID3D11Resource
 , BYREF pDesc AS D3D11_RENDER_TARGET_VIEW_DESC
 , BYREF ppRTView AS ID3D11RenderTargetView
 ) AS LONG
 ' =====================================================================================
 METHOD CreateDepthStencilView ( ' VTable offset = 40
 BYVAL pResource AS ID3D11Resource
 , BYREF pDesc AS D3D11_DEPTH_STENCIL_VIEW_DESC
 , BYREF ppDepthStencilView AS ID3D11DepthStencilView
 ) AS LONG
 ' =====================================================================================
 METHOD CreateInputLayout ( ' VTable offset = 44
 BYREF pInputElementDescs AS D3D11_INPUT_ELEMENT_DESC
 , BYVAL NumElements AS DWORD
 , BYVAL pShaderBytecodeWithInputSignature AS DWORD
 , BYVAL BytecodeLength AS DWORD
 , BYREF ppInputLayout AS ID3D11InputLayout
 ) AS LONG
 ' =====================================================================================
 METHOD CreateVertexShader ( ' VTable offset = 48
 BYVAL pShaderBytecode AS DWORD
 , BYVAL BytecodeLength AS DWORD
 , BYVAL pClassLinkage AS ID3D11ClassLinkage
 , BYREF ppVertexShader AS ID3D11VertexShader
 ) AS LONG
 ' =====================================================================================
 METHOD CreateGeometryShader ( ' VTable offset = 52
 BYVAL pShaderBytecode AS DWORD
 , BYVAL BytecodeLength AS DWORD
 , BYVAL pClassLinkage AS ID3D11ClassLinkage
 , BYREF ppGeometryShader AS ID3D11GeometryShader
 ) AS LONG
 ' =====================================================================================
 METHOD CreateGeometryShaderWithStreamOutput ( ' VTable offset = 56
 BYVAL pShaderBytecode AS DWORD
 , BYVAL BytecodeLength AS DWORD
 , BYREF pSODeclaration AS D3D11_SO_DECLARATION_ENTRY
 , BYVAL NumEntries AS DWORD
 , BYREF pBufferStrides AS DWORD
 , BYVAL NumStrides AS DWORD
 , BYVAL RasterizedStream AS DWORD
 , BYVAL pClassLinkage AS ID3D11ClassLinkage
 , BYREF ppGeometryShader AS ID3D11GeometryShader
 ) AS LONG
 ' =====================================================================================
 METHOD CreatePixelShader ( ' VTable offset = 60
 BYVAL pShaderBytecode AS DWORD
 , BYVAL BytecodeLength AS DWORD
 , BYVAL pClassLinkage AS ID3D11ClassLinkage
 , BYREF ppPixelShader AS ID3D11PixelShader
 ) AS LONG
 ' =====================================================================================
 METHOD CreateHullShader ( ' VTable offset = 64
 BYVAL pShaderBytecode AS DWORD
 , BYVAL BytecodeLength AS DWORD
 , BYVAL pClassLinkage AS ID3D11ClassLinkage
 , BYREF ppHullShader AS ID3D11HullShader
 ) AS LONG
 ' =====================================================================================
 METHOD CreateDomainShader ( ' VTable offset = 68
 BYVAL pShaderBytecode AS DWORD __
 , BYVAL BytecodeLength AS DWORD
 , BYVAL pClassLinkage AS ID3D11ClassLinkage
 , BYREF ppDomainShader AS ID3D11DomainShader
 ) AS LONG
 ' =====================================================================================
 METHOD CreateComputeShader ( ' VTable offset = 72
 BYVAL pShaderBytecode AS DWORD
 , BYVAL BytecodeLength AS DWORD
 , BYVAL pClassLinkage AS ID3D11ClassLinkage
 , BYREF ppComputeShader AS ID3D11ComputeShader
 ) AS LONG
 ' =====================================================================================
 METHOD CreateClassLinkage ( ' VTable offset = 76
 BYREF ppLinkage AS ID3D11ClassLinkage
 ) AS LONG
 ' =====================================================================================
 METHOD CreateBlendState ( ' VTable offset = 80
 BYREF pBlendStateDesc AS D3D11_BLEND_DESC
 , BYREF ppBlendState AS ID3D11BlendState
 ) AS LONG
 ' =====================================================================================
 METHOD CreateDepthStencilState ( ' VTable offset = 84
 BYREF pDepthStencilDesc AS D3D11_DEPTH_STENCIL_DESC
 , BYREF ppDepthStencilState AS ID3D11DepthStencilState
 ) AS LONG
 ' =====================================================================================
 METHOD CreateRasterizerState ( ' VTable offset = 88
 BYREF pRasterizerDesc AS D3D11_RASTERIZER_DESC
 , BYREF ppRasterizerState AS ID3D11RasterizerState
 ) AS LONG
 ' =====================================================================================
 METHOD CreateSamplerState ( ' VTable offset = 92
 BYREF pSamplerDesc AS D3D11_SAMPLER_DESC
 , BYREF ppSamplerState AS ID3D11SamplerState
 ) AS LONG
 ' =====================================================================================
 METHOD CreateQuery ( ' VTable offset = 96
 BYREF pQueryDesc AS D3D11_QUERY_DESC
 , BYREF ppQuery AS ID3D11Query
 ) AS LONG
 ' =====================================================================================
 METHOD CreatePredicate ( ' VTable offset = 100
 BYREF pPredicateDesc AS D3D11_QUERY_DESC
 , BYREF ppPredicate AS ID3D11Predicate
 ) AS LONG
 ' =====================================================================================
 METHOD CreateCounter ( ' VTable offset = 104
 BYREF pCounterDesc AS D3D11_COUNTER_DESC
 , BYREF ppCounter AS ID3D11Counter
 ) AS LONG
 ' =====================================================================================
 METHOD CreateDeferredContext ( ' VTable offset = 108
 BYVAL ContextFlags AS DWORD
 , BYREF ppDeferredContext AS ID3D11DeviceContext
 ) AS LONG
 ' =====================================================================================
 METHOD OpenSharedResource ( ' VTable offset = 112
 BYVAL hResource AS DWORD
 , BYREF ReturnedInterface AS GUID
 , BYREF ppResource AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD CheckFormatSupport ( ' VTable offset = 116
 BYVAL Format AS DWORD
 , BYREF pFormatSupport AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD CheckMultisampleQualityLevels ( ' VTable offset = 120
 BYVAL Format AS DWORD
 , BYVAL SampleCount AS DWORD
 , BYREF pNumQualityLevels AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD CheckCounterInfo ( ' VTable offset = 124
 BYREF pCounterInfo AS D3D11_COUNTER_INFO
 ) AS LONG
 ' =====================================================================================
 METHOD CheckCounter ( ' VTable offset = 128
 BYREF pDesc AS D3D11_COUNTER_DESC
 , BYREF pType AS LONG
 , BYREF pActiveCounters AS DWORD
 , BYREF szName AS ASCIIz
 , BYREF pNameLength AS DWORD
 , BYREF szUnits AS ASCIIZ
 , BYREF pUnitsLength AS DWORD
 , BYREF szDescription AS ASCIIZ
 , BYREF pDescriptionLength AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD CheckFeatureSupport ( ' VTable offset = 132
 BYVAL Feature AS LONG
 , BYREF pFeatureSupportData AS DWORD
 , BYVAL FeatureSupportDataSize AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetPrivateData ( ' VTable offset = 136
 BYREF guid AS GUID
 , BYREF pDataSize AS DWORD
 , BYREF pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateData ( ' VTable offset = 140
 BYREF guid AS GUID
 , BYVAL DataSize AS DWORD
 , BYVAL pData AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPrivateDataInterface ( ' VTable offset = 144
 BYREF guid AS GUID
 , BYVAL pData AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD GetFeatureLevel ( ' VTable offset = 148
 ) AS DWORD ' D3D_FEATURE_LEVEL
 ' =====================================================================================
 METHOD GetCreationFlags ( ' VTable offset = 152
 ) AS DWORD ' UINT
 ' =====================================================================================
 METHOD GetDeviceRemovedReason ( ' VTable offset = 156
 ) AS LONG
 ' =====================================================================================
 METHOD GetImmediateContext ( ' VTable offset = 160
 BYREF ppImmediateContext AS ID3D11DeviceContext
 ) ' void
 ' =====================================================================================
 METHOD SetExceptionMode ( ' VTable offset = 160
 BYVAL RaiseFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetExceptionMode ( ' VTable offset = 156
 ) AS DWORD ' UINT
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ID3D11Device_INTERFACE_DEFINED__ */
' enum D3D11_CREATE_DEVICE_FLAG
%EQUATE `D3D11_CREATE_DEVICE_SINGLETHREADED = &H1
%EQUATE `D3D11_CREATE_DEVICE_DEBUG = &H2
%EQUATE `D3D11_CREATE_DEVICE_SWITCH_TO_REF = &H4
%EQUATE `D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = &H8
%EQUATE `D3D11_CREATE_DEVICE_BGRA_SUPPORT = &H20
%EQUATE `D3D11_SDK_VERSION = 7
#INCLUDE ONCE "Legacy/Graphics/D3D10_1.inc"
#IF NOT %DEF(%D3D11_IGNORE_SDK_LAYERS)
#INCLUDE ONCE "Legacy/Graphics/d3d11sdklayers.inc"
#ENDIF
#INCLUDE ONCE "Legacy/Graphics/d3d10misc.inc"
#INCLUDE ONCE "Legacy/Graphics/D3D10shader.inc"
#INCLUDE ONCE "Legacy/Graphics/D3D10effect.inc"
#INCLUDE ONCE "Legacy/Graphics/D3D10_1shader.inc"
'///////////////////////////////////////////////////////////////////////////
'// D3D11CreateDevice
'// ------------------
'//
'// pAdapter
'// If NULL, D3D11CreateDevice will choose the primary adapter and
'// create a new instance from a temporarily created IDXGIFactory.
'// If non-NULL, D3D11CreateDevice will register the appropriate
'// device, if necessary (via IDXGIAdapter::RegisterDrver), before
'// creating the device.
'// DriverType
'// Specifies the driver type to be created: hardware, reference or
'// null.
'// Software
'// HMODULE of a DLL implementing a software rasterizer. Must be NULL for
'// non-Software driver types.
'// Flags
'// Any of those documented for D3D11CreateDeviceAndSwapChain.
'// pFeatureLevels
'// Any of those documented for D3D11CreateDeviceAndSwapChain.
'// FeatureLevels
'// Size of feature levels array.
'// SDKVersion
'// SDK version. Use the D3D11_SDK_VERSION macro.
'// ppDevice
'// Pointer to returned interface. May be NULL.
'// pFeatureLevel
'// Pointer to returned feature level. May be NULL.
'// ppImmediateContext
'// Pointer to returned interface. May be NULL.
'//
'// Return Values
'// Any of those documented for
'// CreateDXGIFactory1
'// IDXGIFactory::EnumAdapters
'// IDXGIAdapter::RegisterDriver
'// D3D11CreateDevice
'//
'///////////////////////////////////////////////////////////////////////////
DECLARE FUNCTION D3D11CreateDevice LIB "d3d11.dll" ALIAS "D3D11CreateDevice" ( BYVAL pAdapter AS IDXGIAdapter , BYVAL DriverType AS LONG , BYVAL Software AS QUAD , BYVAL Flags AS QUAD , BYREF pFeatureLevels AS QUAD , BYVAL FeatureLevels AS QUAD , BYVAL SDKVersion AS QUAD , BYREF ppDevice AS ID3D11Device , BYREF pFeatureLevel AS QUAD , BYREF ppImmediateContext AS ID3D11DeviceContext ) AS LONG
'///////////////////////////////////////////////////////////////////////////
'// D3D11CreateDeviceAndSwapChain
'// ------------------------------
'//
'// ppAdapter
'// If NULL, D3D11CreateDevice will choose the primary adapter and
'// create a new instance from a temporarily created IDXGIFactory.
'// If non-NULL, D3D11CreateDevice will register the appropriate
'// device, if necessary (via IDXGIAdapter::RegisterDrver), before
'// creating the device.
'// DriverType
'// Specifies the driver type to be created: hardware, reference or
'// null.
'// Software
'// HMODULE of a DLL implementing a software rasterizer. Must be NULL for
'// non-Software driver types.
'// Flags
'// Any of those documented for D3D11CreateDevice.
'// pFeatureLevels
'// Array of any of the following:
'// D3D_FEATURE_LEVEL_11_0
'// D3D_FEATURE_LEVEL_10_1
'// D3D_FEATURE_LEVEL_10_0
'// D3D_FEATURE_LEVEL_9_3
'// D3D_FEATURE_LEVEL_9_2
'// D3D_FEATURE_LEVEL_9_1
'// Order indicates sequence in which instantiation will be attempted. If
'// NULL, then the implied order is the same as previously listed (i.e.
'// prefer most features available).
'// FeatureLevels
'// Size of feature levels array.
'// SDKVersion
'// SDK version. Use the D3D11_SDK_VERSION macro.
'// pSwapChainDesc
'// Swap chain description, may be NULL.
'// ppSwapChain
'// Pointer to returned interface. May be NULL.
'// ppDevice
'// Pointer to returned interface. May be NULL.
'// pFeatureLevel
'// Pointer to returned feature level. May be NULL.
'// ppImmediateContext
'// Pointer to returned interface. May be NULL.
'//
'// Return Values
'// Any of those documented for
'// CreateDXGIFactory1
'// IDXGIFactory::EnumAdapters
'// IDXGIAdapter::RegisterDriver
'// D3D11CreateDevice
'// IDXGIFactory::CreateSwapChain
'//
'///////////////////////////////////////////////////////////////////////////
DECLARE FUNCTION D3D11CreateDeviceAndSwapChain LIB "d3d11.dll" ALIAS "D3D11CreateDeviceAndSwapChain" ( BYVAL pAdapter AS IDXGIAdapter , BYVAL DriverType AS LONG , BYVAL Software AS QUAD , BYVAL Flags AS QUAD , BYREF pFeatureLevels AS QUAD , BYVAL FeatureLevels AS QUAD , BYVAL SDKVersion AS QUAD , BYREF pSwapChainDesc AS DXGI_SWAP_CHAIN_DESC , BYREF ppSwapChain AS IDXGISwapChain , BYREF ppDevice AS ID3D11Device , BYREF pFeatureLevel AS QUAD , BYREF ppImmediateContext AS ID3D11DeviceContext ) AS LONG
#ENDIF
