using System;

// namespace Graphics.Direct3D10
namespace Win32
{
	extension Win32
	{
		// --- Constants ---
		
		public const uint32 D3D10_16BIT_INDEX_STRIP_CUT_VALUE = 65535;
		public const uint32 D3D10_32BIT_INDEX_STRIP_CUT_VALUE = 4294967295;
		public const uint32 D3D10_8BIT_INDEX_STRIP_CUT_VALUE = 255;
		public const uint32 D3D10_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT = 9;
		public const uint32 D3D10_CLIP_OR_CULL_DISTANCE_COUNT = 8;
		public const uint32 D3D10_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT = 2;
		public const uint32 D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT = 14;
		public const uint32 D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS = 4;
		public const uint32 D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D10_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT = 15;
		public const uint32 D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4;
		public const uint32 D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT = 15;
		public const uint32 D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1;
		public const uint32 D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1;
		public const uint32 D3D10_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT = 64;
		public const uint32 D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4;
		public const uint32 D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT = 1;
		public const uint32 D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1;
		public const uint32 D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1;
		public const uint32 D3D10_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS = 1;
		public const uint32 D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT = 128;
		public const uint32 D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST = 1;
		public const uint32 D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS = 1;
		public const uint32 D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT = 128;
		public const uint32 D3D10_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS = 1;
		public const uint32 D3D10_COMMONSHADER_SAMPLER_REGISTER_COUNT = 16;
		public const uint32 D3D10_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST = 1;
		public const uint32 D3D10_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS = 1;
		public const uint32 D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT = 16;
		public const uint32 D3D10_COMMONSHADER_SUBROUTINE_NESTING_LIMIT = 32;
		public const uint32 D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENTS = 4;
		public const uint32 D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D10_COMMONSHADER_TEMP_REGISTER_COUNT = 4096;
		public const uint32 D3D10_COMMONSHADER_TEMP_REGISTER_READS_PER_INST = 3;
		public const uint32 D3D10_COMMONSHADER_TEMP_REGISTER_READ_PORTS = 3;
		public const uint32 D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX = 10;
		public const int32 D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN = -10;
		public const int32 D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE = -8;
		public const uint32 D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE = 7;
		public const float D3D10_DEFAULT_BLEND_FACTOR_ALPHA = 1f;
		public const float D3D10_DEFAULT_BLEND_FACTOR_BLUE = 1f;
		public const float D3D10_DEFAULT_BLEND_FACTOR_GREEN = 1f;
		public const float D3D10_DEFAULT_BLEND_FACTOR_RED = 1f;
		public const float D3D10_DEFAULT_BORDER_COLOR_COMPONENT = 0f;
		public const uint32 D3D10_DEFAULT_DEPTH_BIAS = 0;
		public const float D3D10_DEFAULT_DEPTH_BIAS_CLAMP = 0f;
		public const float D3D10_DEFAULT_MAX_ANISOTROPY = 16f;
		public const float D3D10_DEFAULT_MIP_LOD_BIAS = 0f;
		public const uint32 D3D10_DEFAULT_RENDER_TARGET_ARRAY_INDEX = 0;
		public const uint32 D3D10_DEFAULT_SAMPLE_MASK = 4294967295;
		public const uint32 D3D10_DEFAULT_SCISSOR_ENDX = 0;
		public const uint32 D3D10_DEFAULT_SCISSOR_ENDY = 0;
		public const uint32 D3D10_DEFAULT_SCISSOR_STARTX = 0;
		public const uint32 D3D10_DEFAULT_SCISSOR_STARTY = 0;
		public const float D3D10_DEFAULT_SLOPE_SCALED_DEPTH_BIAS = 0f;
		public const uint32 D3D10_DEFAULT_STENCIL_READ_MASK = 255;
		public const uint32 D3D10_DEFAULT_STENCIL_REFERENCE = 0;
		public const uint32 D3D10_DEFAULT_STENCIL_WRITE_MASK = 255;
		public const uint32 D3D10_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX = 0;
		public const uint32 D3D10_DEFAULT_VIEWPORT_HEIGHT = 0;
		public const float D3D10_DEFAULT_VIEWPORT_MAX_DEPTH = 0f;
		public const float D3D10_DEFAULT_VIEWPORT_MIN_DEPTH = 0f;
		public const uint32 D3D10_DEFAULT_VIEWPORT_TOPLEFTX = 0;
		public const uint32 D3D10_DEFAULT_VIEWPORT_TOPLEFTY = 0;
		public const uint32 D3D10_DEFAULT_VIEWPORT_WIDTH = 0;
		public const double D3D10_FLOAT16_FUSED_TOLERANCE_IN_ULP = 0.6;
		public const float D3D10_FLOAT32_MAX = 3.4028235e+38f;
		public const float D3D10_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP = 0.6f;
		public const float D3D10_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR = 2.4f;
		public const float D3D10_FLOAT_TO_SRGB_EXPONENT_NUMERATOR = 1f;
		public const float D3D10_FLOAT_TO_SRGB_OFFSET = 0.055f;
		public const float D3D10_FLOAT_TO_SRGB_SCALE_1 = 12.92f;
		public const float D3D10_FLOAT_TO_SRGB_SCALE_2 = 1.055f;
		public const float D3D10_FLOAT_TO_SRGB_THRESHOLD = 0.0031308f;
		public const float D3D10_FTOI_INSTRUCTION_MAX_INPUT = 2147483600.0f;
		public const float D3D10_FTOI_INSTRUCTION_MIN_INPUT = -2147483600.0f;
		public const float D3D10_FTOU_INSTRUCTION_MAX_INPUT = 4294967300.0f;
		public const float D3D10_FTOU_INSTRUCTION_MIN_INPUT = 0f;
		public const uint32 D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS = 1;
		public const uint32 D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D10_GS_INPUT_PRIM_CONST_REGISTER_COUNT = 1;
		public const uint32 D3D10_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST = 2;
		public const uint32 D3D10_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS = 1;
		public const uint32 D3D10_GS_INPUT_REGISTER_COMPONENTS = 4;
		public const uint32 D3D10_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D10_GS_INPUT_REGISTER_COUNT = 16;
		public const uint32 D3D10_GS_INPUT_REGISTER_READS_PER_INST = 2;
		public const uint32 D3D10_GS_INPUT_REGISTER_READ_PORTS = 1;
		public const uint32 D3D10_GS_INPUT_REGISTER_VERTICES = 6;
		public const uint32 D3D10_GS_OUTPUT_ELEMENTS = 32;
		public const uint32 D3D10_GS_OUTPUT_REGISTER_COMPONENTS = 4;
		public const uint32 D3D10_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D10_GS_OUTPUT_REGISTER_COUNT = 32;
		public const uint32 D3D10_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES = 0;
		public const uint32 D3D10_IA_DEFAULT_PRIMITIVE_TOPOLOGY = 0;
		public const uint32 D3D10_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES = 0;
		public const uint32 D3D10_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT = 1;
		public const uint32 D3D10_IA_INSTANCE_ID_BIT_COUNT = 32;
		public const uint32 D3D10_IA_INTEGER_ARITHMETIC_BIT_COUNT = 32;
		public const uint32 D3D10_IA_PRIMITIVE_ID_BIT_COUNT = 32;
		public const uint32 D3D10_IA_VERTEX_ID_BIT_COUNT = 32;
		public const uint32 D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 16;
		public const uint32 D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 64;
		public const uint32 D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 16;
		public const uint32 D3D10_INTEGER_DIVIDE_BY_ZERO_QUOTIENT = 4294967295;
		public const uint32 D3D10_INTEGER_DIVIDE_BY_ZERO_REMAINDER = 4294967295;
		public const float D3D10_LINEAR_GAMMA = 1f;
		public const float D3D10_MAX_BORDER_COLOR_COMPONENT = 1f;
		public const float D3D10_MAX_DEPTH = 1f;
		public const uint32 D3D10_MAX_MAXANISOTROPY = 16;
		public const uint32 D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT = 32;
		public const float D3D10_MAX_POSITION_VALUE = 3.4028236e+34f;
		public const uint32 D3D10_MAX_TEXTURE_DIMENSION_2_TO_EXP = 17;
		public const float D3D10_MIN_BORDER_COLOR_COMPONENT = 0f;
		public const float D3D10_MIN_DEPTH = 0f;
		public const uint32 D3D10_MIN_MAXANISOTROPY = 0;
		public const float D3D10_MIP_LOD_BIAS_MAX = 15.99f;
		public const float D3D10_MIP_LOD_BIAS_MIN = -16f;
		public const uint32 D3D10_MIP_LOD_FRACTIONAL_BIT_COUNT = 6;
		public const uint32 D3D10_MIP_LOD_RANGE_BIT_COUNT = 8;
		public const float D3D10_MULTISAMPLE_ANTIALIAS_LINE_WIDTH = 1.4f;
		public const uint32 D3D10_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT = 0;
		public const uint32 D3D10_PIXEL_ADDRESS_RANGE_BIT_COUNT = 13;
		public const uint32 D3D10_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT = 15;
		public const uint32 D3D10_PS_FRONTFACING_DEFAULT_VALUE = 4294967295;
		public const uint32 D3D10_PS_FRONTFACING_FALSE_VALUE = 0;
		public const uint32 D3D10_PS_FRONTFACING_TRUE_VALUE = 4294967295;
		public const uint32 D3D10_PS_INPUT_REGISTER_COMPONENTS = 4;
		public const uint32 D3D10_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D10_PS_INPUT_REGISTER_COUNT = 32;
		public const uint32 D3D10_PS_INPUT_REGISTER_READS_PER_INST = 2;
		public const uint32 D3D10_PS_INPUT_REGISTER_READ_PORTS = 1;
		public const float D3D10_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT = 0f;
		public const uint32 D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS = 1;
		public const uint32 D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D10_PS_OUTPUT_DEPTH_REGISTER_COUNT = 1;
		public const uint32 D3D10_PS_OUTPUT_REGISTER_COMPONENTS = 4;
		public const uint32 D3D10_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D10_PS_OUTPUT_REGISTER_COUNT = 8;
		public const float D3D10_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT = 0.5f;
		public const uint32 D3D10_REQ_BLEND_OBJECT_COUNT_PER_CONTEXT = 4096;
		public const uint32 D3D10_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP = 27;
		public const uint32 D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT = 4096;
		public const uint32 D3D10_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_CONTEXT = 4096;
		public const uint32 D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 32;
		public const uint32 D3D10_REQ_DRAW_VERTEX_COUNT_2_TO_EXP = 32;
		public const uint32 D3D10_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION = 8192;
		public const uint32 D3D10_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT = 1024;
		public const uint32 D3D10_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT = 4096;
		public const uint32 D3D10_REQ_MAXANISOTROPY = 16;
		public const uint32 D3D10_REQ_MIP_LEVELS = 14;
		public const uint32 D3D10_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES = 2048;
		public const uint32 D3D10_REQ_RASTERIZER_OBJECT_COUNT_PER_CONTEXT = 4096;
		public const uint32 D3D10_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH = 8192;
		public const uint32 D3D10_REQ_RESOURCE_SIZE_IN_MEGABYTES = 128;
		public const uint32 D3D10_REQ_RESOURCE_VIEW_COUNT_PER_CONTEXT_2_TO_EXP = 20;
		public const uint32 D3D10_REQ_SAMPLER_OBJECT_COUNT_PER_CONTEXT = 4096;
		public const uint32 D3D10_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = 512;
		public const uint32 D3D10_REQ_TEXTURE1D_U_DIMENSION = 8192;
		public const uint32 D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION = 512;
		public const uint32 D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION = 8192;
		public const uint32 D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 2048;
		public const uint32 D3D10_REQ_TEXTURECUBE_DIMENSION = 8192;
		public const uint32 D3D10_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL = 0;
		public const uint32 D3D10_SHADER_MAJOR_VERSION = 4;
		public const uint32 D3D10_SHADER_MINOR_VERSION = 0;
		public const uint32 D3D10_SHIFT_INSTRUCTION_PAD_VALUE = 0;
		public const uint32 D3D10_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT = 5;
		public const uint32 D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT = 8;
		public const uint32 D3D10_SO_BUFFER_MAX_STRIDE_IN_BYTES = 2048;
		public const uint32 D3D10_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = 256;
		public const uint32 D3D10_SO_BUFFER_SLOT_COUNT = 4;
		public const uint32 D3D10_SO_DDI_REGISTER_INDEX_DENOTING_GAP = 4294967295;
		public const uint32 D3D10_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER = 1;
		public const uint32 D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT = 64;
		public const float D3D10_SRGB_GAMMA = 2.2f;
		public const float D3D10_SRGB_TO_FLOAT_DENOMINATOR_1 = 12.92f;
		public const float D3D10_SRGB_TO_FLOAT_DENOMINATOR_2 = 1.055f;
		public const float D3D10_SRGB_TO_FLOAT_EXPONENT = 2.4f;
		public const float D3D10_SRGB_TO_FLOAT_OFFSET = 0.055f;
		public const float D3D10_SRGB_TO_FLOAT_THRESHOLD = 0.04045f;
		public const float D3D10_SRGB_TO_FLOAT_TOLERANCE_IN_ULP = 0.5f;
		public const uint32 D3D10_STANDARD_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D10_STANDARD_COMPONENT_BIT_COUNT_DOUBLED = 64;
		public const uint32 D3D10_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE = 4;
		public const uint32 D3D10_STANDARD_PIXEL_COMPONENT_COUNT = 128;
		public const uint32 D3D10_STANDARD_PIXEL_ELEMENT_COUNT = 32;
		public const uint32 D3D10_STANDARD_VECTOR_SIZE = 4;
		public const uint32 D3D10_STANDARD_VERTEX_ELEMENT_COUNT = 16;
		public const uint32 D3D10_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT = 64;
		public const uint32 D3D10_SUBPIXEL_FRACTIONAL_BIT_COUNT = 8;
		public const uint32 D3D10_SUBTEXEL_FRACTIONAL_BIT_COUNT = 6;
		public const uint32 D3D10_TEXEL_ADDRESS_RANGE_BIT_COUNT = 18;
		public const uint32 D3D10_UNBOUND_MEMORY_ACCESS_RESULT = 0;
		public const uint32 D3D10_VIEWPORT_AND_SCISSORRECT_MAX_INDEX = 15;
		public const uint32 D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16;
		public const uint32 D3D10_VIEWPORT_BOUNDS_MAX = 16383;
		public const int32 D3D10_VIEWPORT_BOUNDS_MIN = -16384;
		public const uint32 D3D10_VS_INPUT_REGISTER_COMPONENTS = 4;
		public const uint32 D3D10_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D10_VS_INPUT_REGISTER_COUNT = 16;
		public const uint32 D3D10_VS_INPUT_REGISTER_READS_PER_INST = 2;
		public const uint32 D3D10_VS_INPUT_REGISTER_READ_PORTS = 1;
		public const uint32 D3D10_VS_OUTPUT_REGISTER_COMPONENTS = 4;
		public const uint32 D3D10_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D10_VS_OUTPUT_REGISTER_COUNT = 16;
		public const uint32 D3D10_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT = 10;
		public const uint32 D3D10_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 25;
		public const uint32 D3D10_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP = 25;
		public const uint32 D3D_MAJOR_VERSION = 10;
		public const uint32 D3D_MINOR_VERSION = 0;
		public const uint32 D3D_SPEC_DATE_DAY = 8;
		public const uint32 D3D_SPEC_DATE_MONTH = 8;
		public const uint32 D3D_SPEC_DATE_YEAR = 2006;
		public const double D3D_SPEC_VERSION = 1.050005;
		public const uint32 D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 16;
		public const uint32 D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 16;
		public const uint32 _FACD3D10 = 2169;
		public const uint32 D3D10_APPEND_ALIGNED_ELEMENT = 4294967295;
		public const uint32 D3D10_FILTER_TYPE_MASK = 3;
		public const uint32 D3D10_MIN_FILTER_SHIFT = 4;
		public const uint32 D3D10_MAG_FILTER_SHIFT = 2;
		public const uint32 D3D10_MIP_FILTER_SHIFT = 0;
		public const uint32 D3D10_COMPARISON_FILTERING_BIT = 128;
		public const uint32 D3D10_ANISOTROPIC_FILTERING_BIT = 64;
		public const uint32 D3D10_TEXT_1BIT_BIT = 2147483648;
		public const uint32 D3D10_SDK_VERSION = 29;
		public const uint32 D3D10_1_DEFAULT_SAMPLE_MASK = 4294967295;
		public const double D3D10_1_FLOAT16_FUSED_TOLERANCE_IN_ULP = 0.6;
		public const float D3D10_1_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP = 0.6f;
		public const uint32 D3D10_1_GS_INPUT_REGISTER_COUNT = 32;
		public const uint32 D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 128;
		public const uint32 D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENTS = 1;
		public const uint32 D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = 32;
		public const uint32 D3D10_1_PS_OUTPUT_MASK_REGISTER_COUNT = 1;
		public const uint32 D3D10_1_SHADER_MAJOR_VERSION = 4;
		public const uint32 D3D10_1_SHADER_MINOR_VERSION = 1;
		public const uint32 D3D10_1_SO_BUFFER_MAX_STRIDE_IN_BYTES = 2048;
		public const uint32 D3D10_1_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = 256;
		public const uint32 D3D10_1_SO_BUFFER_SLOT_COUNT = 4;
		public const uint32 D3D10_1_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER = 1;
		public const uint32 D3D10_1_SO_SINGLE_BUFFER_COMPONENT_LIMIT = 64;
		public const uint32 D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT = 32;
		public const uint32 D3D10_1_SUBPIXEL_FRACTIONAL_BIT_COUNT = 8;
		public const uint32 D3D10_1_VS_INPUT_REGISTER_COUNT = 32;
		public const uint32 D3D10_1_VS_OUTPUT_REGISTER_COUNT = 32;
		public const uint32 D3D10_SDK_LAYERS_VERSION = 11;
		public const uint32 D3D10_DEBUG_FEATURE_FLUSH_PER_RENDER_OP = 1;
		public const uint32 D3D10_DEBUG_FEATURE_FINISH_PER_RENDER_OP = 2;
		public const uint32 D3D10_DEBUG_FEATURE_PRESENT_PER_RENDER_OP = 4;
		public const Guid DXGI_DEBUG_D3D10 = .(0x243b4c52, 0x3606, 0x4d3a, 0x99, 0xd7, 0xa7, 0xe7, 0xb3, 0x3e, 0xd7, 0x06);
		public const uint32 D3D10_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT = 1024;
		public const uint32 D3D10_SHADER_DEBUG = 1;
		public const uint32 D3D10_SHADER_SKIP_VALIDATION = 2;
		public const uint32 D3D10_SHADER_SKIP_OPTIMIZATION = 4;
		public const uint32 D3D10_SHADER_PACK_MATRIX_ROW_MAJOR = 8;
		public const uint32 D3D10_SHADER_PACK_MATRIX_COLUMN_MAJOR = 16;
		public const uint32 D3D10_SHADER_PARTIAL_PRECISION = 32;
		public const uint32 D3D10_SHADER_FORCE_VS_SOFTWARE_NO_OPT = 64;
		public const uint32 D3D10_SHADER_FORCE_PS_SOFTWARE_NO_OPT = 128;
		public const uint32 D3D10_SHADER_NO_PRESHADER = 256;
		public const uint32 D3D10_SHADER_AVOID_FLOW_CONTROL = 512;
		public const uint32 D3D10_SHADER_PREFER_FLOW_CONTROL = 1024;
		public const uint32 D3D10_SHADER_ENABLE_STRICTNESS = 2048;
		public const uint32 D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY = 4096;
		public const uint32 D3D10_SHADER_IEEE_STRICTNESS = 8192;
		public const uint32 D3D10_SHADER_WARNINGS_ARE_ERRORS = 262144;
		public const uint32 D3D10_SHADER_RESOURCES_MAY_ALIAS = 524288;
		public const uint32 D3D10_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES = 1048576;
		public const uint32 D3D10_ALL_RESOURCES_BOUND = 2097152;
		public const uint32 D3D10_SHADER_DEBUG_NAME_FOR_SOURCE = 4194304;
		public const uint32 D3D10_SHADER_DEBUG_NAME_FOR_BINARY = 8388608;
		public const uint32 D3D10_SHADER_OPTIMIZATION_LEVEL0 = 16384;
		public const uint32 D3D10_SHADER_OPTIMIZATION_LEVEL1 = 0;
		public const uint32 D3D10_SHADER_OPTIMIZATION_LEVEL3 = 32768;
		public const uint32 D3D10_SHADER_FLAGS2_FORCE_ROOT_SIGNATURE_LATEST = 0;
		public const uint32 D3D10_SHADER_FLAGS2_FORCE_ROOT_SIGNATURE_1_0 = 16;
		public const uint32 D3D10_SHADER_FLAGS2_FORCE_ROOT_SIGNATURE_1_1 = 32;
		public const uint32 D3D10_EFFECT_COMPILE_CHILD_EFFECT = 1;
		public const uint32 D3D10_EFFECT_COMPILE_ALLOW_SLOW_OPS = 2;
		public const uint32 D3D10_EFFECT_SINGLE_THREADED = 8;
		public const uint32 D3D10_EFFECT_VARIABLE_POOLED = 1;
		public const uint32 D3D10_EFFECT_VARIABLE_ANNOTATION = 2;
		public const uint32 D3D10_EFFECT_VARIABLE_EXPLICIT_BIND_POINT = 4;
		public const Guid GUID_DeviceType = .(0xd722fb4d, 0x7a68, 0x437a, 0xb2, 0x0c, 0x58, 0x04, 0xee, 0x24, 0x94, 0xa6);
		
		// --- Enums ---
		
		public enum D3D10_INPUT_CLASSIFICATION : int32
		{
			VERTEX_DATA = 0,
			INSTANCE_DATA = 1,
		}
		public enum D3D10_FILL_MODE : int32
		{
			WIREFRAME = 2,
			SOLID = 3,
		}
		public enum D3D10_CULL_MODE : int32
		{
			NONE = 1,
			FRONT = 2,
			BACK = 3,
		}
		public enum D3D10_RESOURCE_DIMENSION : int32
		{
			UNKNOWN = 0,
			BUFFER = 1,
			TEXTURE1D = 2,
			TEXTURE2D = 3,
			TEXTURE3D = 4,
		}
		public enum D3D10_DSV_DIMENSION : int32
		{
			UNKNOWN = 0,
			TEXTURE1D = 1,
			TEXTURE1DARRAY = 2,
			TEXTURE2D = 3,
			TEXTURE2DARRAY = 4,
			TEXTURE2DMS = 5,
			TEXTURE2DMSARRAY = 6,
		}
		public enum D3D10_RTV_DIMENSION : int32
		{
			UNKNOWN = 0,
			BUFFER = 1,
			TEXTURE1D = 2,
			TEXTURE1DARRAY = 3,
			TEXTURE2D = 4,
			TEXTURE2DARRAY = 5,
			TEXTURE2DMS = 6,
			TEXTURE2DMSARRAY = 7,
			TEXTURE3D = 8,
		}
		public enum D3D10_USAGE : int32
		{
			DEFAULT = 0,
			IMMUTABLE = 1,
			DYNAMIC = 2,
			STAGING = 3,
		}
		public enum D3D10_BIND_FLAG : int32
		{
			VERTEX_BUFFER = 1,
			INDEX_BUFFER = 2,
			CONSTANT_BUFFER = 4,
			SHADER_RESOURCE = 8,
			STREAM_OUTPUT = 16,
			RENDER_TARGET = 32,
			DEPTH_STENCIL = 64,
		}
		public enum D3D10_CPU_ACCESS_FLAG : int32
		{
			WRITE = 65536,
			READ = 131072,
		}
		public enum D3D10_RESOURCE_MISC_FLAG : int32
		{
			GENERATE_MIPS = 1,
			SHARED = 2,
			TEXTURECUBE = 4,
			SHARED_KEYEDMUTEX = 16,
			GDI_COMPATIBLE = 32,
		}
		public enum D3D10_MAP : int32
		{
			READ = 1,
			WRITE = 2,
			READ_WRITE = 3,
			WRITE_DISCARD = 4,
			WRITE_NO_OVERWRITE = 5,
		}
		public enum D3D10_MAP_FLAG : int32
		{
			FLAG_DO_NOT_WAIT = 1048576,
		}
		public enum D3D10_RAISE_FLAG : int32
		{
			FLAG_DRIVER_INTERNAL_ERROR = 1,
		}
		public enum D3D10_CLEAR_FLAG : int32
		{
			DEPTH = 1,
			STENCIL = 2,
		}
		public enum D3D10_COMPARISON_FUNC : int32
		{
			NEVER = 1,
			LESS = 2,
			EQUAL = 3,
			LESS_EQUAL = 4,
			GREATER = 5,
			NOT_EQUAL = 6,
			GREATER_EQUAL = 7,
			ALWAYS = 8,
		}
		public enum D3D10_DEPTH_WRITE_MASK : int32
		{
			ZERO = 0,
			ALL = 1,
		}
		public enum D3D10_STENCIL_OP : int32
		{
			KEEP = 1,
			ZERO = 2,
			REPLACE = 3,
			INCR_SAT = 4,
			DECR_SAT = 5,
			INVERT = 6,
			INCR = 7,
			DECR = 8,
		}
		public enum D3D10_BLEND : int32
		{
			ZERO = 1,
			ONE = 2,
			SRC_COLOR = 3,
			INV_SRC_COLOR = 4,
			SRC_ALPHA = 5,
			INV_SRC_ALPHA = 6,
			DEST_ALPHA = 7,
			INV_DEST_ALPHA = 8,
			DEST_COLOR = 9,
			INV_DEST_COLOR = 10,
			SRC_ALPHA_SAT = 11,
			BLEND_FACTOR = 14,
			INV_BLEND_FACTOR = 15,
			SRC1_COLOR = 16,
			INV_SRC1_COLOR = 17,
			SRC1_ALPHA = 18,
			INV_SRC1_ALPHA = 19,
		}
		public enum D3D10_BLEND_OP : int32
		{
			ADD = 1,
			SUBTRACT = 2,
			REV_SUBTRACT = 3,
			MIN = 4,
			MAX = 5,
		}
		public enum D3D10_COLOR_WRITE_ENABLE : int32
		{
			RED = 1,
			GREEN = 2,
			BLUE = 4,
			ALPHA = 8,
			ALL = 15,
		}
		public enum D3D10_TEXTURECUBE_FACE : int32
		{
			POSITIVE_X = 0,
			NEGATIVE_X = 1,
			POSITIVE_Y = 2,
			NEGATIVE_Y = 3,
			POSITIVE_Z = 4,
			NEGATIVE_Z = 5,
		}
		public enum D3D10_FILTER : int32
		{
			MIN_MAG_MIP_POINT = 0,
			MIN_MAG_POINT_MIP_LINEAR = 1,
			MIN_POINT_MAG_LINEAR_MIP_POINT = 4,
			MIN_POINT_MAG_MIP_LINEAR = 5,
			MIN_LINEAR_MAG_MIP_POINT = 16,
			MIN_LINEAR_MAG_POINT_MIP_LINEAR = 17,
			MIN_MAG_LINEAR_MIP_POINT = 20,
			MIN_MAG_MIP_LINEAR = 21,
			ANISOTROPIC = 85,
			COMPARISON_MIN_MAG_MIP_POINT = 128,
			COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 129,
			COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 132,
			COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 133,
			COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 144,
			COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 145,
			COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 148,
			COMPARISON_MIN_MAG_MIP_LINEAR = 149,
			COMPARISON_ANISOTROPIC = 213,
			TEXT_1BIT = -2147483648,
		}
		public enum D3D10_FILTER_TYPE : int32
		{
			POINT = 0,
			LINEAR = 1,
		}
		public enum D3D10_TEXTURE_ADDRESS_MODE : int32
		{
			WRAP = 1,
			MIRROR = 2,
			CLAMP = 3,
			BORDER = 4,
			MIRROR_ONCE = 5,
		}
		public enum D3D10_FORMAT_SUPPORT : int32
		{
			BUFFER = 1,
			IA_VERTEX_BUFFER = 2,
			IA_INDEX_BUFFER = 4,
			SO_BUFFER = 8,
			TEXTURE1D = 16,
			TEXTURE2D = 32,
			TEXTURE3D = 64,
			TEXTURECUBE = 128,
			SHADER_LOAD = 256,
			SHADER_SAMPLE = 512,
			SHADER_SAMPLE_COMPARISON = 1024,
			SHADER_SAMPLE_MONO_TEXT = 2048,
			MIP = 4096,
			MIP_AUTOGEN = 8192,
			RENDER_TARGET = 16384,
			BLENDABLE = 32768,
			DEPTH_STENCIL = 65536,
			CPU_LOCKABLE = 131072,
			MULTISAMPLE_RESOLVE = 262144,
			DISPLAY = 524288,
			CAST_WITHIN_BIT_LAYOUT = 1048576,
			MULTISAMPLE_RENDERTARGET = 2097152,
			MULTISAMPLE_LOAD = 4194304,
			SHADER_GATHER = 8388608,
			BACK_BUFFER_CAST = 16777216,
		}
		public enum D3D10_ASYNC_GETDATA_FLAG : int32
		{
			DONOTFLUSH = 1,
		}
		public enum D3D10_QUERY : int32
		{
			EVENT = 0,
			OCCLUSION = 1,
			TIMESTAMP = 2,
			TIMESTAMP_DISJOINT = 3,
			PIPELINE_STATISTICS = 4,
			OCCLUSION_PREDICATE = 5,
			SO_STATISTICS = 6,
			SO_OVERFLOW_PREDICATE = 7,
		}
		public enum D3D10_QUERY_MISC_FLAG : int32
		{
			PREDICATEHINT = 1,
		}
		public enum D3D10_COUNTER : int32
		{
			GPU_IDLE = 0,
			VERTEX_PROCESSING = 1,
			GEOMETRY_PROCESSING = 2,
			PIXEL_PROCESSING = 3,
			OTHER_GPU_PROCESSING = 4,
			HOST_ADAPTER_BANDWIDTH_UTILIZATION = 5,
			LOCAL_VIDMEM_BANDWIDTH_UTILIZATION = 6,
			VERTEX_THROUGHPUT_UTILIZATION = 7,
			TRIANGLE_SETUP_THROUGHPUT_UTILIZATION = 8,
			FILLRATE_THROUGHPUT_UTILIZATION = 9,
			VS_MEMORY_LIMITED = 10,
			VS_COMPUTATION_LIMITED = 11,
			GS_MEMORY_LIMITED = 12,
			GS_COMPUTATION_LIMITED = 13,
			PS_MEMORY_LIMITED = 14,
			PS_COMPUTATION_LIMITED = 15,
			POST_TRANSFORM_CACHE_HIT_RATE = 16,
			TEXTURE_CACHE_HIT_RATE = 17,
			DEVICE_DEPENDENT_0 = 1073741824,
		}
		public enum D3D10_COUNTER_TYPE : int32
		{
			FLOAT32 = 0,
			UINT16 = 1,
			UINT32 = 2,
			UINT64 = 3,
		}
		public enum D3D10_CREATE_DEVICE_FLAG : int32
		{
			SINGLETHREADED = 1,
			DEBUG = 2,
			SWITCH_TO_REF = 4,
			PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 8,
			ALLOW_NULL_FROM_MAP = 16,
			BGRA_SUPPORT = 32,
			PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 128,
			STRICT_VALIDATION = 512,
			DEBUGGABLE = 1024,
		}
		public enum D3D10_MESSAGE_CATEGORY : int32
		{
			APPLICATION_DEFINED = 0,
			MISCELLANEOUS = 1,
			INITIALIZATION = 2,
			CLEANUP = 3,
			COMPILATION = 4,
			STATE_CREATION = 5,
			STATE_SETTING = 6,
			STATE_GETTING = 7,
			RESOURCE_MANIPULATION = 8,
			EXECUTION = 9,
			SHADER = 10,
		}
		public enum D3D10_MESSAGE_SEVERITY : int32
		{
			CORRUPTION = 0,
			ERROR = 1,
			WARNING = 2,
			INFO = 3,
			MESSAGE = 4,
		}
		public enum D3D10_MESSAGE_ID : int32
		{
			UNKNOWN = 0,
			DEVICE_IASETVERTEXBUFFERS_HAZARD = 1,
			DEVICE_IASETINDEXBUFFER_HAZARD = 2,
			DEVICE_VSSETSHADERRESOURCES_HAZARD = 3,
			DEVICE_VSSETCONSTANTBUFFERS_HAZARD = 4,
			DEVICE_GSSETSHADERRESOURCES_HAZARD = 5,
			DEVICE_GSSETCONSTANTBUFFERS_HAZARD = 6,
			DEVICE_PSSETSHADERRESOURCES_HAZARD = 7,
			DEVICE_PSSETCONSTANTBUFFERS_HAZARD = 8,
			DEVICE_OMSETRENDERTARGETS_HAZARD = 9,
			DEVICE_SOSETTARGETS_HAZARD = 10,
			STRING_FROM_APPLICATION = 11,
			CORRUPTED_THIS = 12,
			CORRUPTED_PARAMETER1 = 13,
			CORRUPTED_PARAMETER2 = 14,
			CORRUPTED_PARAMETER3 = 15,
			CORRUPTED_PARAMETER4 = 16,
			CORRUPTED_PARAMETER5 = 17,
			CORRUPTED_PARAMETER6 = 18,
			CORRUPTED_PARAMETER7 = 19,
			CORRUPTED_PARAMETER8 = 20,
			CORRUPTED_PARAMETER9 = 21,
			CORRUPTED_PARAMETER10 = 22,
			CORRUPTED_PARAMETER11 = 23,
			CORRUPTED_PARAMETER12 = 24,
			CORRUPTED_PARAMETER13 = 25,
			CORRUPTED_PARAMETER14 = 26,
			CORRUPTED_PARAMETER15 = 27,
			CORRUPTED_MULTITHREADING = 28,
			MESSAGE_REPORTING_OUTOFMEMORY = 29,
			IASETINPUTLAYOUT_UNBINDDELETINGOBJECT = 30,
			IASETVERTEXBUFFERS_UNBINDDELETINGOBJECT = 31,
			IASETINDEXBUFFER_UNBINDDELETINGOBJECT = 32,
			VSSETSHADER_UNBINDDELETINGOBJECT = 33,
			VSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = 34,
			VSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = 35,
			VSSETSAMPLERS_UNBINDDELETINGOBJECT = 36,
			GSSETSHADER_UNBINDDELETINGOBJECT = 37,
			GSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = 38,
			GSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = 39,
			GSSETSAMPLERS_UNBINDDELETINGOBJECT = 40,
			SOSETTARGETS_UNBINDDELETINGOBJECT = 41,
			PSSETSHADER_UNBINDDELETINGOBJECT = 42,
			PSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = 43,
			PSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = 44,
			PSSETSAMPLERS_UNBINDDELETINGOBJECT = 45,
			RSSETSTATE_UNBINDDELETINGOBJECT = 46,
			OMSETBLENDSTATE_UNBINDDELETINGOBJECT = 47,
			OMSETDEPTHSTENCILSTATE_UNBINDDELETINGOBJECT = 48,
			OMSETRENDERTARGETS_UNBINDDELETINGOBJECT = 49,
			SETPREDICATION_UNBINDDELETINGOBJECT = 50,
			GETPRIVATEDATA_MOREDATA = 51,
			SETPRIVATEDATA_INVALIDFREEDATA = 52,
			SETPRIVATEDATA_INVALIDIUNKNOWN = 53,
			SETPRIVATEDATA_INVALIDFLAGS = 54,
			SETPRIVATEDATA_CHANGINGPARAMS = 55,
			SETPRIVATEDATA_OUTOFMEMORY = 56,
			CREATEBUFFER_UNRECOGNIZEDFORMAT = 57,
			CREATEBUFFER_INVALIDSAMPLES = 58,
			CREATEBUFFER_UNRECOGNIZEDUSAGE = 59,
			CREATEBUFFER_UNRECOGNIZEDBINDFLAGS = 60,
			CREATEBUFFER_UNRECOGNIZEDCPUACCESSFLAGS = 61,
			CREATEBUFFER_UNRECOGNIZEDMISCFLAGS = 62,
			CREATEBUFFER_INVALIDCPUACCESSFLAGS = 63,
			CREATEBUFFER_INVALIDBINDFLAGS = 64,
			CREATEBUFFER_INVALIDINITIALDATA = 65,
			CREATEBUFFER_INVALIDDIMENSIONS = 66,
			CREATEBUFFER_INVALIDMIPLEVELS = 67,
			CREATEBUFFER_INVALIDMISCFLAGS = 68,
			CREATEBUFFER_INVALIDARG_RETURN = 69,
			CREATEBUFFER_OUTOFMEMORY_RETURN = 70,
			CREATEBUFFER_NULLDESC = 71,
			CREATEBUFFER_INVALIDCONSTANTBUFFERBINDINGS = 72,
			CREATEBUFFER_LARGEALLOCATION = 73,
			CREATETEXTURE1D_UNRECOGNIZEDFORMAT = 74,
			CREATETEXTURE1D_UNSUPPORTEDFORMAT = 75,
			CREATETEXTURE1D_INVALIDSAMPLES = 76,
			CREATETEXTURE1D_UNRECOGNIZEDUSAGE = 77,
			CREATETEXTURE1D_UNRECOGNIZEDBINDFLAGS = 78,
			CREATETEXTURE1D_UNRECOGNIZEDCPUACCESSFLAGS = 79,
			CREATETEXTURE1D_UNRECOGNIZEDMISCFLAGS = 80,
			CREATETEXTURE1D_INVALIDCPUACCESSFLAGS = 81,
			CREATETEXTURE1D_INVALIDBINDFLAGS = 82,
			CREATETEXTURE1D_INVALIDINITIALDATA = 83,
			CREATETEXTURE1D_INVALIDDIMENSIONS = 84,
			CREATETEXTURE1D_INVALIDMIPLEVELS = 85,
			CREATETEXTURE1D_INVALIDMISCFLAGS = 86,
			CREATETEXTURE1D_INVALIDARG_RETURN = 87,
			CREATETEXTURE1D_OUTOFMEMORY_RETURN = 88,
			CREATETEXTURE1D_NULLDESC = 89,
			CREATETEXTURE1D_LARGEALLOCATION = 90,
			CREATETEXTURE2D_UNRECOGNIZEDFORMAT = 91,
			CREATETEXTURE2D_UNSUPPORTEDFORMAT = 92,
			CREATETEXTURE2D_INVALIDSAMPLES = 93,
			CREATETEXTURE2D_UNRECOGNIZEDUSAGE = 94,
			CREATETEXTURE2D_UNRECOGNIZEDBINDFLAGS = 95,
			CREATETEXTURE2D_UNRECOGNIZEDCPUACCESSFLAGS = 96,
			CREATETEXTURE2D_UNRECOGNIZEDMISCFLAGS = 97,
			CREATETEXTURE2D_INVALIDCPUACCESSFLAGS = 98,
			CREATETEXTURE2D_INVALIDBINDFLAGS = 99,
			CREATETEXTURE2D_INVALIDINITIALDATA = 100,
			CREATETEXTURE2D_INVALIDDIMENSIONS = 101,
			CREATETEXTURE2D_INVALIDMIPLEVELS = 102,
			CREATETEXTURE2D_INVALIDMISCFLAGS = 103,
			CREATETEXTURE2D_INVALIDARG_RETURN = 104,
			CREATETEXTURE2D_OUTOFMEMORY_RETURN = 105,
			CREATETEXTURE2D_NULLDESC = 106,
			CREATETEXTURE2D_LARGEALLOCATION = 107,
			CREATETEXTURE3D_UNRECOGNIZEDFORMAT = 108,
			CREATETEXTURE3D_UNSUPPORTEDFORMAT = 109,
			CREATETEXTURE3D_INVALIDSAMPLES = 110,
			CREATETEXTURE3D_UNRECOGNIZEDUSAGE = 111,
			CREATETEXTURE3D_UNRECOGNIZEDBINDFLAGS = 112,
			CREATETEXTURE3D_UNRECOGNIZEDCPUACCESSFLAGS = 113,
			CREATETEXTURE3D_UNRECOGNIZEDMISCFLAGS = 114,
			CREATETEXTURE3D_INVALIDCPUACCESSFLAGS = 115,
			CREATETEXTURE3D_INVALIDBINDFLAGS = 116,
			CREATETEXTURE3D_INVALIDINITIALDATA = 117,
			CREATETEXTURE3D_INVALIDDIMENSIONS = 118,
			CREATETEXTURE3D_INVALIDMIPLEVELS = 119,
			CREATETEXTURE3D_INVALIDMISCFLAGS = 120,
			CREATETEXTURE3D_INVALIDARG_RETURN = 121,
			CREATETEXTURE3D_OUTOFMEMORY_RETURN = 122,
			CREATETEXTURE3D_NULLDESC = 123,
			CREATETEXTURE3D_LARGEALLOCATION = 124,
			CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT = 125,
			CREATESHADERRESOURCEVIEW_INVALIDDESC = 126,
			CREATESHADERRESOURCEVIEW_INVALIDFORMAT = 127,
			CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS = 128,
			CREATESHADERRESOURCEVIEW_INVALIDRESOURCE = 129,
			CREATESHADERRESOURCEVIEW_TOOMANYOBJECTS = 130,
			CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN = 131,
			CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN = 132,
			CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT = 133,
			CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT = 134,
			CREATERENDERTARGETVIEW_INVALIDDESC = 135,
			CREATERENDERTARGETVIEW_INVALIDFORMAT = 136,
			CREATERENDERTARGETVIEW_INVALIDDIMENSIONS = 137,
			CREATERENDERTARGETVIEW_INVALIDRESOURCE = 138,
			CREATERENDERTARGETVIEW_TOOMANYOBJECTS = 139,
			CREATERENDERTARGETVIEW_INVALIDARG_RETURN = 140,
			CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN = 141,
			CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT = 142,
			CREATEDEPTHSTENCILVIEW_INVALIDDESC = 143,
			CREATEDEPTHSTENCILVIEW_INVALIDFORMAT = 144,
			CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS = 145,
			CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE = 146,
			CREATEDEPTHSTENCILVIEW_TOOMANYOBJECTS = 147,
			CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN = 148,
			CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN = 149,
			CREATEINPUTLAYOUT_OUTOFMEMORY = 150,
			CREATEINPUTLAYOUT_TOOMANYELEMENTS = 151,
			CREATEINPUTLAYOUT_INVALIDFORMAT = 152,
			CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT = 153,
			CREATEINPUTLAYOUT_INVALIDSLOT = 154,
			CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS = 155,
			CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH = 156,
			CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE = 157,
			CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE = 158,
			CREATEINPUTLAYOUT_INVALIDALIGNMENT = 159,
			CREATEINPUTLAYOUT_DUPLICATESEMANTIC = 160,
			CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE = 161,
			CREATEINPUTLAYOUT_NULLSEMANTIC = 162,
			CREATEINPUTLAYOUT_MISSINGELEMENT = 163,
			CREATEINPUTLAYOUT_NULLDESC = 164,
			CREATEVERTEXSHADER_OUTOFMEMORY = 165,
			CREATEVERTEXSHADER_INVALIDSHADERBYTECODE = 166,
			CREATEVERTEXSHADER_INVALIDSHADERTYPE = 167,
			CREATEGEOMETRYSHADER_OUTOFMEMORY = 168,
			CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE = 169,
			CREATEGEOMETRYSHADER_INVALIDSHADERTYPE = 170,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY = 171,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE = 172,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 173,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES = 174,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED = 175,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL = 176,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL = 177,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED = 178,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT = 179,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT = 180,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT = 181,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT = 182,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION = 183,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT = 184,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE = 185,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC = 186,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH = 187,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS = 188,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX = 189,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE = 190,
			CREATEPIXELSHADER_OUTOFMEMORY = 191,
			CREATEPIXELSHADER_INVALIDSHADERBYTECODE = 192,
			CREATEPIXELSHADER_INVALIDSHADERTYPE = 193,
			CREATERASTERIZERSTATE_INVALIDFILLMODE = 194,
			CREATERASTERIZERSTATE_INVALIDCULLMODE = 195,
			CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP = 196,
			CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS = 197,
			CREATERASTERIZERSTATE_TOOMANYOBJECTS = 198,
			CREATERASTERIZERSTATE_NULLDESC = 199,
			CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK = 200,
			CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC = 201,
			CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP = 202,
			CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP = 203,
			CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP = 204,
			CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC = 205,
			CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP = 206,
			CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP = 207,
			CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP = 208,
			CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC = 209,
			CREATEDEPTHSTENCILSTATE_TOOMANYOBJECTS = 210,
			CREATEDEPTHSTENCILSTATE_NULLDESC = 211,
			CREATEBLENDSTATE_INVALIDSRCBLEND = 212,
			CREATEBLENDSTATE_INVALIDDESTBLEND = 213,
			CREATEBLENDSTATE_INVALIDBLENDOP = 214,
			CREATEBLENDSTATE_INVALIDSRCBLENDALPHA = 215,
			CREATEBLENDSTATE_INVALIDDESTBLENDALPHA = 216,
			CREATEBLENDSTATE_INVALIDBLENDOPALPHA = 217,
			CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK = 218,
			CREATEBLENDSTATE_TOOMANYOBJECTS = 219,
			CREATEBLENDSTATE_NULLDESC = 220,
			CREATESAMPLERSTATE_INVALIDFILTER = 221,
			CREATESAMPLERSTATE_INVALIDADDRESSU = 222,
			CREATESAMPLERSTATE_INVALIDADDRESSV = 223,
			CREATESAMPLERSTATE_INVALIDADDRESSW = 224,
			CREATESAMPLERSTATE_INVALIDMIPLODBIAS = 225,
			CREATESAMPLERSTATE_INVALIDMAXANISOTROPY = 226,
			CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC = 227,
			CREATESAMPLERSTATE_INVALIDMINLOD = 228,
			CREATESAMPLERSTATE_INVALIDMAXLOD = 229,
			CREATESAMPLERSTATE_TOOMANYOBJECTS = 230,
			CREATESAMPLERSTATE_NULLDESC = 231,
			CREATEQUERYORPREDICATE_INVALIDQUERY = 232,
			CREATEQUERYORPREDICATE_INVALIDMISCFLAGS = 233,
			CREATEQUERYORPREDICATE_UNEXPECTEDMISCFLAG = 234,
			CREATEQUERYORPREDICATE_NULLDESC = 235,
			DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED = 236,
			DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED = 237,
			IASETVERTEXBUFFERS_INVALIDBUFFER = 238,
			DEVICE_IASETVERTEXBUFFERS_OFFSET_TOO_LARGE = 239,
			DEVICE_IASETVERTEXBUFFERS_BUFFERS_EMPTY = 240,
			IASETINDEXBUFFER_INVALIDBUFFER = 241,
			DEVICE_IASETINDEXBUFFER_FORMAT_INVALID = 242,
			DEVICE_IASETINDEXBUFFER_OFFSET_TOO_LARGE = 243,
			DEVICE_IASETINDEXBUFFER_OFFSET_UNALIGNED = 244,
			DEVICE_VSSETSHADERRESOURCES_VIEWS_EMPTY = 245,
			VSSETCONSTANTBUFFERS_INVALIDBUFFER = 246,
			DEVICE_VSSETCONSTANTBUFFERS_BUFFERS_EMPTY = 247,
			DEVICE_VSSETSAMPLERS_SAMPLERS_EMPTY = 248,
			DEVICE_GSSETSHADERRESOURCES_VIEWS_EMPTY = 249,
			GSSETCONSTANTBUFFERS_INVALIDBUFFER = 250,
			DEVICE_GSSETCONSTANTBUFFERS_BUFFERS_EMPTY = 251,
			DEVICE_GSSETSAMPLERS_SAMPLERS_EMPTY = 252,
			SOSETTARGETS_INVALIDBUFFER = 253,
			DEVICE_SOSETTARGETS_OFFSET_UNALIGNED = 254,
			DEVICE_PSSETSHADERRESOURCES_VIEWS_EMPTY = 255,
			PSSETCONSTANTBUFFERS_INVALIDBUFFER = 256,
			DEVICE_PSSETCONSTANTBUFFERS_BUFFERS_EMPTY = 257,
			DEVICE_PSSETSAMPLERS_SAMPLERS_EMPTY = 258,
			DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT = 259,
			DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR = 260,
			CLEARRENDERTARGETVIEW_DENORMFLUSH = 261,
			CLEARDEPTHSTENCILVIEW_DENORMFLUSH = 262,
			CLEARDEPTHSTENCILVIEW_INVALID = 263,
			DEVICE_IAGETVERTEXBUFFERS_BUFFERS_EMPTY = 264,
			DEVICE_VSGETSHADERRESOURCES_VIEWS_EMPTY = 265,
			DEVICE_VSGETCONSTANTBUFFERS_BUFFERS_EMPTY = 266,
			DEVICE_VSGETSAMPLERS_SAMPLERS_EMPTY = 267,
			DEVICE_GSGETSHADERRESOURCES_VIEWS_EMPTY = 268,
			DEVICE_GSGETCONSTANTBUFFERS_BUFFERS_EMPTY = 269,
			DEVICE_GSGETSAMPLERS_SAMPLERS_EMPTY = 270,
			DEVICE_SOGETTARGETS_BUFFERS_EMPTY = 271,
			DEVICE_PSGETSHADERRESOURCES_VIEWS_EMPTY = 272,
			DEVICE_PSGETCONSTANTBUFFERS_BUFFERS_EMPTY = 273,
			DEVICE_PSGETSAMPLERS_SAMPLERS_EMPTY = 274,
			DEVICE_RSGETVIEWPORTS_VIEWPORTS_EMPTY = 275,
			DEVICE_RSGETSCISSORRECTS_RECTS_EMPTY = 276,
			DEVICE_GENERATEMIPS_RESOURCE_INVALID = 277,
			COPYSUBRESOURCEREGION_INVALIDDESTINATIONSUBRESOURCE = 278,
			COPYSUBRESOURCEREGION_INVALIDSOURCESUBRESOURCE = 279,
			COPYSUBRESOURCEREGION_INVALIDSOURCEBOX = 280,
			COPYSUBRESOURCEREGION_INVALIDSOURCE = 281,
			COPYSUBRESOURCEREGION_INVALIDDESTINATIONSTATE = 282,
			COPYSUBRESOURCEREGION_INVALIDSOURCESTATE = 283,
			COPYRESOURCE_INVALIDSOURCE = 284,
			COPYRESOURCE_INVALIDDESTINATIONSTATE = 285,
			COPYRESOURCE_INVALIDSOURCESTATE = 286,
			UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE = 287,
			UPDATESUBRESOURCE_INVALIDDESTINATIONBOX = 288,
			UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE = 289,
			DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID = 290,
			DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID = 291,
			DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID = 292,
			DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID = 293,
			DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID = 294,
			BUFFER_MAP_INVALIDMAPTYPE = 295,
			BUFFER_MAP_INVALIDFLAGS = 296,
			BUFFER_MAP_ALREADYMAPPED = 297,
			BUFFER_MAP_DEVICEREMOVED_RETURN = 298,
			BUFFER_UNMAP_NOTMAPPED = 299,
			TEXTURE1D_MAP_INVALIDMAPTYPE = 300,
			TEXTURE1D_MAP_INVALIDSUBRESOURCE = 301,
			TEXTURE1D_MAP_INVALIDFLAGS = 302,
			TEXTURE1D_MAP_ALREADYMAPPED = 303,
			TEXTURE1D_MAP_DEVICEREMOVED_RETURN = 304,
			TEXTURE1D_UNMAP_INVALIDSUBRESOURCE = 305,
			TEXTURE1D_UNMAP_NOTMAPPED = 306,
			TEXTURE2D_MAP_INVALIDMAPTYPE = 307,
			TEXTURE2D_MAP_INVALIDSUBRESOURCE = 308,
			TEXTURE2D_MAP_INVALIDFLAGS = 309,
			TEXTURE2D_MAP_ALREADYMAPPED = 310,
			TEXTURE2D_MAP_DEVICEREMOVED_RETURN = 311,
			TEXTURE2D_UNMAP_INVALIDSUBRESOURCE = 312,
			TEXTURE2D_UNMAP_NOTMAPPED = 313,
			TEXTURE3D_MAP_INVALIDMAPTYPE = 314,
			TEXTURE3D_MAP_INVALIDSUBRESOURCE = 315,
			TEXTURE3D_MAP_INVALIDFLAGS = 316,
			TEXTURE3D_MAP_ALREADYMAPPED = 317,
			TEXTURE3D_MAP_DEVICEREMOVED_RETURN = 318,
			TEXTURE3D_UNMAP_INVALIDSUBRESOURCE = 319,
			TEXTURE3D_UNMAP_NOTMAPPED = 320,
			CHECKFORMATSUPPORT_FORMAT_DEPRECATED = 321,
			CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED = 322,
			SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS = 323,
			SETEXCEPTIONMODE_INVALIDARG_RETURN = 324,
			SETEXCEPTIONMODE_DEVICEREMOVED_RETURN = 325,
			REF_SIMULATING_INFINITELY_FAST_HARDWARE = 326,
			REF_THREADING_MODE = 327,
			REF_UMDRIVER_EXCEPTION = 328,
			REF_KMDRIVER_EXCEPTION = 329,
			REF_HARDWARE_EXCEPTION = 330,
			REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE = 331,
			REF_PROBLEM_PARSING_SHADER = 332,
			REF_OUT_OF_MEMORY = 333,
			REF_INFO = 334,
			DEVICE_DRAW_VERTEXPOS_OVERFLOW = 335,
			DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW = 336,
			DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW = 337,
			DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW = 338,
			DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW = 339,
			DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW = 340,
			DEVICE_DRAW_VERTEX_SHADER_NOT_SET = 341,
			DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND = 342,
			DEVICE_SHADER_LINKAGE_REGISTERINDEX = 343,
			DEVICE_SHADER_LINKAGE_COMPONENTTYPE = 344,
			DEVICE_SHADER_LINKAGE_REGISTERMASK = 345,
			DEVICE_SHADER_LINKAGE_SYSTEMVALUE = 346,
			DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS = 347,
			DEVICE_DRAW_VERTEX_BUFFER_NOT_SET = 348,
			DEVICE_DRAW_INPUTLAYOUT_NOT_SET = 349,
			DEVICE_DRAW_CONSTANT_BUFFER_NOT_SET = 350,
			DEVICE_DRAW_CONSTANT_BUFFER_TOO_SMALL = 351,
			DEVICE_DRAW_SAMPLER_NOT_SET = 352,
			DEVICE_DRAW_SHADERRESOURCEVIEW_NOT_SET = 353,
			DEVICE_DRAW_VIEW_DIMENSION_MISMATCH = 354,
			DEVICE_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL = 355,
			DEVICE_DRAW_VERTEX_BUFFER_TOO_SMALL = 356,
			DEVICE_DRAW_INDEX_BUFFER_NOT_SET = 357,
			DEVICE_DRAW_INDEX_BUFFER_FORMAT_INVALID = 358,
			DEVICE_DRAW_INDEX_BUFFER_TOO_SMALL = 359,
			DEVICE_DRAW_GS_INPUT_PRIMITIVE_MISMATCH = 360,
			DEVICE_DRAW_RESOURCE_RETURN_TYPE_MISMATCH = 361,
			DEVICE_DRAW_POSITION_NOT_PRESENT = 362,
			DEVICE_DRAW_OUTPUT_STREAM_NOT_SET = 363,
			DEVICE_DRAW_BOUND_RESOURCE_MAPPED = 364,
			DEVICE_DRAW_INVALID_PRIMITIVETOPOLOGY = 365,
			DEVICE_DRAW_VERTEX_OFFSET_UNALIGNED = 366,
			DEVICE_DRAW_VERTEX_STRIDE_UNALIGNED = 367,
			DEVICE_DRAW_INDEX_OFFSET_UNALIGNED = 368,
			DEVICE_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED = 369,
			DEVICE_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED = 370,
			DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED = 371,
			DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED = 372,
			DEVICE_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED = 373,
			DEVICE_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE = 374,
			DEVICE_DRAW_SO_STRIDE_LARGER_THAN_BUFFER = 375,
			DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING = 376,
			DEVICE_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 = 377,
			DEVICE_REMOVAL_PROCESS_AT_FAULT = 378,
			DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT = 379,
			DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT = 380,
			DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN = 381,
			DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN = 382,
			DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN = 383,
			DEVICE_DRAW_VIEWPORT_NOT_SET = 384,
			CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC = 385,
			CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC = 386,
			DEVICE_RSSETVIEWPORTS_DENORMFLUSH = 387,
			OMSETRENDERTARGETS_INVALIDVIEW = 388,
			DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS = 389,
			DEVICE_DRAW_SAMPLER_MISMATCH = 390,
			CREATEINPUTLAYOUT_TYPE_MISMATCH = 391,
			BLENDSTATE_GETDESC_LEGACY = 392,
			SHADERRESOURCEVIEW_GETDESC_LEGACY = 393,
			CREATEQUERY_OUTOFMEMORY_RETURN = 394,
			CREATEPREDICATE_OUTOFMEMORY_RETURN = 395,
			CREATECOUNTER_OUTOFRANGE_COUNTER = 396,
			CREATECOUNTER_SIMULTANEOUS_ACTIVE_COUNTERS_EXHAUSTED = 397,
			CREATECOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER = 398,
			CREATECOUNTER_OUTOFMEMORY_RETURN = 399,
			CREATECOUNTER_NONEXCLUSIVE_RETURN = 400,
			CREATECOUNTER_NULLDESC = 401,
			CHECKCOUNTER_OUTOFRANGE_COUNTER = 402,
			CHECKCOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER = 403,
			SETPREDICATION_INVALID_PREDICATE_STATE = 404,
			QUERY_BEGIN_UNSUPPORTED = 405,
			PREDICATE_BEGIN_DURING_PREDICATION = 406,
			QUERY_BEGIN_DUPLICATE = 407,
			QUERY_BEGIN_ABANDONING_PREVIOUS_RESULTS = 408,
			PREDICATE_END_DURING_PREDICATION = 409,
			QUERY_END_ABANDONING_PREVIOUS_RESULTS = 410,
			QUERY_END_WITHOUT_BEGIN = 411,
			QUERY_GETDATA_INVALID_DATASIZE = 412,
			QUERY_GETDATA_INVALID_FLAGS = 413,
			QUERY_GETDATA_INVALID_CALL = 414,
			DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH = 415,
			DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED = 416,
			DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN = 417,
			DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE = 418,
			DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE = 419,
			CREATEINPUTLAYOUT_EMPTY_LAYOUT = 420,
			DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH = 421,
			LIVE_OBJECT_SUMMARY = 422,
			LIVE_BUFFER = 423,
			LIVE_TEXTURE1D = 424,
			LIVE_TEXTURE2D = 425,
			LIVE_TEXTURE3D = 426,
			LIVE_SHADERRESOURCEVIEW = 427,
			LIVE_RENDERTARGETVIEW = 428,
			LIVE_DEPTHSTENCILVIEW = 429,
			LIVE_VERTEXSHADER = 430,
			LIVE_GEOMETRYSHADER = 431,
			LIVE_PIXELSHADER = 432,
			LIVE_INPUTLAYOUT = 433,
			LIVE_SAMPLER = 434,
			LIVE_BLENDSTATE = 435,
			LIVE_DEPTHSTENCILSTATE = 436,
			LIVE_RASTERIZERSTATE = 437,
			LIVE_QUERY = 438,
			LIVE_PREDICATE = 439,
			LIVE_COUNTER = 440,
			LIVE_DEVICE = 441,
			LIVE_SWAPCHAIN = 442,
			D3D10_MESSAGES_END = 443,
			D3D10L9_MESSAGES_START = 1048576,
			CREATEDEPTHSTENCILSTATE_STENCIL_NO_TWO_SIDED = 1048577,
			CREATERASTERIZERSTATE_DepthBiasClamp_NOT_SUPPORTED = 1048578,
			CREATESAMPLERSTATE_NO_COMPARISON_SUPPORT = 1048579,
			CREATESAMPLERSTATE_EXCESSIVE_ANISOTROPY = 1048580,
			CREATESAMPLERSTATE_BORDER_OUT_OF_RANGE = 1048581,
			VSSETSAMPLERS_NOT_SUPPORTED = 1048582,
			VSSETSAMPLERS_TOO_MANY_SAMPLERS = 1048583,
			PSSETSAMPLERS_TOO_MANY_SAMPLERS = 1048584,
			CREATERESOURCE_NO_ARRAYS = 1048585,
			CREATERESOURCE_NO_VB_AND_IB_BIND = 1048586,
			CREATERESOURCE_NO_TEXTURE_1D = 1048587,
			CREATERESOURCE_DIMENSION_OUT_OF_RANGE = 1048588,
			CREATERESOURCE_NOT_BINDABLE_AS_SHADER_RESOURCE = 1048589,
			OMSETRENDERTARGETS_TOO_MANY_RENDER_TARGETS = 1048590,
			OMSETRENDERTARGETS_NO_DIFFERING_BIT_DEPTHS = 1048591,
			IASETVERTEXBUFFERS_BAD_BUFFER_INDEX = 1048592,
			DEVICE_RSSETVIEWPORTS_TOO_MANY_VIEWPORTS = 1048593,
			DEVICE_IASETPRIMITIVETOPOLOGY_ADJACENCY_UNSUPPORTED = 1048594,
			DEVICE_RSSETSCISSORRECTS_TOO_MANY_SCISSORS = 1048595,
			COPYRESOURCE_ONLY_TEXTURE_2D_WITHIN_GPU_MEMORY = 1048596,
			COPYRESOURCE_NO_TEXTURE_3D_READBACK = 1048597,
			COPYRESOURCE_NO_TEXTURE_ONLY_READBACK = 1048598,
			CREATEINPUTLAYOUT_UNSUPPORTED_FORMAT = 1048599,
			CREATEBLENDSTATE_NO_ALPHA_TO_COVERAGE = 1048600,
			CREATERASTERIZERSTATE_DepthClipEnable_MUST_BE_TRUE = 1048601,
			DRAWINDEXED_STARTINDEXLOCATION_MUST_BE_POSITIVE = 1048602,
			CREATESHADERRESOURCEVIEW_MUST_USE_LOWEST_LOD = 1048603,
			CREATESAMPLERSTATE_MINLOD_MUST_NOT_BE_FRACTIONAL = 1048604,
			CREATESAMPLERSTATE_MAXLOD_MUST_BE_FLT_MAX = 1048605,
			CREATESHADERRESOURCEVIEW_FIRSTARRAYSLICE_MUST_BE_ZERO = 1048606,
			CREATESHADERRESOURCEVIEW_CUBES_MUST_HAVE_6_SIDES = 1048607,
			CREATERESOURCE_NOT_BINDABLE_AS_RENDER_TARGET = 1048608,
			CREATERESOURCE_NO_DWORD_INDEX_BUFFER = 1048609,
			CREATERESOURCE_MSAA_PRECLUDES_SHADER_RESOURCE = 1048610,
			CREATERESOURCE_PRESENTATION_PRECLUDES_SHADER_RESOURCE = 1048611,
			CREATEBLENDSTATE_NO_INDEPENDENT_BLEND_ENABLE = 1048612,
			CREATEBLENDSTATE_NO_INDEPENDENT_WRITE_MASKS = 1048613,
			CREATERESOURCE_NO_STREAM_OUT = 1048614,
			CREATERESOURCE_ONLY_VB_IB_FOR_BUFFERS = 1048615,
			CREATERESOURCE_NO_AUTOGEN_FOR_VOLUMES = 1048616,
			CREATERESOURCE_DXGI_FORMAT_R8G8B8A8_CANNOT_BE_SHARED = 1048617,
			VSSHADERRESOURCES_NOT_SUPPORTED = 1048618,
			GEOMETRY_SHADER_NOT_SUPPORTED = 1048619,
			STREAM_OUT_NOT_SUPPORTED = 1048620,
			TEXT_FILTER_NOT_SUPPORTED = 1048621,
			CREATEBLENDSTATE_NO_SEPARATE_ALPHA_BLEND = 1048622,
			CREATEBLENDSTATE_NO_MRT_BLEND = 1048623,
			CREATEBLENDSTATE_OPERATION_NOT_SUPPORTED = 1048624,
			CREATESAMPLERSTATE_NO_MIRRORONCE = 1048625,
			DRAWINSTANCED_NOT_SUPPORTED = 1048626,
			DRAWINDEXEDINSTANCED_NOT_SUPPORTED_BELOW_9_3 = 1048627,
			DRAWINDEXED_POINTLIST_UNSUPPORTED = 1048628,
			SETBLENDSTATE_SAMPLE_MASK_CANNOT_BE_ZERO = 1048629,
			CREATERESOURCE_DIMENSION_EXCEEDS_FEATURE_LEVEL_DEFINITION = 1048630,
			CREATERESOURCE_ONLY_SINGLE_MIP_LEVEL_DEPTH_STENCIL_SUPPORTED = 1048631,
			DEVICE_RSSETSCISSORRECTS_NEGATIVESCISSOR = 1048632,
			SLOT_ZERO_MUST_BE_D3D10_INPUT_PER_VERTEX_DATA = 1048633,
			CREATERESOURCE_NON_POW_2_MIPMAP = 1048634,
			CREATESAMPLERSTATE_BORDER_NOT_SUPPORTED = 1048635,
			OMSETRENDERTARGETS_NO_SRGB_MRT = 1048636,
			COPYRESOURCE_NO_3D_MISMATCHED_UPDATES = 1048637,
			D3D10L9_MESSAGES_END = 1048638,
		}
		public enum D3D10_DRIVER_TYPE : int32
		{
			HARDWARE = 0,
			REFERENCE = 1,
			NULL = 2,
			SOFTWARE = 3,
			WARP = 5,
		}
		public enum D3D10_DEVICE_STATE_TYPES : int32
		{
			SO_BUFFERS = 1,
			OM_RENDER_TARGETS = 2,
			OM_DEPTH_STENCIL_STATE = 3,
			OM_BLEND_STATE = 4,
			VS = 5,
			VS_SAMPLERS = 6,
			VS_SHADER_RESOURCES = 7,
			VS_CONSTANT_BUFFERS = 8,
			GS = 9,
			GS_SAMPLERS = 10,
			GS_SHADER_RESOURCES = 11,
			GS_CONSTANT_BUFFERS = 12,
			PS = 13,
			PS_SAMPLERS = 14,
			PS_SHADER_RESOURCES = 15,
			PS_CONSTANT_BUFFERS = 16,
			IA_VERTEX_BUFFERS = 17,
			IA_INDEX_BUFFER = 18,
			IA_INPUT_LAYOUT = 19,
			IA_PRIMITIVE_TOPOLOGY = 20,
			RS_VIEWPORTS = 21,
			RS_SCISSOR_RECTS = 22,
			RS_RASTERIZER_STATE = 23,
			PREDICATION = 24,
		}
		public enum D3D10_FEATURE_LEVEL1 : int32
		{
			_10_0 = 40960,
			_10_1 = 41216,
			_9_1 = 37120,
			_9_2 = 37376,
			_9_3 = 37632,
		}
		public enum D3D10_STANDARD_MULTISAMPLE_QUALITY_LEVELS : int32
		{
			STANDARD_MULTISAMPLE_PATTERN = -1,
			CENTER_MULTISAMPLE_PATTERN = -2,
		}
		public enum D3D10_SHADER_DEBUG_REGTYPE : int32
		{
			D3D10_SHADER_DEBUG_REG_INPUT = 0,
			D3D10_SHADER_DEBUG_REG_OUTPUT = 1,
			D3D10_SHADER_DEBUG_REG_CBUFFER = 2,
			D3D10_SHADER_DEBUG_REG_TBUFFER = 3,
			D3D10_SHADER_DEBUG_REG_TEMP = 4,
			D3D10_SHADER_DEBUG_REG_TEMPARRAY = 5,
			D3D10_SHADER_DEBUG_REG_TEXTURE = 6,
			D3D10_SHADER_DEBUG_REG_SAMPLER = 7,
			D3D10_SHADER_DEBUG_REG_IMMEDIATECBUFFER = 8,
			D3D10_SHADER_DEBUG_REG_LITERAL = 9,
			D3D10_SHADER_DEBUG_REG_UNUSED = 10,
			D3D11_SHADER_DEBUG_REG_INTERFACE_POINTERS = 11,
			D3D11_SHADER_DEBUG_REG_UAV = 12,
			D3D10_SHADER_DEBUG_REG_FORCE_DWORD = 2147483647,
		}
		public enum D3D10_SHADER_DEBUG_SCOPETYPE : int32
		{
			GLOBAL = 0,
			BLOCK = 1,
			FORLOOP = 2,
			STRUCT = 3,
			FUNC_PARAMS = 4,
			STATEBLOCK = 5,
			NAMESPACE = 6,
			ANNOTATION = 7,
			FORCE_DWORD = 2147483647,
		}
		public enum D3D10_SHADER_DEBUG_VARTYPE : int32
		{
			VARIABLE = 0,
			FUNCTION = 1,
			FORCE_DWORD = 2147483647,
		}
		
		// --- Function Pointers ---
		
		public function HRESULT PFN_D3D10_CREATE_DEVICE1(ref IDXGIAdapter param0, D3D10_DRIVER_TYPE param1, HINSTANCE param2, uint32 param3, D3D10_FEATURE_LEVEL1 param4, uint32 param5, out ID3D10Device1* param6);
		public function HRESULT PFN_D3D10_CREATE_DEVICE_AND_SWAP_CHAIN1(ref IDXGIAdapter param0, D3D10_DRIVER_TYPE param1, HINSTANCE param2, uint32 param3, D3D10_FEATURE_LEVEL1 param4, uint32 param5, out DXGI_SWAP_CHAIN_DESC param6, out IDXGISwapChain* param7, out ID3D10Device1* param8);
		
		// --- Structs ---
		
		[CRepr]
		public struct D3D10_INPUT_ELEMENT_DESC
		{
			public PSTR SemanticName;
			public uint32 SemanticIndex;
			public DXGI_FORMAT Format;
			public uint32 InputSlot;
			public uint32 AlignedByteOffset;
			public D3D10_INPUT_CLASSIFICATION InputSlotClass;
			public uint32 InstanceDataStepRate;
		}
		[CRepr]
		public struct D3D10_SO_DECLARATION_ENTRY
		{
			public PSTR SemanticName;
			public uint32 SemanticIndex;
			public uint8 StartComponent;
			public uint8 ComponentCount;
			public uint8 OutputSlot;
		}
		[CRepr]
		public struct D3D10_VIEWPORT
		{
			public int32 TopLeftX;
			public int32 TopLeftY;
			public uint32 Width;
			public uint32 Height;
			public float MinDepth;
			public float MaxDepth;
		}
		[CRepr]
		public struct D3D10_BOX
		{
			public uint32 left;
			public uint32 top;
			public uint32 front;
			public uint32 right;
			public uint32 bottom;
			public uint32 back;
		}
		[CRepr]
		public struct D3D10_DEPTH_STENCILOP_DESC
		{
			public D3D10_STENCIL_OP StencilFailOp;
			public D3D10_STENCIL_OP StencilDepthFailOp;
			public D3D10_STENCIL_OP StencilPassOp;
			public D3D10_COMPARISON_FUNC StencilFunc;
		}
		[CRepr]
		public struct D3D10_DEPTH_STENCIL_DESC
		{
			public BOOL DepthEnable;
			public D3D10_DEPTH_WRITE_MASK DepthWriteMask;
			public D3D10_COMPARISON_FUNC DepthFunc;
			public BOOL StencilEnable;
			public uint8 StencilReadMask;
			public uint8 StencilWriteMask;
			public D3D10_DEPTH_STENCILOP_DESC FrontFace;
			public D3D10_DEPTH_STENCILOP_DESC BackFace;
		}
		[CRepr]
		public struct D3D10_BLEND_DESC
		{
			public BOOL AlphaToCoverageEnable;
			public BOOL[8] BlendEnable;
			public D3D10_BLEND SrcBlend;
			public D3D10_BLEND DestBlend;
			public D3D10_BLEND_OP BlendOp;
			public D3D10_BLEND SrcBlendAlpha;
			public D3D10_BLEND DestBlendAlpha;
			public D3D10_BLEND_OP BlendOpAlpha;
			public uint8[8] RenderTargetWriteMask;
		}
		[CRepr]
		public struct D3D10_RASTERIZER_DESC
		{
			public D3D10_FILL_MODE FillMode;
			public D3D10_CULL_MODE CullMode;
			public BOOL FrontCounterClockwise;
			public int32 DepthBias;
			public float DepthBiasClamp;
			public float SlopeScaledDepthBias;
			public BOOL DepthClipEnable;
			public BOOL ScissorEnable;
			public BOOL MultisampleEnable;
			public BOOL AntialiasedLineEnable;
		}
		[CRepr]
		public struct D3D10_SUBRESOURCE_DATA
		{
			public void* pSysMem;
			public uint32 SysMemPitch;
			public uint32 SysMemSlicePitch;
		}
		[CRepr]
		public struct D3D10_BUFFER_DESC
		{
			public uint32 ByteWidth;
			public D3D10_USAGE Usage;
			public uint32 BindFlags;
			public uint32 CPUAccessFlags;
			public uint32 MiscFlags;
		}
		[CRepr]
		public struct D3D10_TEXTURE1D_DESC
		{
			public uint32 Width;
			public uint32 MipLevels;
			public uint32 ArraySize;
			public DXGI_FORMAT Format;
			public D3D10_USAGE Usage;
			public uint32 BindFlags;
			public uint32 CPUAccessFlags;
			public uint32 MiscFlags;
		}
		[CRepr]
		public struct D3D10_TEXTURE2D_DESC
		{
			public uint32 Width;
			public uint32 Height;
			public uint32 MipLevels;
			public uint32 ArraySize;
			public DXGI_FORMAT Format;
			public DXGI_SAMPLE_DESC SampleDesc;
			public D3D10_USAGE Usage;
			public uint32 BindFlags;
			public uint32 CPUAccessFlags;
			public uint32 MiscFlags;
		}
		[CRepr]
		public struct D3D10_MAPPED_TEXTURE2D
		{
			public void* pData;
			public uint32 RowPitch;
		}
		[CRepr]
		public struct D3D10_TEXTURE3D_DESC
		{
			public uint32 Width;
			public uint32 Height;
			public uint32 Depth;
			public uint32 MipLevels;
			public DXGI_FORMAT Format;
			public D3D10_USAGE Usage;
			public uint32 BindFlags;
			public uint32 CPUAccessFlags;
			public uint32 MiscFlags;
		}
		[CRepr]
		public struct D3D10_MAPPED_TEXTURE3D
		{
			public void* pData;
			public uint32 RowPitch;
			public uint32 DepthPitch;
		}
		[CRepr]
		public struct D3D10_BUFFER_SRV
		{
			public _Anonymous1_e__Union Anonymous1;
			public _Anonymous2_e__Union Anonymous2;
			
			[CRepr, Union]
			public struct _Anonymous1_e__Union
			{
				public uint32 FirstElement;
				public uint32 ElementOffset;
			}
			[CRepr, Union]
			public struct _Anonymous2_e__Union
			{
				public uint32 NumElements;
				public uint32 ElementWidth;
			}
		}
		[CRepr]
		public struct D3D10_TEX1D_SRV
		{
			public uint32 MostDetailedMip;
			public uint32 MipLevels;
		}
		[CRepr]
		public struct D3D10_TEX1D_ARRAY_SRV
		{
			public uint32 MostDetailedMip;
			public uint32 MipLevels;
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
		}
		[CRepr]
		public struct D3D10_TEX2D_SRV
		{
			public uint32 MostDetailedMip;
			public uint32 MipLevels;
		}
		[CRepr]
		public struct D3D10_TEX2D_ARRAY_SRV
		{
			public uint32 MostDetailedMip;
			public uint32 MipLevels;
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
		}
		[CRepr]
		public struct D3D10_TEX3D_SRV
		{
			public uint32 MostDetailedMip;
			public uint32 MipLevels;
		}
		[CRepr]
		public struct D3D10_TEXCUBE_SRV
		{
			public uint32 MostDetailedMip;
			public uint32 MipLevels;
		}
		[CRepr]
		public struct D3D10_TEX2DMS_SRV
		{
			public uint32 UnusedField_NothingToDefine;
		}
		[CRepr]
		public struct D3D10_TEX2DMS_ARRAY_SRV
		{
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
		}
		[CRepr]
		public struct D3D10_SHADER_RESOURCE_VIEW_DESC
		{
			public DXGI_FORMAT Format;
			public D3D_SRV_DIMENSION ViewDimension;
			public _Anonymous_e__Union Anonymous;
			
			public D3D10_BUFFER_SRV Buffer { get => Anonymous.Buffer; set mut => Anonymous.Buffer = value; }
			public D3D10_TEX1D_SRV Texture1D { get => Anonymous.Texture1D; set mut => Anonymous.Texture1D = value; }
			public D3D10_TEX1D_ARRAY_SRV Texture1DArray { get => Anonymous.Texture1DArray; set mut => Anonymous.Texture1DArray = value; }
			public D3D10_TEX2D_SRV Texture2D { get => Anonymous.Texture2D; set mut => Anonymous.Texture2D = value; }
			public D3D10_TEX2D_ARRAY_SRV Texture2DArray { get => Anonymous.Texture2DArray; set mut => Anonymous.Texture2DArray = value; }
			public D3D10_TEX2DMS_SRV Texture2DMS { get => Anonymous.Texture2DMS; set mut => Anonymous.Texture2DMS = value; }
			public D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray { get => Anonymous.Texture2DMSArray; set mut => Anonymous.Texture2DMSArray = value; }
			public D3D10_TEX3D_SRV Texture3D { get => Anonymous.Texture3D; set mut => Anonymous.Texture3D = value; }
			public D3D10_TEXCUBE_SRV TextureCube { get => Anonymous.TextureCube; set mut => Anonymous.TextureCube = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public D3D10_BUFFER_SRV Buffer;
				public D3D10_TEX1D_SRV Texture1D;
				public D3D10_TEX1D_ARRAY_SRV Texture1DArray;
				public D3D10_TEX2D_SRV Texture2D;
				public D3D10_TEX2D_ARRAY_SRV Texture2DArray;
				public D3D10_TEX2DMS_SRV Texture2DMS;
				public D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
				public D3D10_TEX3D_SRV Texture3D;
				public D3D10_TEXCUBE_SRV TextureCube;
			}
		}
		[CRepr]
		public struct D3D10_BUFFER_RTV
		{
			public _Anonymous1_e__Union Anonymous1;
			public _Anonymous2_e__Union Anonymous2;
			
			[CRepr, Union]
			public struct _Anonymous2_e__Union
			{
				public uint32 NumElements;
				public uint32 ElementWidth;
			}
			[CRepr, Union]
			public struct _Anonymous1_e__Union
			{
				public uint32 FirstElement;
				public uint32 ElementOffset;
			}
		}
		[CRepr]
		public struct D3D10_TEX1D_RTV
		{
			public uint32 MipSlice;
		}
		[CRepr]
		public struct D3D10_TEX1D_ARRAY_RTV
		{
			public uint32 MipSlice;
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
		}
		[CRepr]
		public struct D3D10_TEX2D_RTV
		{
			public uint32 MipSlice;
		}
		[CRepr]
		public struct D3D10_TEX2DMS_RTV
		{
			public uint32 UnusedField_NothingToDefine;
		}
		[CRepr]
		public struct D3D10_TEX2D_ARRAY_RTV
		{
			public uint32 MipSlice;
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
		}
		[CRepr]
		public struct D3D10_TEX2DMS_ARRAY_RTV
		{
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
		}
		[CRepr]
		public struct D3D10_TEX3D_RTV
		{
			public uint32 MipSlice;
			public uint32 FirstWSlice;
			public uint32 WSize;
		}
		[CRepr]
		public struct D3D10_RENDER_TARGET_VIEW_DESC
		{
			public DXGI_FORMAT Format;
			public D3D10_RTV_DIMENSION ViewDimension;
			public _Anonymous_e__Union Anonymous;
			
			public D3D10_BUFFER_RTV Buffer { get => Anonymous.Buffer; set mut => Anonymous.Buffer = value; }
			public D3D10_TEX1D_RTV Texture1D { get => Anonymous.Texture1D; set mut => Anonymous.Texture1D = value; }
			public D3D10_TEX1D_ARRAY_RTV Texture1DArray { get => Anonymous.Texture1DArray; set mut => Anonymous.Texture1DArray = value; }
			public D3D10_TEX2D_RTV Texture2D { get => Anonymous.Texture2D; set mut => Anonymous.Texture2D = value; }
			public D3D10_TEX2D_ARRAY_RTV Texture2DArray { get => Anonymous.Texture2DArray; set mut => Anonymous.Texture2DArray = value; }
			public D3D10_TEX2DMS_RTV Texture2DMS { get => Anonymous.Texture2DMS; set mut => Anonymous.Texture2DMS = value; }
			public D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray { get => Anonymous.Texture2DMSArray; set mut => Anonymous.Texture2DMSArray = value; }
			public D3D10_TEX3D_RTV Texture3D { get => Anonymous.Texture3D; set mut => Anonymous.Texture3D = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public D3D10_BUFFER_RTV Buffer;
				public D3D10_TEX1D_RTV Texture1D;
				public D3D10_TEX1D_ARRAY_RTV Texture1DArray;
				public D3D10_TEX2D_RTV Texture2D;
				public D3D10_TEX2D_ARRAY_RTV Texture2DArray;
				public D3D10_TEX2DMS_RTV Texture2DMS;
				public D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray;
				public D3D10_TEX3D_RTV Texture3D;
			}
		}
		[CRepr]
		public struct D3D10_TEX1D_DSV
		{
			public uint32 MipSlice;
		}
		[CRepr]
		public struct D3D10_TEX1D_ARRAY_DSV
		{
			public uint32 MipSlice;
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
		}
		[CRepr]
		public struct D3D10_TEX2D_DSV
		{
			public uint32 MipSlice;
		}
		[CRepr]
		public struct D3D10_TEX2D_ARRAY_DSV
		{
			public uint32 MipSlice;
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
		}
		[CRepr]
		public struct D3D10_TEX2DMS_DSV
		{
			public uint32 UnusedField_NothingToDefine;
		}
		[CRepr]
		public struct D3D10_TEX2DMS_ARRAY_DSV
		{
			public uint32 FirstArraySlice;
			public uint32 ArraySize;
		}
		[CRepr]
		public struct D3D10_DEPTH_STENCIL_VIEW_DESC
		{
			public DXGI_FORMAT Format;
			public D3D10_DSV_DIMENSION ViewDimension;
			public _Anonymous_e__Union Anonymous;
			
			public D3D10_TEX1D_DSV Texture1D { get => Anonymous.Texture1D; set mut => Anonymous.Texture1D = value; }
			public D3D10_TEX1D_ARRAY_DSV Texture1DArray { get => Anonymous.Texture1DArray; set mut => Anonymous.Texture1DArray = value; }
			public D3D10_TEX2D_DSV Texture2D { get => Anonymous.Texture2D; set mut => Anonymous.Texture2D = value; }
			public D3D10_TEX2D_ARRAY_DSV Texture2DArray { get => Anonymous.Texture2DArray; set mut => Anonymous.Texture2DArray = value; }
			public D3D10_TEX2DMS_DSV Texture2DMS { get => Anonymous.Texture2DMS; set mut => Anonymous.Texture2DMS = value; }
			public D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray { get => Anonymous.Texture2DMSArray; set mut => Anonymous.Texture2DMSArray = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public D3D10_TEX1D_DSV Texture1D;
				public D3D10_TEX1D_ARRAY_DSV Texture1DArray;
				public D3D10_TEX2D_DSV Texture2D;
				public D3D10_TEX2D_ARRAY_DSV Texture2DArray;
				public D3D10_TEX2DMS_DSV Texture2DMS;
				public D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray;
			}
		}
		[CRepr]
		public struct D3D10_SAMPLER_DESC
		{
			public D3D10_FILTER Filter;
			public D3D10_TEXTURE_ADDRESS_MODE AddressU;
			public D3D10_TEXTURE_ADDRESS_MODE AddressV;
			public D3D10_TEXTURE_ADDRESS_MODE AddressW;
			public float MipLODBias;
			public uint32 MaxAnisotropy;
			public D3D10_COMPARISON_FUNC ComparisonFunc;
			public float[4] BorderColor;
			public float MinLOD;
			public float MaxLOD;
		}
		[CRepr]
		public struct D3D10_QUERY_DESC
		{
			public D3D10_QUERY Query;
			public uint32 MiscFlags;
		}
		[CRepr]
		public struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT
		{
			public uint64 Frequency;
			public BOOL Disjoint;
		}
		[CRepr]
		public struct D3D10_QUERY_DATA_PIPELINE_STATISTICS
		{
			public uint64 IAVertices;
			public uint64 IAPrimitives;
			public uint64 VSInvocations;
			public uint64 GSInvocations;
			public uint64 GSPrimitives;
			public uint64 CInvocations;
			public uint64 CPrimitives;
			public uint64 PSInvocations;
		}
		[CRepr]
		public struct D3D10_QUERY_DATA_SO_STATISTICS
		{
			public uint64 NumPrimitivesWritten;
			public uint64 PrimitivesStorageNeeded;
		}
		[CRepr]
		public struct D3D10_COUNTER_DESC
		{
			public D3D10_COUNTER Counter;
			public uint32 MiscFlags;
		}
		[CRepr]
		public struct D3D10_COUNTER_INFO
		{
			public D3D10_COUNTER LastDeviceDependentCounter;
			public uint32 NumSimultaneousCounters;
			public uint8 NumDetectableParallelUnits;
		}
		[CRepr]
		public struct D3D10_MESSAGE
		{
			public D3D10_MESSAGE_CATEGORY Category;
			public D3D10_MESSAGE_SEVERITY Severity;
			public D3D10_MESSAGE_ID ID;
			public uint8* pDescription;
			public uint DescriptionByteLength;
		}
		[CRepr]
		public struct D3D10_INFO_QUEUE_FILTER_DESC
		{
			public uint32 NumCategories;
			public D3D10_MESSAGE_CATEGORY* pCategoryList;
			public uint32 NumSeverities;
			public D3D10_MESSAGE_SEVERITY* pSeverityList;
			public uint32 NumIDs;
			public D3D10_MESSAGE_ID* pIDList;
		}
		[CRepr]
		public struct D3D10_INFO_QUEUE_FILTER
		{
			public D3D10_INFO_QUEUE_FILTER_DESC AllowList;
			public D3D10_INFO_QUEUE_FILTER_DESC DenyList;
		}
		[CRepr]
		public struct D3D10_SHADER_DESC
		{
			public uint32 Version;
			public PSTR Creator;
			public uint32 Flags;
			public uint32 ConstantBuffers;
			public uint32 BoundResources;
			public uint32 InputParameters;
			public uint32 OutputParameters;
			public uint32 InstructionCount;
			public uint32 TempRegisterCount;
			public uint32 TempArrayCount;
			public uint32 DefCount;
			public uint32 DclCount;
			public uint32 TextureNormalInstructions;
			public uint32 TextureLoadInstructions;
			public uint32 TextureCompInstructions;
			public uint32 TextureBiasInstructions;
			public uint32 TextureGradientInstructions;
			public uint32 FloatInstructionCount;
			public uint32 IntInstructionCount;
			public uint32 UintInstructionCount;
			public uint32 StaticFlowControlCount;
			public uint32 DynamicFlowControlCount;
			public uint32 MacroInstructionCount;
			public uint32 ArrayInstructionCount;
			public uint32 CutInstructionCount;
			public uint32 EmitInstructionCount;
			public D3D_PRIMITIVE_TOPOLOGY GSOutputTopology;
			public uint32 GSMaxOutputVertexCount;
		}
		[CRepr]
		public struct D3D10_SHADER_BUFFER_DESC
		{
			public PSTR Name;
			public D3D_CBUFFER_TYPE Type;
			public uint32 Variables;
			public uint32 Size;
			public uint32 uFlags;
		}
		[CRepr]
		public struct D3D10_SHADER_VARIABLE_DESC
		{
			public PSTR Name;
			public uint32 StartOffset;
			public uint32 Size;
			public uint32 uFlags;
			public void* DefaultValue;
		}
		[CRepr]
		public struct D3D10_SHADER_TYPE_DESC
		{
			public D3D_SHADER_VARIABLE_CLASS Class;
			public D3D_SHADER_VARIABLE_TYPE Type;
			public uint32 Rows;
			public uint32 Columns;
			public uint32 Elements;
			public uint32 Members;
			public uint32 Offset;
		}
		[CRepr]
		public struct D3D10_SHADER_INPUT_BIND_DESC
		{
			public PSTR Name;
			public D3D_SHADER_INPUT_TYPE Type;
			public uint32 BindPoint;
			public uint32 BindCount;
			public uint32 uFlags;
			public D3D_RESOURCE_RETURN_TYPE ReturnType;
			public D3D_SRV_DIMENSION Dimension;
			public uint32 NumSamples;
		}
		[CRepr]
		public struct D3D10_SIGNATURE_PARAMETER_DESC
		{
			public PSTR SemanticName;
			public uint32 SemanticIndex;
			public uint32 Register;
			public D3D_NAME SystemValueType;
			public D3D_REGISTER_COMPONENT_TYPE ComponentType;
			public uint8 Mask;
			public uint8 ReadWriteMask;
		}
		[CRepr]
		public struct D3D10_STATE_BLOCK_MASK
		{
			public uint8 VS;
			public uint8[2] VSSamplers;
			public uint8[16] VSShaderResources;
			public uint8[2] VSConstantBuffers;
			public uint8 GS;
			public uint8[2] GSSamplers;
			public uint8[16] GSShaderResources;
			public uint8[2] GSConstantBuffers;
			public uint8 PS;
			public uint8[2] PSSamplers;
			public uint8[16] PSShaderResources;
			public uint8[2] PSConstantBuffers;
			public uint8[2] IAVertexBuffers;
			public uint8 IAIndexBuffer;
			public uint8 IAInputLayout;
			public uint8 IAPrimitiveTopology;
			public uint8 OMRenderTargets;
			public uint8 OMDepthStencilState;
			public uint8 OMBlendState;
			public uint8 RSViewports;
			public uint8 RSScissorRects;
			public uint8 RSRasterizerState;
			public uint8 SOBuffers;
			public uint8 Predication;
		}
		[CRepr]
		public struct D3D10_EFFECT_TYPE_DESC
		{
			public PSTR TypeName;
			public D3D_SHADER_VARIABLE_CLASS Class;
			public D3D_SHADER_VARIABLE_TYPE Type;
			public uint32 Elements;
			public uint32 Members;
			public uint32 Rows;
			public uint32 Columns;
			public uint32 PackedSize;
			public uint32 UnpackedSize;
			public uint32 Stride;
		}
		[CRepr]
		public struct D3D10_EFFECT_VARIABLE_DESC
		{
			public PSTR Name;
			public PSTR Semantic;
			public uint32 Flags;
			public uint32 Annotations;
			public uint32 BufferOffset;
			public uint32 ExplicitBindPoint;
		}
		[CRepr]
		public struct D3D10_EFFECT_SHADER_DESC
		{
			public uint8* pInputSignature;
			public BOOL IsInline;
			public uint8* pBytecode;
			public uint32 BytecodeLength;
			public PSTR SODecl;
			public uint32 NumInputSignatureEntries;
			public uint32 NumOutputSignatureEntries;
		}
		[CRepr]
		public struct D3D10_PASS_DESC
		{
			public PSTR Name;
			public uint32 Annotations;
			public uint8* pIAInputSignature;
			public uint IAInputSignatureSize;
			public uint32 StencilRef;
			public uint32 SampleMask;
			public float[4] BlendFactor;
		}
		[CRepr]
		public struct D3D10_PASS_SHADER_DESC
		{
			public ID3D10EffectShaderVariable* pShaderVariable;
			public uint32 ShaderIndex;
		}
		[CRepr]
		public struct D3D10_TECHNIQUE_DESC
		{
			public PSTR Name;
			public uint32 Passes;
			public uint32 Annotations;
		}
		[CRepr]
		public struct D3D10_EFFECT_DESC
		{
			public BOOL IsChildEffect;
			public uint32 ConstantBuffers;
			public uint32 SharedConstantBuffers;
			public uint32 GlobalVariables;
			public uint32 SharedGlobalVariables;
			public uint32 Techniques;
		}
		[CRepr]
		public struct D3D10_RENDER_TARGET_BLEND_DESC1
		{
			public BOOL BlendEnable;
			public D3D10_BLEND SrcBlend;
			public D3D10_BLEND DestBlend;
			public D3D10_BLEND_OP BlendOp;
			public D3D10_BLEND SrcBlendAlpha;
			public D3D10_BLEND DestBlendAlpha;
			public D3D10_BLEND_OP BlendOpAlpha;
			public uint8 RenderTargetWriteMask;
		}
		[CRepr]
		public struct D3D10_BLEND_DESC1
		{
			public BOOL AlphaToCoverageEnable;
			public BOOL IndependentBlendEnable;
			public D3D10_RENDER_TARGET_BLEND_DESC1[8] RenderTarget;
		}
		[CRepr]
		public struct D3D10_TEXCUBE_ARRAY_SRV1
		{
			public uint32 MostDetailedMip;
			public uint32 MipLevels;
			public uint32 First2DArrayFace;
			public uint32 NumCubes;
		}
		[CRepr]
		public struct D3D10_SHADER_RESOURCE_VIEW_DESC1
		{
			public DXGI_FORMAT Format;
			public D3D_SRV_DIMENSION ViewDimension;
			public _Anonymous_e__Union Anonymous;
			
			public D3D10_BUFFER_SRV Buffer { get => Anonymous.Buffer; set mut => Anonymous.Buffer = value; }
			public D3D10_TEX1D_SRV Texture1D { get => Anonymous.Texture1D; set mut => Anonymous.Texture1D = value; }
			public D3D10_TEX1D_ARRAY_SRV Texture1DArray { get => Anonymous.Texture1DArray; set mut => Anonymous.Texture1DArray = value; }
			public D3D10_TEX2D_SRV Texture2D { get => Anonymous.Texture2D; set mut => Anonymous.Texture2D = value; }
			public D3D10_TEX2D_ARRAY_SRV Texture2DArray { get => Anonymous.Texture2DArray; set mut => Anonymous.Texture2DArray = value; }
			public D3D10_TEX2DMS_SRV Texture2DMS { get => Anonymous.Texture2DMS; set mut => Anonymous.Texture2DMS = value; }
			public D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray { get => Anonymous.Texture2DMSArray; set mut => Anonymous.Texture2DMSArray = value; }
			public D3D10_TEX3D_SRV Texture3D { get => Anonymous.Texture3D; set mut => Anonymous.Texture3D = value; }
			public D3D10_TEXCUBE_SRV TextureCube { get => Anonymous.TextureCube; set mut => Anonymous.TextureCube = value; }
			public D3D10_TEXCUBE_ARRAY_SRV1 TextureCubeArray { get => Anonymous.TextureCubeArray; set mut => Anonymous.TextureCubeArray = value; }
			
			[CRepr, Union]
			public struct _Anonymous_e__Union
			{
				public D3D10_BUFFER_SRV Buffer;
				public D3D10_TEX1D_SRV Texture1D;
				public D3D10_TEX1D_ARRAY_SRV Texture1DArray;
				public D3D10_TEX2D_SRV Texture2D;
				public D3D10_TEX2D_ARRAY_SRV Texture2DArray;
				public D3D10_TEX2DMS_SRV Texture2DMS;
				public D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
				public D3D10_TEX3D_SRV Texture3D;
				public D3D10_TEXCUBE_SRV TextureCube;
				public D3D10_TEXCUBE_ARRAY_SRV1 TextureCubeArray;
			}
		}
		[CRepr]
		public struct D3D10_SHADER_DEBUG_TOKEN_INFO
		{
			public uint32 File;
			public uint32 Line;
			public uint32 Column;
			public uint32 TokenLength;
			public uint32 TokenId;
		}
		[CRepr]
		public struct D3D10_SHADER_DEBUG_VAR_INFO
		{
			public uint32 TokenId;
			public D3D_SHADER_VARIABLE_TYPE Type;
			public uint32 Register;
			public uint32 Component;
			public uint32 ScopeVar;
			public uint32 ScopeVarOffset;
		}
		[CRepr]
		public struct D3D10_SHADER_DEBUG_INPUT_INFO
		{
			public uint32 Var;
			public D3D10_SHADER_DEBUG_REGTYPE InitialRegisterSet;
			public uint32 InitialBank;
			public uint32 InitialRegister;
			public uint32 InitialComponent;
			public uint32 InitialValue;
		}
		[CRepr]
		public struct D3D10_SHADER_DEBUG_SCOPEVAR_INFO
		{
			public uint32 TokenId;
			public D3D10_SHADER_DEBUG_VARTYPE VarType;
			public D3D_SHADER_VARIABLE_CLASS Class;
			public uint32 Rows;
			public uint32 Columns;
			public uint32 StructMemberScope;
			public uint32 uArrayIndices;
			public uint32 ArrayElements;
			public uint32 ArrayStrides;
			public uint32 uVariables;
			public uint32 uFirstVariable;
		}
		[CRepr]
		public struct D3D10_SHADER_DEBUG_SCOPE_INFO
		{
			public D3D10_SHADER_DEBUG_SCOPETYPE ScopeType;
			public uint32 Name;
			public uint32 uNameLen;
			public uint32 uVariables;
			public uint32 VariableData;
		}
		[CRepr]
		public struct D3D10_SHADER_DEBUG_OUTPUTVAR
		{
			public uint32 Var;
			public uint32 uValueMin;
			public uint32 uValueMax;
			public int32 iValueMin;
			public int32 iValueMax;
			public float fValueMin;
			public float fValueMax;
			public BOOL bNaNPossible;
			public BOOL bInfPossible;
		}
		[CRepr]
		public struct D3D10_SHADER_DEBUG_OUTPUTREG_INFO
		{
			public D3D10_SHADER_DEBUG_REGTYPE OutputRegisterSet;
			public uint32 OutputReg;
			public uint32 TempArrayReg;
			public uint32[4] OutputComponents;
			public D3D10_SHADER_DEBUG_OUTPUTVAR[4] OutputVars;
			public uint32 IndexReg;
			public uint32 IndexComp;
		}
		[CRepr]
		public struct D3D10_SHADER_DEBUG_INST_INFO
		{
			public uint32 Id;
			public uint32 Opcode;
			public uint32 uOutputs;
			public D3D10_SHADER_DEBUG_OUTPUTREG_INFO[2] pOutputs;
			public uint32 TokenId;
			public uint32 NestingLevel;
			public uint32 Scopes;
			public uint32 ScopeInfo;
			public uint32 AccessedVars;
			public uint32 AccessedVarsInfo;
		}
		[CRepr]
		public struct D3D10_SHADER_DEBUG_FILE_INFO
		{
			public uint32 FileName;
			public uint32 FileNameLen;
			public uint32 FileData;
			public uint32 FileLen;
		}
		[CRepr]
		public struct D3D10_SHADER_DEBUG_INFO
		{
			public uint32 Size;
			public uint32 Creator;
			public uint32 EntrypointName;
			public uint32 ShaderTarget;
			public uint32 CompileFlags;
			public uint32 Files;
			public uint32 FileInfo;
			public uint32 Instructions;
			public uint32 InstructionInfo;
			public uint32 Variables;
			public uint32 VariableInfo;
			public uint32 InputVariables;
			public uint32 InputVariableInfo;
			public uint32 Tokens;
			public uint32 TokenInfo;
			public uint32 Scopes;
			public uint32 ScopeInfo;
			public uint32 ScopeVariables;
			public uint32 ScopeVariableInfo;
			public uint32 UintOffset;
			public uint32 StringOffset;
		}
		
		// --- COM Interfaces ---
		
		[CRepr]
		public struct ID3D10DeviceChild : IUnknown
		{
			public const new Guid IID = .(0x9b7e4c00, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public void GetDevice(out ID3D10Device* ppDevice) mut => VT.GetDevice(ref this, out ppDevice);
			public HRESULT GetPrivateData(in Guid guid, out uint32 pDataSize, void* pData) mut => VT.GetPrivateData(ref this, guid, out pDataSize, pData);
			public HRESULT SetPrivateData(in Guid guid, uint32 DataSize, void* pData) mut => VT.SetPrivateData(ref this, guid, DataSize, pData);
			public HRESULT SetPrivateDataInterface(in Guid guid, IUnknown* pData) mut => VT.SetPrivateDataInterface(ref this, guid, pData);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10DeviceChild self, out ID3D10Device* ppDevice) GetDevice;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10DeviceChild self, in Guid guid, out uint32 pDataSize, void* pData) GetPrivateData;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10DeviceChild self, in Guid guid, uint32 DataSize, void* pData) SetPrivateData;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10DeviceChild self, in Guid guid, IUnknown* pData) SetPrivateDataInterface;
			}
		}
		[CRepr]
		public struct ID3D10DepthStencilState : ID3D10DeviceChild
		{
			public const new Guid IID = .(0x2b4b1cc8, 0xa4ad, 0x41f8, 0x83, 0x22, 0xca, 0x86, 0xfc, 0x3e, 0xc6, 0x75);
			
			public new VTable* VT { get => (.)vt; }
			
			public void GetDesc(out D3D10_DEPTH_STENCIL_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);

			[CRepr]
			public struct VTable : ID3D10DeviceChild.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10DepthStencilState self, out D3D10_DEPTH_STENCIL_DESC pDesc) GetDesc;
			}
		}
		[CRepr]
		public struct ID3D10BlendState : ID3D10DeviceChild
		{
			public const new Guid IID = .(0xedad8d19, 0x8a35, 0x4d6d, 0x85, 0x66, 0x2e, 0xa2, 0x76, 0xcd, 0xe1, 0x61);
			
			public new VTable* VT { get => (.)vt; }
			
			public void GetDesc(out D3D10_BLEND_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);

			[CRepr]
			public struct VTable : ID3D10DeviceChild.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10BlendState self, out D3D10_BLEND_DESC pDesc) GetDesc;
			}
		}
		[CRepr]
		public struct ID3D10RasterizerState : ID3D10DeviceChild
		{
			public const new Guid IID = .(0xa2a07292, 0x89af, 0x4345, 0xbe, 0x2e, 0xc5, 0x3d, 0x9f, 0xbb, 0x6e, 0x9f);
			
			public new VTable* VT { get => (.)vt; }
			
			public void GetDesc(out D3D10_RASTERIZER_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);

			[CRepr]
			public struct VTable : ID3D10DeviceChild.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10RasterizerState self, out D3D10_RASTERIZER_DESC pDesc) GetDesc;
			}
		}
		[CRepr]
		public struct ID3D10Resource : ID3D10DeviceChild
		{
			public const new Guid IID = .(0x9b7e4c01, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public void ComGetType(out D3D10_RESOURCE_DIMENSION rType) mut => VT.ComGetType(ref this, out rType);
			public void SetEvictionPriority(uint32 EvictionPriority) mut => VT.SetEvictionPriority(ref this, EvictionPriority);
			public uint32 GetEvictionPriority() mut => VT.GetEvictionPriority(ref this);

			[CRepr]
			public struct VTable : ID3D10DeviceChild.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Resource self, out D3D10_RESOURCE_DIMENSION rType) ComGetType;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Resource self, uint32 EvictionPriority) SetEvictionPriority;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D10Resource self) GetEvictionPriority;
			}
		}
		[CRepr]
		public struct ID3D10Buffer : ID3D10Resource
		{
			public const new Guid IID = .(0x9b7e4c02, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT Map(D3D10_MAP MapType, uint32 MapFlags, void** ppData) mut => VT.Map(ref this, MapType, MapFlags, ppData);
			public void Unmap() mut => VT.Unmap(ref this);
			public void GetDesc(out D3D10_BUFFER_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);

			[CRepr]
			public struct VTable : ID3D10Resource.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Buffer self, D3D10_MAP MapType, uint32 MapFlags, void** ppData) Map;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Buffer self) Unmap;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Buffer self, out D3D10_BUFFER_DESC pDesc) GetDesc;
			}
		}
		[CRepr]
		public struct ID3D10Texture1D : ID3D10Resource
		{
			public const new Guid IID = .(0x9b7e4c03, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT Map(uint32 Subresource, D3D10_MAP MapType, uint32 MapFlags, void** ppData) mut => VT.Map(ref this, Subresource, MapType, MapFlags, ppData);
			public void Unmap(uint32 Subresource) mut => VT.Unmap(ref this, Subresource);
			public void GetDesc(out D3D10_TEXTURE1D_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);

			[CRepr]
			public struct VTable : ID3D10Resource.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Texture1D self, uint32 Subresource, D3D10_MAP MapType, uint32 MapFlags, void** ppData) Map;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Texture1D self, uint32 Subresource) Unmap;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Texture1D self, out D3D10_TEXTURE1D_DESC pDesc) GetDesc;
			}
		}
		[CRepr]
		public struct ID3D10Texture2D : ID3D10Resource
		{
			public const new Guid IID = .(0x9b7e4c04, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT Map(uint32 Subresource, D3D10_MAP MapType, uint32 MapFlags, out D3D10_MAPPED_TEXTURE2D pMappedTex2D) mut => VT.Map(ref this, Subresource, MapType, MapFlags, out pMappedTex2D);
			public void Unmap(uint32 Subresource) mut => VT.Unmap(ref this, Subresource);
			public void GetDesc(out D3D10_TEXTURE2D_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);

			[CRepr]
			public struct VTable : ID3D10Resource.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Texture2D self, uint32 Subresource, D3D10_MAP MapType, uint32 MapFlags, out D3D10_MAPPED_TEXTURE2D pMappedTex2D) Map;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Texture2D self, uint32 Subresource) Unmap;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Texture2D self, out D3D10_TEXTURE2D_DESC pDesc) GetDesc;
			}
		}
		[CRepr]
		public struct ID3D10Texture3D : ID3D10Resource
		{
			public const new Guid IID = .(0x9b7e4c05, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT Map(uint32 Subresource, D3D10_MAP MapType, uint32 MapFlags, out D3D10_MAPPED_TEXTURE3D pMappedTex3D) mut => VT.Map(ref this, Subresource, MapType, MapFlags, out pMappedTex3D);
			public void Unmap(uint32 Subresource) mut => VT.Unmap(ref this, Subresource);
			public void GetDesc(out D3D10_TEXTURE3D_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);

			[CRepr]
			public struct VTable : ID3D10Resource.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Texture3D self, uint32 Subresource, D3D10_MAP MapType, uint32 MapFlags, out D3D10_MAPPED_TEXTURE3D pMappedTex3D) Map;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Texture3D self, uint32 Subresource) Unmap;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Texture3D self, out D3D10_TEXTURE3D_DESC pDesc) GetDesc;
			}
		}
		[CRepr]
		public struct ID3D10View : ID3D10DeviceChild
		{
			public const new Guid IID = .(0xc902b03f, 0x60a7, 0x49ba, 0x99, 0x36, 0x2a, 0x3a, 0xb3, 0x7a, 0x7e, 0x33);
			
			public new VTable* VT { get => (.)vt; }
			
			public void GetResource(out ID3D10Resource* ppResource) mut => VT.GetResource(ref this, out ppResource);

			[CRepr]
			public struct VTable : ID3D10DeviceChild.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10View self, out ID3D10Resource* ppResource) GetResource;
			}
		}
		[CRepr]
		public struct ID3D10ShaderResourceView : ID3D10View
		{
			public const new Guid IID = .(0x9b7e4c07, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public void GetDesc(out D3D10_SHADER_RESOURCE_VIEW_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);

			[CRepr]
			public struct VTable : ID3D10View.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10ShaderResourceView self, out D3D10_SHADER_RESOURCE_VIEW_DESC pDesc) GetDesc;
			}
		}
		[CRepr]
		public struct ID3D10RenderTargetView : ID3D10View
		{
			public const new Guid IID = .(0x9b7e4c08, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public void GetDesc(out D3D10_RENDER_TARGET_VIEW_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);

			[CRepr]
			public struct VTable : ID3D10View.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10RenderTargetView self, out D3D10_RENDER_TARGET_VIEW_DESC pDesc) GetDesc;
			}
		}
		[CRepr]
		public struct ID3D10DepthStencilView : ID3D10View
		{
			public const new Guid IID = .(0x9b7e4c09, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public void GetDesc(out D3D10_DEPTH_STENCIL_VIEW_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);

			[CRepr]
			public struct VTable : ID3D10View.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10DepthStencilView self, out D3D10_DEPTH_STENCIL_VIEW_DESC pDesc) GetDesc;
			}
		}
		[CRepr]
		public struct ID3D10VertexShader : ID3D10DeviceChild
		{
			public const new Guid IID = .(0x9b7e4c0a, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			[CRepr]
			public struct VTable : ID3D10DeviceChild.VTable {}
		}
		[CRepr]
		public struct ID3D10GeometryShader : ID3D10DeviceChild
		{
			public const new Guid IID = .(0x6316be88, 0x54cd, 0x4040, 0xab, 0x44, 0x20, 0x46, 0x1b, 0xc8, 0x1f, 0x68);
			
			public new VTable* VT { get => (.)vt; }
			
			[CRepr]
			public struct VTable : ID3D10DeviceChild.VTable {}
		}
		[CRepr]
		public struct ID3D10PixelShader : ID3D10DeviceChild
		{
			public const new Guid IID = .(0x4968b601, 0x9d00, 0x4cde, 0x83, 0x46, 0x8e, 0x7f, 0x67, 0x58, 0x19, 0xb6);
			
			public new VTable* VT { get => (.)vt; }
			
			[CRepr]
			public struct VTable : ID3D10DeviceChild.VTable {}
		}
		[CRepr]
		public struct ID3D10InputLayout : ID3D10DeviceChild
		{
			public const new Guid IID = .(0x9b7e4c0b, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			[CRepr]
			public struct VTable : ID3D10DeviceChild.VTable {}
		}
		[CRepr]
		public struct ID3D10SamplerState : ID3D10DeviceChild
		{
			public const new Guid IID = .(0x9b7e4c0c, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public void GetDesc(out D3D10_SAMPLER_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);

			[CRepr]
			public struct VTable : ID3D10DeviceChild.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10SamplerState self, out D3D10_SAMPLER_DESC pDesc) GetDesc;
			}
		}
		[CRepr]
		public struct ID3D10Asynchronous : ID3D10DeviceChild
		{
			public const new Guid IID = .(0x9b7e4c0d, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public void Begin() mut => VT.Begin(ref this);
			public void End() mut => VT.End(ref this);
			public HRESULT GetData(void* pData, uint32 DataSize, uint32 GetDataFlags) mut => VT.GetData(ref this, pData, DataSize, GetDataFlags);
			public uint32 GetDataSize() mut => VT.GetDataSize(ref this);

			[CRepr]
			public struct VTable : ID3D10DeviceChild.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Asynchronous self) Begin;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Asynchronous self) End;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Asynchronous self, void* pData, uint32 DataSize, uint32 GetDataFlags) GetData;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D10Asynchronous self) GetDataSize;
			}
		}
		[CRepr]
		public struct ID3D10Query : ID3D10Asynchronous
		{
			public const new Guid IID = .(0x9b7e4c0e, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public void GetDesc(out D3D10_QUERY_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);

			[CRepr]
			public struct VTable : ID3D10Asynchronous.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Query self, out D3D10_QUERY_DESC pDesc) GetDesc;
			}
		}
		[CRepr]
		public struct ID3D10Predicate : ID3D10Query
		{
			public const new Guid IID = .(0x9b7e4c10, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			[CRepr]
			public struct VTable : ID3D10Query.VTable {}
		}
		[CRepr]
		public struct ID3D10Counter : ID3D10Asynchronous
		{
			public const new Guid IID = .(0x9b7e4c11, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public void GetDesc(out D3D10_COUNTER_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);

			[CRepr]
			public struct VTable : ID3D10Asynchronous.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Counter self, out D3D10_COUNTER_DESC pDesc) GetDesc;
			}
		}
		[CRepr]
		public struct ID3D10Device : IUnknown
		{
			public const new Guid IID = .(0x9b7e4c0f, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public void VSSetConstantBuffers(uint32 StartSlot, uint32 NumBuffers, ID3D10Buffer** ppConstantBuffers) mut => VT.VSSetConstantBuffers(ref this, StartSlot, NumBuffers, ppConstantBuffers);
			public void PSSetShaderResources(uint32 StartSlot, uint32 NumViews, ID3D10ShaderResourceView** ppShaderResourceViews) mut => VT.PSSetShaderResources(ref this, StartSlot, NumViews, ppShaderResourceViews);
			public void PSSetShader(ID3D10PixelShader* pPixelShader) mut => VT.PSSetShader(ref this, pPixelShader);
			public void PSSetSamplers(uint32 StartSlot, uint32 NumSamplers, ID3D10SamplerState** ppSamplers) mut => VT.PSSetSamplers(ref this, StartSlot, NumSamplers, ppSamplers);
			public void VSSetShader(ID3D10VertexShader* pVertexShader) mut => VT.VSSetShader(ref this, pVertexShader);
			public void DrawIndexed(uint32 IndexCount, uint32 StartIndexLocation, int32 BaseVertexLocation) mut => VT.DrawIndexed(ref this, IndexCount, StartIndexLocation, BaseVertexLocation);
			public void Draw(uint32 VertexCount, uint32 StartVertexLocation) mut => VT.Draw(ref this, VertexCount, StartVertexLocation);
			public void PSSetConstantBuffers(uint32 StartSlot, uint32 NumBuffers, ID3D10Buffer** ppConstantBuffers) mut => VT.PSSetConstantBuffers(ref this, StartSlot, NumBuffers, ppConstantBuffers);
			public void IASetInputLayout(ID3D10InputLayout* pInputLayout) mut => VT.IASetInputLayout(ref this, pInputLayout);
			public void IASetVertexBuffers(uint32 StartSlot, uint32 NumBuffers, ID3D10Buffer** ppVertexBuffers, uint32* pStrides, uint32* pOffsets) mut => VT.IASetVertexBuffers(ref this, StartSlot, NumBuffers, ppVertexBuffers, pStrides, pOffsets);
			public void IASetIndexBuffer(ID3D10Buffer* pIndexBuffer, DXGI_FORMAT Format, uint32 Offset) mut => VT.IASetIndexBuffer(ref this, pIndexBuffer, Format, Offset);
			public void DrawIndexedInstanced(uint32 IndexCountPerInstance, uint32 InstanceCount, uint32 StartIndexLocation, int32 BaseVertexLocation, uint32 StartInstanceLocation) mut => VT.DrawIndexedInstanced(ref this, IndexCountPerInstance, InstanceCount, StartIndexLocation, BaseVertexLocation, StartInstanceLocation);
			public void DrawInstanced(uint32 VertexCountPerInstance, uint32 InstanceCount, uint32 StartVertexLocation, uint32 StartInstanceLocation) mut => VT.DrawInstanced(ref this, VertexCountPerInstance, InstanceCount, StartVertexLocation, StartInstanceLocation);
			public void GSSetConstantBuffers(uint32 StartSlot, uint32 NumBuffers, ID3D10Buffer** ppConstantBuffers) mut => VT.GSSetConstantBuffers(ref this, StartSlot, NumBuffers, ppConstantBuffers);
			public void GSSetShader(ID3D10GeometryShader* pShader) mut => VT.GSSetShader(ref this, pShader);
			public void IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY Topology) mut => VT.IASetPrimitiveTopology(ref this, Topology);
			public void VSSetShaderResources(uint32 StartSlot, uint32 NumViews, ID3D10ShaderResourceView** ppShaderResourceViews) mut => VT.VSSetShaderResources(ref this, StartSlot, NumViews, ppShaderResourceViews);
			public void VSSetSamplers(uint32 StartSlot, uint32 NumSamplers, ID3D10SamplerState** ppSamplers) mut => VT.VSSetSamplers(ref this, StartSlot, NumSamplers, ppSamplers);
			public void SetPredication(ID3D10Predicate* pPredicate, BOOL PredicateValue) mut => VT.SetPredication(ref this, pPredicate, PredicateValue);
			public void GSSetShaderResources(uint32 StartSlot, uint32 NumViews, ID3D10ShaderResourceView** ppShaderResourceViews) mut => VT.GSSetShaderResources(ref this, StartSlot, NumViews, ppShaderResourceViews);
			public void GSSetSamplers(uint32 StartSlot, uint32 NumSamplers, ID3D10SamplerState** ppSamplers) mut => VT.GSSetSamplers(ref this, StartSlot, NumSamplers, ppSamplers);
			public void OMSetRenderTargets(uint32 NumViews, ID3D10RenderTargetView** ppRenderTargetViews, ID3D10DepthStencilView* pDepthStencilView) mut => VT.OMSetRenderTargets(ref this, NumViews, ppRenderTargetViews, pDepthStencilView);
			public void OMSetBlendState(ID3D10BlendState* pBlendState, in float BlendFactor, uint32 SampleMask) mut => VT.OMSetBlendState(ref this, pBlendState, BlendFactor, SampleMask);
			public void OMSetDepthStencilState(ID3D10DepthStencilState* pDepthStencilState, uint32 StencilRef) mut => VT.OMSetDepthStencilState(ref this, pDepthStencilState, StencilRef);
			public void SOSetTargets(uint32 NumBuffers, ID3D10Buffer** ppSOTargets, uint32* pOffsets) mut => VT.SOSetTargets(ref this, NumBuffers, ppSOTargets, pOffsets);
			public void DrawAuto() mut => VT.DrawAuto(ref this);
			public void RSSetState(ID3D10RasterizerState* pRasterizerState) mut => VT.RSSetState(ref this, pRasterizerState);
			public void RSSetViewports(uint32 NumViewports, D3D10_VIEWPORT* pViewports) mut => VT.RSSetViewports(ref this, NumViewports, pViewports);
			public void RSSetScissorRects(uint32 NumRects, RECT* pRects) mut => VT.RSSetScissorRects(ref this, NumRects, pRects);
			public void CopySubresourceRegion(ref ID3D10Resource pDstResource, uint32 DstSubresource, uint32 DstX, uint32 DstY, uint32 DstZ, ref ID3D10Resource pSrcResource, uint32 SrcSubresource, D3D10_BOX* pSrcBox) mut => VT.CopySubresourceRegion(ref this, ref pDstResource, DstSubresource, DstX, DstY, DstZ, ref pSrcResource, SrcSubresource, pSrcBox);
			public void CopyResource(ref ID3D10Resource pDstResource, ref ID3D10Resource pSrcResource) mut => VT.CopyResource(ref this, ref pDstResource, ref pSrcResource);
			public void UpdateSubresource(ref ID3D10Resource pDstResource, uint32 DstSubresource, D3D10_BOX* pDstBox, void* pSrcData, uint32 SrcRowPitch, uint32 SrcDepthPitch) mut => VT.UpdateSubresource(ref this, ref pDstResource, DstSubresource, pDstBox, pSrcData, SrcRowPitch, SrcDepthPitch);
			public void ClearRenderTargetView(ref ID3D10RenderTargetView pRenderTargetView, in float ColorRGBA) mut => VT.ClearRenderTargetView(ref this, ref pRenderTargetView, ColorRGBA);
			public void ClearDepthStencilView(ref ID3D10DepthStencilView pDepthStencilView, uint32 ClearFlags, float Depth, uint8 Stencil) mut => VT.ClearDepthStencilView(ref this, ref pDepthStencilView, ClearFlags, Depth, Stencil);
			public void GenerateMips(ref ID3D10ShaderResourceView pShaderResourceView) mut => VT.GenerateMips(ref this, ref pShaderResourceView);
			public void ResolveSubresource(ref ID3D10Resource pDstResource, uint32 DstSubresource, ref ID3D10Resource pSrcResource, uint32 SrcSubresource, DXGI_FORMAT Format) mut => VT.ResolveSubresource(ref this, ref pDstResource, DstSubresource, ref pSrcResource, SrcSubresource, Format);
			public void VSGetConstantBuffers(uint32 StartSlot, uint32 NumBuffers, ID3D10Buffer** ppConstantBuffers) mut => VT.VSGetConstantBuffers(ref this, StartSlot, NumBuffers, ppConstantBuffers);
			public void PSGetShaderResources(uint32 StartSlot, uint32 NumViews, ID3D10ShaderResourceView** ppShaderResourceViews) mut => VT.PSGetShaderResources(ref this, StartSlot, NumViews, ppShaderResourceViews);
			public void PSGetShader(out ID3D10PixelShader* ppPixelShader) mut => VT.PSGetShader(ref this, out ppPixelShader);
			public void PSGetSamplers(uint32 StartSlot, uint32 NumSamplers, ID3D10SamplerState** ppSamplers) mut => VT.PSGetSamplers(ref this, StartSlot, NumSamplers, ppSamplers);
			public void VSGetShader(out ID3D10VertexShader* ppVertexShader) mut => VT.VSGetShader(ref this, out ppVertexShader);
			public void PSGetConstantBuffers(uint32 StartSlot, uint32 NumBuffers, ID3D10Buffer** ppConstantBuffers) mut => VT.PSGetConstantBuffers(ref this, StartSlot, NumBuffers, ppConstantBuffers);
			public void IAGetInputLayout(out ID3D10InputLayout* ppInputLayout) mut => VT.IAGetInputLayout(ref this, out ppInputLayout);
			public void IAGetVertexBuffers(uint32 StartSlot, uint32 NumBuffers, ID3D10Buffer** ppVertexBuffers, uint32* pStrides, uint32* pOffsets) mut => VT.IAGetVertexBuffers(ref this, StartSlot, NumBuffers, ppVertexBuffers, pStrides, pOffsets);
			public void IAGetIndexBuffer(ID3D10Buffer** pIndexBuffer, DXGI_FORMAT* Format, uint32* Offset) mut => VT.IAGetIndexBuffer(ref this, pIndexBuffer, Format, Offset);
			public void GSGetConstantBuffers(uint32 StartSlot, uint32 NumBuffers, ID3D10Buffer** ppConstantBuffers) mut => VT.GSGetConstantBuffers(ref this, StartSlot, NumBuffers, ppConstantBuffers);
			public void GSGetShader(out ID3D10GeometryShader* ppGeometryShader) mut => VT.GSGetShader(ref this, out ppGeometryShader);
			public void IAGetPrimitiveTopology(out D3D_PRIMITIVE_TOPOLOGY pTopology) mut => VT.IAGetPrimitiveTopology(ref this, out pTopology);
			public void VSGetShaderResources(uint32 StartSlot, uint32 NumViews, ID3D10ShaderResourceView** ppShaderResourceViews) mut => VT.VSGetShaderResources(ref this, StartSlot, NumViews, ppShaderResourceViews);
			public void VSGetSamplers(uint32 StartSlot, uint32 NumSamplers, ID3D10SamplerState** ppSamplers) mut => VT.VSGetSamplers(ref this, StartSlot, NumSamplers, ppSamplers);
			public void GetPredication(ID3D10Predicate** ppPredicate, BOOL* pPredicateValue) mut => VT.GetPredication(ref this, ppPredicate, pPredicateValue);
			public void GSGetShaderResources(uint32 StartSlot, uint32 NumViews, ID3D10ShaderResourceView** ppShaderResourceViews) mut => VT.GSGetShaderResources(ref this, StartSlot, NumViews, ppShaderResourceViews);
			public void GSGetSamplers(uint32 StartSlot, uint32 NumSamplers, ID3D10SamplerState** ppSamplers) mut => VT.GSGetSamplers(ref this, StartSlot, NumSamplers, ppSamplers);
			public void OMGetRenderTargets(uint32 NumViews, ID3D10RenderTargetView** ppRenderTargetViews, ID3D10DepthStencilView** ppDepthStencilView) mut => VT.OMGetRenderTargets(ref this, NumViews, ppRenderTargetViews, ppDepthStencilView);
			public void OMGetBlendState(ID3D10BlendState** ppBlendState, float* BlendFactor, uint32* pSampleMask) mut => VT.OMGetBlendState(ref this, ppBlendState, BlendFactor, pSampleMask);
			public void OMGetDepthStencilState(ID3D10DepthStencilState** ppDepthStencilState, uint32* pStencilRef) mut => VT.OMGetDepthStencilState(ref this, ppDepthStencilState, pStencilRef);
			public void SOGetTargets(uint32 NumBuffers, ID3D10Buffer** ppSOTargets, uint32* pOffsets) mut => VT.SOGetTargets(ref this, NumBuffers, ppSOTargets, pOffsets);
			public void RSGetState(out ID3D10RasterizerState* ppRasterizerState) mut => VT.RSGetState(ref this, out ppRasterizerState);
			public void RSGetViewports(out uint32 NumViewports, D3D10_VIEWPORT* pViewports) mut => VT.RSGetViewports(ref this, out NumViewports, pViewports);
			public void RSGetScissorRects(out uint32 NumRects, RECT* pRects) mut => VT.RSGetScissorRects(ref this, out NumRects, pRects);
			public HRESULT GetDeviceRemovedReason() mut => VT.GetDeviceRemovedReason(ref this);
			public HRESULT SetExceptionMode(uint32 RaiseFlags) mut => VT.SetExceptionMode(ref this, RaiseFlags);
			public uint32 GetExceptionMode() mut => VT.GetExceptionMode(ref this);
			public HRESULT GetPrivateData(in Guid guid, out uint32 pDataSize, void* pData) mut => VT.GetPrivateData(ref this, guid, out pDataSize, pData);
			public HRESULT SetPrivateData(in Guid guid, uint32 DataSize, void* pData) mut => VT.SetPrivateData(ref this, guid, DataSize, pData);
			public HRESULT SetPrivateDataInterface(in Guid guid, IUnknown* pData) mut => VT.SetPrivateDataInterface(ref this, guid, pData);
			public void ClearState() mut => VT.ClearState(ref this);
			public void Flush() mut => VT.Flush(ref this);
			public HRESULT CreateBuffer(in D3D10_BUFFER_DESC pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Buffer** ppBuffer) mut => VT.CreateBuffer(ref this, pDesc, pInitialData, ppBuffer);
			public HRESULT CreateTexture1D(in D3D10_TEXTURE1D_DESC pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, out ID3D10Texture1D* ppTexture1D) mut => VT.CreateTexture1D(ref this, pDesc, pInitialData, out ppTexture1D);
			public HRESULT CreateTexture2D(in D3D10_TEXTURE2D_DESC pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, out ID3D10Texture2D* ppTexture2D) mut => VT.CreateTexture2D(ref this, pDesc, pInitialData, out ppTexture2D);
			public HRESULT CreateTexture3D(in D3D10_TEXTURE3D_DESC pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, out ID3D10Texture3D* ppTexture3D) mut => VT.CreateTexture3D(ref this, pDesc, pInitialData, out ppTexture3D);
			public HRESULT CreateShaderResourceView(ref ID3D10Resource pResource, D3D10_SHADER_RESOURCE_VIEW_DESC* pDesc, ID3D10ShaderResourceView** ppSRView) mut => VT.CreateShaderResourceView(ref this, ref pResource, pDesc, ppSRView);
			public HRESULT CreateRenderTargetView(ref ID3D10Resource pResource, D3D10_RENDER_TARGET_VIEW_DESC* pDesc, ID3D10RenderTargetView** ppRTView) mut => VT.CreateRenderTargetView(ref this, ref pResource, pDesc, ppRTView);
			public HRESULT CreateDepthStencilView(ref ID3D10Resource pResource, D3D10_DEPTH_STENCIL_VIEW_DESC* pDesc, ID3D10DepthStencilView** ppDepthStencilView) mut => VT.CreateDepthStencilView(ref this, ref pResource, pDesc, ppDepthStencilView);
			public HRESULT CreateInputLayout(D3D10_INPUT_ELEMENT_DESC* pInputElementDescs, uint32 NumElements, void* pShaderBytecodeWithInputSignature, uint BytecodeLength, ID3D10InputLayout** ppInputLayout) mut => VT.CreateInputLayout(ref this, pInputElementDescs, NumElements, pShaderBytecodeWithInputSignature, BytecodeLength, ppInputLayout);
			public HRESULT CreateVertexShader(void* pShaderBytecode, uint BytecodeLength, ID3D10VertexShader** ppVertexShader) mut => VT.CreateVertexShader(ref this, pShaderBytecode, BytecodeLength, ppVertexShader);
			public HRESULT CreateGeometryShader(void* pShaderBytecode, uint BytecodeLength, ID3D10GeometryShader** ppGeometryShader) mut => VT.CreateGeometryShader(ref this, pShaderBytecode, BytecodeLength, ppGeometryShader);
			public HRESULT CreateGeometryShaderWithStreamOutput(void* pShaderBytecode, uint BytecodeLength, D3D10_SO_DECLARATION_ENTRY* pSODeclaration, uint32 NumEntries, uint32 OutputStreamStride, ID3D10GeometryShader** ppGeometryShader) mut => VT.CreateGeometryShaderWithStreamOutput(ref this, pShaderBytecode, BytecodeLength, pSODeclaration, NumEntries, OutputStreamStride, ppGeometryShader);
			public HRESULT CreatePixelShader(void* pShaderBytecode, uint BytecodeLength, ID3D10PixelShader** ppPixelShader) mut => VT.CreatePixelShader(ref this, pShaderBytecode, BytecodeLength, ppPixelShader);
			public HRESULT CreateBlendState(in D3D10_BLEND_DESC pBlendStateDesc, ID3D10BlendState** ppBlendState) mut => VT.CreateBlendState(ref this, pBlendStateDesc, ppBlendState);
			public HRESULT CreateDepthStencilState(in D3D10_DEPTH_STENCIL_DESC pDepthStencilDesc, ID3D10DepthStencilState** ppDepthStencilState) mut => VT.CreateDepthStencilState(ref this, pDepthStencilDesc, ppDepthStencilState);
			public HRESULT CreateRasterizerState(in D3D10_RASTERIZER_DESC pRasterizerDesc, ID3D10RasterizerState** ppRasterizerState) mut => VT.CreateRasterizerState(ref this, pRasterizerDesc, ppRasterizerState);
			public HRESULT CreateSamplerState(in D3D10_SAMPLER_DESC pSamplerDesc, ID3D10SamplerState** ppSamplerState) mut => VT.CreateSamplerState(ref this, pSamplerDesc, ppSamplerState);
			public HRESULT CreateQuery(in D3D10_QUERY_DESC pQueryDesc, ID3D10Query** ppQuery) mut => VT.CreateQuery(ref this, pQueryDesc, ppQuery);
			public HRESULT CreatePredicate(in D3D10_QUERY_DESC pPredicateDesc, ID3D10Predicate** ppPredicate) mut => VT.CreatePredicate(ref this, pPredicateDesc, ppPredicate);
			public HRESULT CreateCounter(in D3D10_COUNTER_DESC pCounterDesc, ID3D10Counter** ppCounter) mut => VT.CreateCounter(ref this, pCounterDesc, ppCounter);
			public HRESULT CheckFormatSupport(DXGI_FORMAT Format, out uint32 pFormatSupport) mut => VT.CheckFormatSupport(ref this, Format, out pFormatSupport);
			public HRESULT CheckMultisampleQualityLevels(DXGI_FORMAT Format, uint32 SampleCount, out uint32 pNumQualityLevels) mut => VT.CheckMultisampleQualityLevels(ref this, Format, SampleCount, out pNumQualityLevels);
			public void CheckCounterInfo(out D3D10_COUNTER_INFO pCounterInfo) mut => VT.CheckCounterInfo(ref this, out pCounterInfo);
			public HRESULT CheckCounter(in D3D10_COUNTER_DESC pDesc, out D3D10_COUNTER_TYPE pType, out uint32 pActiveCounters, uint8* szName, uint32* pNameLength, uint8* szUnits, uint32* pUnitsLength, uint8* szDescription, uint32* pDescriptionLength) mut => VT.CheckCounter(ref this, pDesc, out pType, out pActiveCounters, szName, pNameLength, szUnits, pUnitsLength, szDescription, pDescriptionLength);
			public uint32 GetCreationFlags() mut => VT.GetCreationFlags(ref this);
			public HRESULT OpenSharedResource(HANDLE hResource, in Guid ReturnedInterface, void** ppResource) mut => VT.OpenSharedResource(ref this, hResource, ReturnedInterface, ppResource);
			public void SetTextFilterSize(uint32 Width, uint32 Height) mut => VT.SetTextFilterSize(ref this, Width, Height);
			public void GetTextFilterSize(uint32* pWidth, uint32* pHeight) mut => VT.GetTextFilterSize(ref this, pWidth, pHeight);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumBuffers, ID3D10Buffer** ppConstantBuffers) VSSetConstantBuffers;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumViews, ID3D10ShaderResourceView** ppShaderResourceViews) PSSetShaderResources;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ID3D10PixelShader* pPixelShader) PSSetShader;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumSamplers, ID3D10SamplerState** ppSamplers) PSSetSamplers;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ID3D10VertexShader* pVertexShader) VSSetShader;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 IndexCount, uint32 StartIndexLocation, int32 BaseVertexLocation) DrawIndexed;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 VertexCount, uint32 StartVertexLocation) Draw;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumBuffers, ID3D10Buffer** ppConstantBuffers) PSSetConstantBuffers;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ID3D10InputLayout* pInputLayout) IASetInputLayout;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumBuffers, ID3D10Buffer** ppVertexBuffers, uint32* pStrides, uint32* pOffsets) IASetVertexBuffers;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ID3D10Buffer* pIndexBuffer, DXGI_FORMAT Format, uint32 Offset) IASetIndexBuffer;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 IndexCountPerInstance, uint32 InstanceCount, uint32 StartIndexLocation, int32 BaseVertexLocation, uint32 StartInstanceLocation) DrawIndexedInstanced;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 VertexCountPerInstance, uint32 InstanceCount, uint32 StartVertexLocation, uint32 StartInstanceLocation) DrawInstanced;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumBuffers, ID3D10Buffer** ppConstantBuffers) GSSetConstantBuffers;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ID3D10GeometryShader* pShader) GSSetShader;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, D3D_PRIMITIVE_TOPOLOGY Topology) IASetPrimitiveTopology;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumViews, ID3D10ShaderResourceView** ppShaderResourceViews) VSSetShaderResources;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumSamplers, ID3D10SamplerState** ppSamplers) VSSetSamplers;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ID3D10Predicate* pPredicate, BOOL PredicateValue) SetPredication;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumViews, ID3D10ShaderResourceView** ppShaderResourceViews) GSSetShaderResources;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumSamplers, ID3D10SamplerState** ppSamplers) GSSetSamplers;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 NumViews, ID3D10RenderTargetView** ppRenderTargetViews, ID3D10DepthStencilView* pDepthStencilView) OMSetRenderTargets;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ID3D10BlendState* pBlendState, in float BlendFactor, uint32 SampleMask) OMSetBlendState;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ID3D10DepthStencilState* pDepthStencilState, uint32 StencilRef) OMSetDepthStencilState;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 NumBuffers, ID3D10Buffer** ppSOTargets, uint32* pOffsets) SOSetTargets;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self) DrawAuto;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ID3D10RasterizerState* pRasterizerState) RSSetState;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 NumViewports, D3D10_VIEWPORT* pViewports) RSSetViewports;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 NumRects, RECT* pRects) RSSetScissorRects;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ref ID3D10Resource pDstResource, uint32 DstSubresource, uint32 DstX, uint32 DstY, uint32 DstZ, ref ID3D10Resource pSrcResource, uint32 SrcSubresource, D3D10_BOX* pSrcBox) CopySubresourceRegion;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ref ID3D10Resource pDstResource, ref ID3D10Resource pSrcResource) CopyResource;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ref ID3D10Resource pDstResource, uint32 DstSubresource, D3D10_BOX* pDstBox, void* pSrcData, uint32 SrcRowPitch, uint32 SrcDepthPitch) UpdateSubresource;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ref ID3D10RenderTargetView pRenderTargetView, in float ColorRGBA) ClearRenderTargetView;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ref ID3D10DepthStencilView pDepthStencilView, uint32 ClearFlags, float Depth, uint8 Stencil) ClearDepthStencilView;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ref ID3D10ShaderResourceView pShaderResourceView) GenerateMips;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ref ID3D10Resource pDstResource, uint32 DstSubresource, ref ID3D10Resource pSrcResource, uint32 SrcSubresource, DXGI_FORMAT Format) ResolveSubresource;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumBuffers, ID3D10Buffer** ppConstantBuffers) VSGetConstantBuffers;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumViews, ID3D10ShaderResourceView** ppShaderResourceViews) PSGetShaderResources;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, out ID3D10PixelShader* ppPixelShader) PSGetShader;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumSamplers, ID3D10SamplerState** ppSamplers) PSGetSamplers;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, out ID3D10VertexShader* ppVertexShader) VSGetShader;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumBuffers, ID3D10Buffer** ppConstantBuffers) PSGetConstantBuffers;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, out ID3D10InputLayout* ppInputLayout) IAGetInputLayout;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumBuffers, ID3D10Buffer** ppVertexBuffers, uint32* pStrides, uint32* pOffsets) IAGetVertexBuffers;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ID3D10Buffer** pIndexBuffer, DXGI_FORMAT* Format, uint32* Offset) IAGetIndexBuffer;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumBuffers, ID3D10Buffer** ppConstantBuffers) GSGetConstantBuffers;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, out ID3D10GeometryShader* ppGeometryShader) GSGetShader;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, out D3D_PRIMITIVE_TOPOLOGY pTopology) IAGetPrimitiveTopology;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumViews, ID3D10ShaderResourceView** ppShaderResourceViews) VSGetShaderResources;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumSamplers, ID3D10SamplerState** ppSamplers) VSGetSamplers;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ID3D10Predicate** ppPredicate, BOOL* pPredicateValue) GetPredication;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumViews, ID3D10ShaderResourceView** ppShaderResourceViews) GSGetShaderResources;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 StartSlot, uint32 NumSamplers, ID3D10SamplerState** ppSamplers) GSGetSamplers;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 NumViews, ID3D10RenderTargetView** ppRenderTargetViews, ID3D10DepthStencilView** ppDepthStencilView) OMGetRenderTargets;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ID3D10BlendState** ppBlendState, float* BlendFactor, uint32* pSampleMask) OMGetBlendState;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, ID3D10DepthStencilState** ppDepthStencilState, uint32* pStencilRef) OMGetDepthStencilState;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 NumBuffers, ID3D10Buffer** ppSOTargets, uint32* pOffsets) SOGetTargets;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, out ID3D10RasterizerState* ppRasterizerState) RSGetState;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, out uint32 NumViewports, D3D10_VIEWPORT* pViewports) RSGetViewports;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, out uint32 NumRects, RECT* pRects) RSGetScissorRects;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self) GetDeviceRemovedReason;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, uint32 RaiseFlags) SetExceptionMode;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D10Device self) GetExceptionMode;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, in Guid guid, out uint32 pDataSize, void* pData) GetPrivateData;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, in Guid guid, uint32 DataSize, void* pData) SetPrivateData;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, in Guid guid, IUnknown* pData) SetPrivateDataInterface;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self) ClearState;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self) Flush;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, in D3D10_BUFFER_DESC pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, ID3D10Buffer** ppBuffer) CreateBuffer;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, in D3D10_TEXTURE1D_DESC pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, out ID3D10Texture1D* ppTexture1D) CreateTexture1D;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, in D3D10_TEXTURE2D_DESC pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, out ID3D10Texture2D* ppTexture2D) CreateTexture2D;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, in D3D10_TEXTURE3D_DESC pDesc, D3D10_SUBRESOURCE_DATA* pInitialData, out ID3D10Texture3D* ppTexture3D) CreateTexture3D;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, ref ID3D10Resource pResource, D3D10_SHADER_RESOURCE_VIEW_DESC* pDesc, ID3D10ShaderResourceView** ppSRView) CreateShaderResourceView;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, ref ID3D10Resource pResource, D3D10_RENDER_TARGET_VIEW_DESC* pDesc, ID3D10RenderTargetView** ppRTView) CreateRenderTargetView;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, ref ID3D10Resource pResource, D3D10_DEPTH_STENCIL_VIEW_DESC* pDesc, ID3D10DepthStencilView** ppDepthStencilView) CreateDepthStencilView;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, D3D10_INPUT_ELEMENT_DESC* pInputElementDescs, uint32 NumElements, void* pShaderBytecodeWithInputSignature, uint BytecodeLength, ID3D10InputLayout** ppInputLayout) CreateInputLayout;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, void* pShaderBytecode, uint BytecodeLength, ID3D10VertexShader** ppVertexShader) CreateVertexShader;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, void* pShaderBytecode, uint BytecodeLength, ID3D10GeometryShader** ppGeometryShader) CreateGeometryShader;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, void* pShaderBytecode, uint BytecodeLength, D3D10_SO_DECLARATION_ENTRY* pSODeclaration, uint32 NumEntries, uint32 OutputStreamStride, ID3D10GeometryShader** ppGeometryShader) CreateGeometryShaderWithStreamOutput;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, void* pShaderBytecode, uint BytecodeLength, ID3D10PixelShader** ppPixelShader) CreatePixelShader;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, in D3D10_BLEND_DESC pBlendStateDesc, ID3D10BlendState** ppBlendState) CreateBlendState;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, in D3D10_DEPTH_STENCIL_DESC pDepthStencilDesc, ID3D10DepthStencilState** ppDepthStencilState) CreateDepthStencilState;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, in D3D10_RASTERIZER_DESC pRasterizerDesc, ID3D10RasterizerState** ppRasterizerState) CreateRasterizerState;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, in D3D10_SAMPLER_DESC pSamplerDesc, ID3D10SamplerState** ppSamplerState) CreateSamplerState;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, in D3D10_QUERY_DESC pQueryDesc, ID3D10Query** ppQuery) CreateQuery;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, in D3D10_QUERY_DESC pPredicateDesc, ID3D10Predicate** ppPredicate) CreatePredicate;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, in D3D10_COUNTER_DESC pCounterDesc, ID3D10Counter** ppCounter) CreateCounter;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, DXGI_FORMAT Format, out uint32 pFormatSupport) CheckFormatSupport;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, DXGI_FORMAT Format, uint32 SampleCount, out uint32 pNumQualityLevels) CheckMultisampleQualityLevels;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, out D3D10_COUNTER_INFO pCounterInfo) CheckCounterInfo;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, in D3D10_COUNTER_DESC pDesc, out D3D10_COUNTER_TYPE pType, out uint32 pActiveCounters, uint8* szName, uint32* pNameLength, uint8* szUnits, uint32* pUnitsLength, uint8* szDescription, uint32* pDescriptionLength) CheckCounter;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D10Device self) GetCreationFlags;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device self, HANDLE hResource, in Guid ReturnedInterface, void** ppResource) OpenSharedResource;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32 Width, uint32 Height) SetTextFilterSize;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Device self, uint32* pWidth, uint32* pHeight) GetTextFilterSize;
			}
		}
		[CRepr]
		public struct ID3D10Multithread : IUnknown
		{
			public const new Guid IID = .(0x9b7e4e00, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public void Enter() mut => VT.Enter(ref this);
			public void Leave() mut => VT.Leave(ref this);
			public BOOL SetMultithreadProtected(BOOL bMTProtect) mut => VT.SetMultithreadProtected(ref this, bMTProtect);
			public BOOL GetMultithreadProtected() mut => VT.GetMultithreadProtected(ref this);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Multithread self) Enter;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10Multithread self) Leave;
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D10Multithread self, BOOL bMTProtect) SetMultithreadProtected;
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D10Multithread self) GetMultithreadProtected;
			}
		}
		[CRepr]
		public struct ID3D10Debug : IUnknown
		{
			public const new Guid IID = .(0x9b7e4e01, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SetFeatureMask(uint32 Mask) mut => VT.SetFeatureMask(ref this, Mask);
			public uint32 GetFeatureMask() mut => VT.GetFeatureMask(ref this);
			public HRESULT SetPresentPerRenderOpDelay(uint32 Milliseconds) mut => VT.SetPresentPerRenderOpDelay(ref this, Milliseconds);
			public uint32 GetPresentPerRenderOpDelay() mut => VT.GetPresentPerRenderOpDelay(ref this);
			public HRESULT SetSwapChain(IDXGISwapChain* pSwapChain) mut => VT.SetSwapChain(ref this, pSwapChain);
			public HRESULT GetSwapChain(out IDXGISwapChain* ppSwapChain) mut => VT.GetSwapChain(ref this, out ppSwapChain);
			public HRESULT Validate() mut => VT.Validate(ref this);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Debug self, uint32 Mask) SetFeatureMask;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D10Debug self) GetFeatureMask;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Debug self, uint32 Milliseconds) SetPresentPerRenderOpDelay;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D10Debug self) GetPresentPerRenderOpDelay;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Debug self, IDXGISwapChain* pSwapChain) SetSwapChain;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Debug self, out IDXGISwapChain* ppSwapChain) GetSwapChain;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Debug self) Validate;
			}
		}
		[CRepr]
		public struct ID3D10SwitchToRef : IUnknown
		{
			public const new Guid IID = .(0x9b7e4e02, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public BOOL SetUseRef(BOOL UseRef) mut => VT.SetUseRef(ref this, UseRef);
			public BOOL GetUseRef() mut => VT.GetUseRef(ref this);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D10SwitchToRef self, BOOL UseRef) SetUseRef;
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D10SwitchToRef self) GetUseRef;
			}
		}
		[CRepr]
		public struct ID3D10InfoQueue : IUnknown
		{
			public const new Guid IID = .(0x1b940b17, 0x2642, 0x4d1f, 0xab, 0x1f, 0xb9, 0x9b, 0xad, 0x0c, 0x39, 0x5f);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SetMessageCountLimit(uint64 MessageCountLimit) mut => VT.SetMessageCountLimit(ref this, MessageCountLimit);
			public void ClearStoredMessages() mut => VT.ClearStoredMessages(ref this);
			public HRESULT GetMessage(uint64 MessageIndex, D3D10_MESSAGE* pMessage, out uint pMessageByteLength) mut => VT.GetMessage(ref this, MessageIndex, pMessage, out pMessageByteLength);
			public uint64 GetNumMessagesAllowedByStorageFilter() mut => VT.GetNumMessagesAllowedByStorageFilter(ref this);
			public uint64 GetNumMessagesDeniedByStorageFilter() mut => VT.GetNumMessagesDeniedByStorageFilter(ref this);
			public uint64 GetNumStoredMessages() mut => VT.GetNumStoredMessages(ref this);
			public uint64 GetNumStoredMessagesAllowedByRetrievalFilter() mut => VT.GetNumStoredMessagesAllowedByRetrievalFilter(ref this);
			public uint64 GetNumMessagesDiscardedByMessageCountLimit() mut => VT.GetNumMessagesDiscardedByMessageCountLimit(ref this);
			public uint64 GetMessageCountLimit() mut => VT.GetMessageCountLimit(ref this);
			public HRESULT AddStorageFilterEntries(ref D3D10_INFO_QUEUE_FILTER pFilter) mut => VT.AddStorageFilterEntries(ref this, ref pFilter);
			public HRESULT GetStorageFilter(D3D10_INFO_QUEUE_FILTER* pFilter, out uint pFilterByteLength) mut => VT.GetStorageFilter(ref this, pFilter, out pFilterByteLength);
			public void ClearStorageFilter() mut => VT.ClearStorageFilter(ref this);
			public HRESULT PushEmptyStorageFilter() mut => VT.PushEmptyStorageFilter(ref this);
			public HRESULT PushCopyOfStorageFilter() mut => VT.PushCopyOfStorageFilter(ref this);
			public HRESULT PushStorageFilter(ref D3D10_INFO_QUEUE_FILTER pFilter) mut => VT.PushStorageFilter(ref this, ref pFilter);
			public void PopStorageFilter() mut => VT.PopStorageFilter(ref this);
			public uint32 GetStorageFilterStackSize() mut => VT.GetStorageFilterStackSize(ref this);
			public HRESULT AddRetrievalFilterEntries(ref D3D10_INFO_QUEUE_FILTER pFilter) mut => VT.AddRetrievalFilterEntries(ref this, ref pFilter);
			public HRESULT GetRetrievalFilter(D3D10_INFO_QUEUE_FILTER* pFilter, out uint pFilterByteLength) mut => VT.GetRetrievalFilter(ref this, pFilter, out pFilterByteLength);
			public void ClearRetrievalFilter() mut => VT.ClearRetrievalFilter(ref this);
			public HRESULT PushEmptyRetrievalFilter() mut => VT.PushEmptyRetrievalFilter(ref this);
			public HRESULT PushCopyOfRetrievalFilter() mut => VT.PushCopyOfRetrievalFilter(ref this);
			public HRESULT PushRetrievalFilter(ref D3D10_INFO_QUEUE_FILTER pFilter) mut => VT.PushRetrievalFilter(ref this, ref pFilter);
			public void PopRetrievalFilter() mut => VT.PopRetrievalFilter(ref this);
			public uint32 GetRetrievalFilterStackSize() mut => VT.GetRetrievalFilterStackSize(ref this);
			public HRESULT AddMessage(D3D10_MESSAGE_CATEGORY Category, D3D10_MESSAGE_SEVERITY Severity, D3D10_MESSAGE_ID ID, PSTR pDescription) mut => VT.AddMessage(ref this, Category, Severity, ID, pDescription);
			public HRESULT AddApplicationMessage(D3D10_MESSAGE_SEVERITY Severity, PSTR pDescription) mut => VT.AddApplicationMessage(ref this, Severity, pDescription);
			public HRESULT SetBreakOnCategory(D3D10_MESSAGE_CATEGORY Category, BOOL bEnable) mut => VT.SetBreakOnCategory(ref this, Category, bEnable);
			public HRESULT SetBreakOnSeverity(D3D10_MESSAGE_SEVERITY Severity, BOOL bEnable) mut => VT.SetBreakOnSeverity(ref this, Severity, bEnable);
			public HRESULT SetBreakOnID(D3D10_MESSAGE_ID ID, BOOL bEnable) mut => VT.SetBreakOnID(ref this, ID, bEnable);
			public BOOL GetBreakOnCategory(D3D10_MESSAGE_CATEGORY Category) mut => VT.GetBreakOnCategory(ref this, Category);
			public BOOL GetBreakOnSeverity(D3D10_MESSAGE_SEVERITY Severity) mut => VT.GetBreakOnSeverity(ref this, Severity);
			public BOOL GetBreakOnID(D3D10_MESSAGE_ID ID) mut => VT.GetBreakOnID(ref this, ID);
			public void SetMuteDebugOutput(BOOL bMute) mut => VT.SetMuteDebugOutput(ref this, bMute);
			public BOOL GetMuteDebugOutput() mut => VT.GetMuteDebugOutput(ref this);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10InfoQueue self, uint64 MessageCountLimit) SetMessageCountLimit;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10InfoQueue self) ClearStoredMessages;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10InfoQueue self, uint64 MessageIndex, D3D10_MESSAGE* pMessage, out uint pMessageByteLength) GetMessage;
				public new function [CallingConvention(.Stdcall)] uint64(ref ID3D10InfoQueue self) GetNumMessagesAllowedByStorageFilter;
				public new function [CallingConvention(.Stdcall)] uint64(ref ID3D10InfoQueue self) GetNumMessagesDeniedByStorageFilter;
				public new function [CallingConvention(.Stdcall)] uint64(ref ID3D10InfoQueue self) GetNumStoredMessages;
				public new function [CallingConvention(.Stdcall)] uint64(ref ID3D10InfoQueue self) GetNumStoredMessagesAllowedByRetrievalFilter;
				public new function [CallingConvention(.Stdcall)] uint64(ref ID3D10InfoQueue self) GetNumMessagesDiscardedByMessageCountLimit;
				public new function [CallingConvention(.Stdcall)] uint64(ref ID3D10InfoQueue self) GetMessageCountLimit;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10InfoQueue self, ref D3D10_INFO_QUEUE_FILTER pFilter) AddStorageFilterEntries;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10InfoQueue self, D3D10_INFO_QUEUE_FILTER* pFilter, out uint pFilterByteLength) GetStorageFilter;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10InfoQueue self) ClearStorageFilter;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10InfoQueue self) PushEmptyStorageFilter;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10InfoQueue self) PushCopyOfStorageFilter;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10InfoQueue self, ref D3D10_INFO_QUEUE_FILTER pFilter) PushStorageFilter;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10InfoQueue self) PopStorageFilter;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D10InfoQueue self) GetStorageFilterStackSize;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10InfoQueue self, ref D3D10_INFO_QUEUE_FILTER pFilter) AddRetrievalFilterEntries;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10InfoQueue self, D3D10_INFO_QUEUE_FILTER* pFilter, out uint pFilterByteLength) GetRetrievalFilter;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10InfoQueue self) ClearRetrievalFilter;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10InfoQueue self) PushEmptyRetrievalFilter;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10InfoQueue self) PushCopyOfRetrievalFilter;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10InfoQueue self, ref D3D10_INFO_QUEUE_FILTER pFilter) PushRetrievalFilter;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10InfoQueue self) PopRetrievalFilter;
				public new function [CallingConvention(.Stdcall)] uint32(ref ID3D10InfoQueue self) GetRetrievalFilterStackSize;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10InfoQueue self, D3D10_MESSAGE_CATEGORY Category, D3D10_MESSAGE_SEVERITY Severity, D3D10_MESSAGE_ID ID, PSTR pDescription) AddMessage;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10InfoQueue self, D3D10_MESSAGE_SEVERITY Severity, PSTR pDescription) AddApplicationMessage;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10InfoQueue self, D3D10_MESSAGE_CATEGORY Category, BOOL bEnable) SetBreakOnCategory;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10InfoQueue self, D3D10_MESSAGE_SEVERITY Severity, BOOL bEnable) SetBreakOnSeverity;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10InfoQueue self, D3D10_MESSAGE_ID ID, BOOL bEnable) SetBreakOnID;
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D10InfoQueue self, D3D10_MESSAGE_CATEGORY Category) GetBreakOnCategory;
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D10InfoQueue self, D3D10_MESSAGE_SEVERITY Severity) GetBreakOnSeverity;
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D10InfoQueue self, D3D10_MESSAGE_ID ID) GetBreakOnID;
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10InfoQueue self, BOOL bMute) SetMuteDebugOutput;
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D10InfoQueue self) GetMuteDebugOutput;
			}
		}
		[CRepr]
		public struct ID3D10ShaderReflectionType
		{
			public const new Guid IID = .(0xc530ad7d, 0x9b16, 0x4395, 0xa9, 0x79, 0xba, 0x2e, 0xcf, 0xf8, 0x3a, 0xdd);
			
			protected VTable* vt;
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetDesc(out D3D10_SHADER_TYPE_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);
			public ID3D10ShaderReflectionType* GetMemberTypeByIndex(uint32 Index) mut => VT.GetMemberTypeByIndex(ref this, Index);
			public ID3D10ShaderReflectionType* GetMemberTypeByName(PSTR Name) mut => VT.GetMemberTypeByName(ref this, Name);
			public PSTR GetMemberTypeName(uint32 Index) mut => VT.GetMemberTypeName(ref this, Index);

			[CRepr]
			public struct VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflectionType self, out D3D10_SHADER_TYPE_DESC pDesc) GetDesc;
				public new function [CallingConvention(.Stdcall)] ID3D10ShaderReflectionType*(ref ID3D10ShaderReflectionType self, uint32 Index) GetMemberTypeByIndex;
				public new function [CallingConvention(.Stdcall)] ID3D10ShaderReflectionType*(ref ID3D10ShaderReflectionType self, PSTR Name) GetMemberTypeByName;
				public new function [CallingConvention(.Stdcall)] PSTR(ref ID3D10ShaderReflectionType self, uint32 Index) GetMemberTypeName;
			}
		}
		[CRepr]
		public struct ID3D10ShaderReflectionVariable
		{
			public const new Guid IID = .(0x1bf63c95, 0x2650, 0x405d, 0x99, 0xc1, 0x36, 0x36, 0xbd, 0x1d, 0xa0, 0xa1);
			
			protected VTable* vt;
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetDesc(out D3D10_SHADER_VARIABLE_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);
			public ID3D10ShaderReflectionType* ComGetType() mut => VT.ComGetType(ref this);

			[CRepr]
			public struct VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflectionVariable self, out D3D10_SHADER_VARIABLE_DESC pDesc) GetDesc;
				public new function [CallingConvention(.Stdcall)] ID3D10ShaderReflectionType*(ref ID3D10ShaderReflectionVariable self) ComGetType;
			}
		}
		[CRepr]
		public struct ID3D10ShaderReflectionConstantBuffer
		{
			public const new Guid IID = .(0x66c66a94, 0xdddd, 0x4b62, 0xa6, 0x6a, 0xf0, 0xda, 0x33, 0xc2, 0xb4, 0xd0);
			
			protected VTable* vt;
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetDesc(out D3D10_SHADER_BUFFER_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);
			public ID3D10ShaderReflectionVariable* GetVariableByIndex(uint32 Index) mut => VT.GetVariableByIndex(ref this, Index);
			public ID3D10ShaderReflectionVariable* GetVariableByName(PSTR Name) mut => VT.GetVariableByName(ref this, Name);

			[CRepr]
			public struct VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflectionConstantBuffer self, out D3D10_SHADER_BUFFER_DESC pDesc) GetDesc;
				public new function [CallingConvention(.Stdcall)] ID3D10ShaderReflectionVariable*(ref ID3D10ShaderReflectionConstantBuffer self, uint32 Index) GetVariableByIndex;
				public new function [CallingConvention(.Stdcall)] ID3D10ShaderReflectionVariable*(ref ID3D10ShaderReflectionConstantBuffer self, PSTR Name) GetVariableByName;
			}
		}
		[CRepr]
		public struct ID3D10ShaderReflection : IUnknown
		{
			public const new Guid IID = .(0xd40e20b6, 0xf8f7, 0x42ad, 0xab, 0x20, 0x4b, 0xaf, 0x8f, 0x15, 0xdf, 0xaa);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetDesc(out D3D10_SHADER_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);
			public ID3D10ShaderReflectionConstantBuffer* GetConstantBufferByIndex(uint32 Index) mut => VT.GetConstantBufferByIndex(ref this, Index);
			public ID3D10ShaderReflectionConstantBuffer* GetConstantBufferByName(PSTR Name) mut => VT.GetConstantBufferByName(ref this, Name);
			public HRESULT GetResourceBindingDesc(uint32 ResourceIndex, out D3D10_SHADER_INPUT_BIND_DESC pDesc) mut => VT.GetResourceBindingDesc(ref this, ResourceIndex, out pDesc);
			public HRESULT GetInputParameterDesc(uint32 ParameterIndex, out D3D10_SIGNATURE_PARAMETER_DESC pDesc) mut => VT.GetInputParameterDesc(ref this, ParameterIndex, out pDesc);
			public HRESULT GetOutputParameterDesc(uint32 ParameterIndex, out D3D10_SIGNATURE_PARAMETER_DESC pDesc) mut => VT.GetOutputParameterDesc(ref this, ParameterIndex, out pDesc);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflection self, out D3D10_SHADER_DESC pDesc) GetDesc;
				public new function [CallingConvention(.Stdcall)] ID3D10ShaderReflectionConstantBuffer*(ref ID3D10ShaderReflection self, uint32 Index) GetConstantBufferByIndex;
				public new function [CallingConvention(.Stdcall)] ID3D10ShaderReflectionConstantBuffer*(ref ID3D10ShaderReflection self, PSTR Name) GetConstantBufferByName;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflection self, uint32 ResourceIndex, out D3D10_SHADER_INPUT_BIND_DESC pDesc) GetResourceBindingDesc;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflection self, uint32 ParameterIndex, out D3D10_SIGNATURE_PARAMETER_DESC pDesc) GetInputParameterDesc;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflection self, uint32 ParameterIndex, out D3D10_SIGNATURE_PARAMETER_DESC pDesc) GetOutputParameterDesc;
			}
		}
		[CRepr]
		public struct ID3D10StateBlock : IUnknown
		{
			public const new Guid IID = .(0x0803425a, 0x57f5, 0x4dd6, 0x94, 0x65, 0xa8, 0x75, 0x70, 0x83, 0x4a, 0x08);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT Capture() mut => VT.Capture(ref this);
			public HRESULT Apply() mut => VT.Apply(ref this);
			public HRESULT ReleaseAllDeviceObjects() mut => VT.ReleaseAllDeviceObjects(ref this);
			public HRESULT GetDevice(out ID3D10Device* ppDevice) mut => VT.GetDevice(ref this, out ppDevice);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10StateBlock self) Capture;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10StateBlock self) Apply;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10StateBlock self) ReleaseAllDeviceObjects;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10StateBlock self, out ID3D10Device* ppDevice) GetDevice;
			}
		}
		[CRepr]
		public struct ID3D10EffectType
		{
			public const new Guid IID = .(0x4e9e1ddc, 0xcd9d, 0x4772, 0xa8, 0x37, 0x00, 0x18, 0x0b, 0x9b, 0x88, 0xfd);
			
			protected VTable* vt;
			public new VTable* VT { get => (.)vt; }
			
			public BOOL IsValid() mut => VT.IsValid(ref this);
			public HRESULT GetDesc(out D3D10_EFFECT_TYPE_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);
			public ID3D10EffectType* GetMemberTypeByIndex(uint32 Index) mut => VT.GetMemberTypeByIndex(ref this, Index);
			public ID3D10EffectType* GetMemberTypeByName(PSTR Name) mut => VT.GetMemberTypeByName(ref this, Name);
			public ID3D10EffectType* GetMemberTypeBySemantic(PSTR Semantic) mut => VT.GetMemberTypeBySemantic(ref this, Semantic);
			public PSTR GetMemberName(uint32 Index) mut => VT.GetMemberName(ref this, Index);
			public PSTR GetMemberSemantic(uint32 Index) mut => VT.GetMemberSemantic(ref this, Index);

			[CRepr]
			public struct VTable
			{
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D10EffectType self) IsValid;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectType self, out D3D10_EFFECT_TYPE_DESC pDesc) GetDesc;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectType*(ref ID3D10EffectType self, uint32 Index) GetMemberTypeByIndex;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectType*(ref ID3D10EffectType self, PSTR Name) GetMemberTypeByName;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectType*(ref ID3D10EffectType self, PSTR Semantic) GetMemberTypeBySemantic;
				public new function [CallingConvention(.Stdcall)] PSTR(ref ID3D10EffectType self, uint32 Index) GetMemberName;
				public new function [CallingConvention(.Stdcall)] PSTR(ref ID3D10EffectType self, uint32 Index) GetMemberSemantic;
			}
		}
		[CRepr]
		public struct ID3D10EffectVariable
		{
			public const new Guid IID = .(0xae897105, 0x00e6, 0x45bf, 0xbb, 0x8e, 0x28, 0x1d, 0xd6, 0xdb, 0x8e, 0x1b);
			
			protected VTable* vt;
			public new VTable* VT { get => (.)vt; }
			
			public BOOL IsValid() mut => VT.IsValid(ref this);
			public ID3D10EffectType* ComGetType() mut => VT.ComGetType(ref this);
			public HRESULT GetDesc(out D3D10_EFFECT_VARIABLE_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);
			public ID3D10EffectVariable* GetAnnotationByIndex(uint32 Index) mut => VT.GetAnnotationByIndex(ref this, Index);
			public ID3D10EffectVariable* GetAnnotationByName(PSTR Name) mut => VT.GetAnnotationByName(ref this, Name);
			public ID3D10EffectVariable* GetMemberByIndex(uint32 Index) mut => VT.GetMemberByIndex(ref this, Index);
			public ID3D10EffectVariable* GetMemberByName(PSTR Name) mut => VT.GetMemberByName(ref this, Name);
			public ID3D10EffectVariable* GetMemberBySemantic(PSTR Semantic) mut => VT.GetMemberBySemantic(ref this, Semantic);
			public ID3D10EffectVariable* GetElement(uint32 Index) mut => VT.GetElement(ref this, Index);
			public ID3D10EffectConstantBuffer* GetParentConstantBuffer() mut => VT.GetParentConstantBuffer(ref this);
			public ID3D10EffectScalarVariable* AsScalar() mut => VT.AsScalar(ref this);
			public ID3D10EffectVectorVariable* AsVector() mut => VT.AsVector(ref this);
			public ID3D10EffectMatrixVariable* AsMatrix() mut => VT.AsMatrix(ref this);
			public ID3D10EffectStringVariable* AsString() mut => VT.AsString(ref this);
			public ID3D10EffectShaderResourceVariable* AsShaderResource() mut => VT.AsShaderResource(ref this);
			public ID3D10EffectRenderTargetViewVariable* AsRenderTargetView() mut => VT.AsRenderTargetView(ref this);
			public ID3D10EffectDepthStencilViewVariable* AsDepthStencilView() mut => VT.AsDepthStencilView(ref this);
			public ID3D10EffectConstantBuffer* AsConstantBuffer() mut => VT.AsConstantBuffer(ref this);
			public ID3D10EffectShaderVariable* AsShader() mut => VT.AsShader(ref this);
			public ID3D10EffectBlendVariable* AsBlend() mut => VT.AsBlend(ref this);
			public ID3D10EffectDepthStencilVariable* AsDepthStencil() mut => VT.AsDepthStencil(ref this);
			public ID3D10EffectRasterizerVariable* AsRasterizer() mut => VT.AsRasterizer(ref this);
			public ID3D10EffectSamplerVariable* AsSampler() mut => VT.AsSampler(ref this);
			public HRESULT SetRawValue(void* pData, uint32 Offset, uint32 ByteCount) mut => VT.SetRawValue(ref this, pData, Offset, ByteCount);
			public HRESULT GetRawValue(void* pData, uint32 Offset, uint32 ByteCount) mut => VT.GetRawValue(ref this, pData, Offset, ByteCount);

			[CRepr]
			public struct VTable
			{
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D10EffectVariable self) IsValid;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectType*(ref ID3D10EffectVariable self) ComGetType;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectVariable self, out D3D10_EFFECT_VARIABLE_DESC pDesc) GetDesc;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectVariable*(ref ID3D10EffectVariable self, uint32 Index) GetAnnotationByIndex;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectVariable*(ref ID3D10EffectVariable self, PSTR Name) GetAnnotationByName;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectVariable*(ref ID3D10EffectVariable self, uint32 Index) GetMemberByIndex;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectVariable*(ref ID3D10EffectVariable self, PSTR Name) GetMemberByName;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectVariable*(ref ID3D10EffectVariable self, PSTR Semantic) GetMemberBySemantic;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectVariable*(ref ID3D10EffectVariable self, uint32 Index) GetElement;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectConstantBuffer*(ref ID3D10EffectVariable self) GetParentConstantBuffer;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectScalarVariable*(ref ID3D10EffectVariable self) AsScalar;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectVectorVariable*(ref ID3D10EffectVariable self) AsVector;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectMatrixVariable*(ref ID3D10EffectVariable self) AsMatrix;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectStringVariable*(ref ID3D10EffectVariable self) AsString;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectShaderResourceVariable*(ref ID3D10EffectVariable self) AsShaderResource;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectRenderTargetViewVariable*(ref ID3D10EffectVariable self) AsRenderTargetView;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectDepthStencilViewVariable*(ref ID3D10EffectVariable self) AsDepthStencilView;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectConstantBuffer*(ref ID3D10EffectVariable self) AsConstantBuffer;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectShaderVariable*(ref ID3D10EffectVariable self) AsShader;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectBlendVariable*(ref ID3D10EffectVariable self) AsBlend;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectDepthStencilVariable*(ref ID3D10EffectVariable self) AsDepthStencil;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectRasterizerVariable*(ref ID3D10EffectVariable self) AsRasterizer;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectSamplerVariable*(ref ID3D10EffectVariable self) AsSampler;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectVariable self, void* pData, uint32 Offset, uint32 ByteCount) SetRawValue;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectVariable self, void* pData, uint32 Offset, uint32 ByteCount) GetRawValue;
			}
		}
		[CRepr]
		public struct ID3D10EffectScalarVariable : ID3D10EffectVariable
		{
			public const new Guid IID = .(0x00e48f7b, 0xd2c8, 0x49e8, 0xa8, 0x6c, 0x02, 0x2d, 0xee, 0x53, 0x43, 0x1f);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SetFloat(float Value) mut => VT.SetFloat(ref this, Value);
			public HRESULT GetFloat(out float pValue) mut => VT.GetFloat(ref this, out pValue);
			public HRESULT SetFloatArray(float* pData, uint32 Offset, uint32 Count) mut => VT.SetFloatArray(ref this, pData, Offset, Count);
			public HRESULT GetFloatArray(float* pData, uint32 Offset, uint32 Count) mut => VT.GetFloatArray(ref this, pData, Offset, Count);
			public HRESULT SetInt(int32 Value) mut => VT.SetInt(ref this, Value);
			public HRESULT GetInt(out int32 pValue) mut => VT.GetInt(ref this, out pValue);
			public HRESULT SetIntArray(int32* pData, uint32 Offset, uint32 Count) mut => VT.SetIntArray(ref this, pData, Offset, Count);
			public HRESULT GetIntArray(int32* pData, uint32 Offset, uint32 Count) mut => VT.GetIntArray(ref this, pData, Offset, Count);
			public HRESULT SetBool(BOOL Value) mut => VT.SetBool(ref this, Value);
			public HRESULT GetBool(out BOOL pValue) mut => VT.GetBool(ref this, out pValue);
			public HRESULT SetBoolArray(BOOL* pData, uint32 Offset, uint32 Count) mut => VT.SetBoolArray(ref this, pData, Offset, Count);
			public HRESULT GetBoolArray(BOOL* pData, uint32 Offset, uint32 Count) mut => VT.GetBoolArray(ref this, pData, Offset, Count);

			[CRepr]
			public struct VTable : ID3D10EffectVariable.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectScalarVariable self, float Value) SetFloat;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectScalarVariable self, out float pValue) GetFloat;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectScalarVariable self, float* pData, uint32 Offset, uint32 Count) SetFloatArray;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectScalarVariable self, float* pData, uint32 Offset, uint32 Count) GetFloatArray;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectScalarVariable self, int32 Value) SetInt;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectScalarVariable self, out int32 pValue) GetInt;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectScalarVariable self, int32* pData, uint32 Offset, uint32 Count) SetIntArray;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectScalarVariable self, int32* pData, uint32 Offset, uint32 Count) GetIntArray;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectScalarVariable self, BOOL Value) SetBool;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectScalarVariable self, out BOOL pValue) GetBool;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectScalarVariable self, BOOL* pData, uint32 Offset, uint32 Count) SetBoolArray;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectScalarVariable self, BOOL* pData, uint32 Offset, uint32 Count) GetBoolArray;
			}
		}
		[CRepr]
		public struct ID3D10EffectVectorVariable : ID3D10EffectVariable
		{
			public const new Guid IID = .(0x62b98c44, 0x1f82, 0x4c67, 0xbc, 0xd0, 0x72, 0xcf, 0x8f, 0x21, 0x7e, 0x81);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SetBoolVector(out BOOL pData) mut => VT.SetBoolVector(ref this, out pData);
			public HRESULT SetIntVector(out int32 pData) mut => VT.SetIntVector(ref this, out pData);
			public HRESULT SetFloatVector(out float pData) mut => VT.SetFloatVector(ref this, out pData);
			public HRESULT GetBoolVector(out BOOL pData) mut => VT.GetBoolVector(ref this, out pData);
			public HRESULT GetIntVector(out int32 pData) mut => VT.GetIntVector(ref this, out pData);
			public HRESULT GetFloatVector(out float pData) mut => VT.GetFloatVector(ref this, out pData);
			public HRESULT SetBoolVectorArray(out BOOL pData, uint32 Offset, uint32 Count) mut => VT.SetBoolVectorArray(ref this, out pData, Offset, Count);
			public HRESULT SetIntVectorArray(out int32 pData, uint32 Offset, uint32 Count) mut => VT.SetIntVectorArray(ref this, out pData, Offset, Count);
			public HRESULT SetFloatVectorArray(out float pData, uint32 Offset, uint32 Count) mut => VT.SetFloatVectorArray(ref this, out pData, Offset, Count);
			public HRESULT GetBoolVectorArray(out BOOL pData, uint32 Offset, uint32 Count) mut => VT.GetBoolVectorArray(ref this, out pData, Offset, Count);
			public HRESULT GetIntVectorArray(out int32 pData, uint32 Offset, uint32 Count) mut => VT.GetIntVectorArray(ref this, out pData, Offset, Count);
			public HRESULT GetFloatVectorArray(out float pData, uint32 Offset, uint32 Count) mut => VT.GetFloatVectorArray(ref this, out pData, Offset, Count);

			[CRepr]
			public struct VTable : ID3D10EffectVariable.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectVectorVariable self, out BOOL pData) SetBoolVector;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectVectorVariable self, out int32 pData) SetIntVector;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectVectorVariable self, out float pData) SetFloatVector;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectVectorVariable self, out BOOL pData) GetBoolVector;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectVectorVariable self, out int32 pData) GetIntVector;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectVectorVariable self, out float pData) GetFloatVector;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectVectorVariable self, out BOOL pData, uint32 Offset, uint32 Count) SetBoolVectorArray;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectVectorVariable self, out int32 pData, uint32 Offset, uint32 Count) SetIntVectorArray;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectVectorVariable self, out float pData, uint32 Offset, uint32 Count) SetFloatVectorArray;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectVectorVariable self, out BOOL pData, uint32 Offset, uint32 Count) GetBoolVectorArray;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectVectorVariable self, out int32 pData, uint32 Offset, uint32 Count) GetIntVectorArray;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectVectorVariable self, out float pData, uint32 Offset, uint32 Count) GetFloatVectorArray;
			}
		}
		[CRepr]
		public struct ID3D10EffectMatrixVariable : ID3D10EffectVariable
		{
			public const new Guid IID = .(0x50666c24, 0xb82f, 0x4eed, 0xa1, 0x72, 0x5b, 0x6e, 0x7e, 0x85, 0x22, 0xe0);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SetMatrix(out float pData) mut => VT.SetMatrix(ref this, out pData);
			public HRESULT GetMatrix(out float pData) mut => VT.GetMatrix(ref this, out pData);
			public HRESULT SetMatrixArray(out float pData, uint32 Offset, uint32 Count) mut => VT.SetMatrixArray(ref this, out pData, Offset, Count);
			public HRESULT GetMatrixArray(out float pData, uint32 Offset, uint32 Count) mut => VT.GetMatrixArray(ref this, out pData, Offset, Count);
			public HRESULT SetMatrixTranspose(out float pData) mut => VT.SetMatrixTranspose(ref this, out pData);
			public HRESULT GetMatrixTranspose(out float pData) mut => VT.GetMatrixTranspose(ref this, out pData);
			public HRESULT SetMatrixTransposeArray(out float pData, uint32 Offset, uint32 Count) mut => VT.SetMatrixTransposeArray(ref this, out pData, Offset, Count);
			public HRESULT GetMatrixTransposeArray(out float pData, uint32 Offset, uint32 Count) mut => VT.GetMatrixTransposeArray(ref this, out pData, Offset, Count);

			[CRepr]
			public struct VTable : ID3D10EffectVariable.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectMatrixVariable self, out float pData) SetMatrix;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectMatrixVariable self, out float pData) GetMatrix;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectMatrixVariable self, out float pData, uint32 Offset, uint32 Count) SetMatrixArray;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectMatrixVariable self, out float pData, uint32 Offset, uint32 Count) GetMatrixArray;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectMatrixVariable self, out float pData) SetMatrixTranspose;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectMatrixVariable self, out float pData) GetMatrixTranspose;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectMatrixVariable self, out float pData, uint32 Offset, uint32 Count) SetMatrixTransposeArray;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectMatrixVariable self, out float pData, uint32 Offset, uint32 Count) GetMatrixTransposeArray;
			}
		}
		[CRepr]
		public struct ID3D10EffectStringVariable : ID3D10EffectVariable
		{
			public const new Guid IID = .(0x71417501, 0x8df9, 0x4e0a, 0xa7, 0x8a, 0x25, 0x5f, 0x97, 0x56, 0xba, 0xff);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetString(out PSTR ppString) mut => VT.GetString(ref this, out ppString);
			public HRESULT GetStringArray(PSTR* ppStrings, uint32 Offset, uint32 Count) mut => VT.GetStringArray(ref this, ppStrings, Offset, Count);

			[CRepr]
			public struct VTable : ID3D10EffectVariable.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectStringVariable self, out PSTR ppString) GetString;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectStringVariable self, PSTR* ppStrings, uint32 Offset, uint32 Count) GetStringArray;
			}
		}
		[CRepr]
		public struct ID3D10EffectShaderResourceVariable : ID3D10EffectVariable
		{
			public const new Guid IID = .(0xc0a7157b, 0xd872, 0x4b1d, 0x80, 0x73, 0xef, 0xc2, 0xac, 0xd4, 0xb1, 0xfc);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SetResource(ID3D10ShaderResourceView* pResource) mut => VT.SetResource(ref this, pResource);
			public HRESULT GetResource(out ID3D10ShaderResourceView* ppResource) mut => VT.GetResource(ref this, out ppResource);
			public HRESULT SetResourceArray(ID3D10ShaderResourceView** ppResources, uint32 Offset, uint32 Count) mut => VT.SetResourceArray(ref this, ppResources, Offset, Count);
			public HRESULT GetResourceArray(ID3D10ShaderResourceView** ppResources, uint32 Offset, uint32 Count) mut => VT.GetResourceArray(ref this, ppResources, Offset, Count);

			[CRepr]
			public struct VTable : ID3D10EffectVariable.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectShaderResourceVariable self, ID3D10ShaderResourceView* pResource) SetResource;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectShaderResourceVariable self, out ID3D10ShaderResourceView* ppResource) GetResource;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectShaderResourceVariable self, ID3D10ShaderResourceView** ppResources, uint32 Offset, uint32 Count) SetResourceArray;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectShaderResourceVariable self, ID3D10ShaderResourceView** ppResources, uint32 Offset, uint32 Count) GetResourceArray;
			}
		}
		[CRepr]
		public struct ID3D10EffectRenderTargetViewVariable : ID3D10EffectVariable
		{
			public const new Guid IID = .(0x28ca0cc3, 0xc2c9, 0x40bb, 0xb5, 0x7f, 0x67, 0xb7, 0x37, 0x12, 0x2b, 0x17);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SetRenderTarget(ID3D10RenderTargetView* pResource) mut => VT.SetRenderTarget(ref this, pResource);
			public HRESULT GetRenderTarget(out ID3D10RenderTargetView* ppResource) mut => VT.GetRenderTarget(ref this, out ppResource);
			public HRESULT SetRenderTargetArray(ID3D10RenderTargetView** ppResources, uint32 Offset, uint32 Count) mut => VT.SetRenderTargetArray(ref this, ppResources, Offset, Count);
			public HRESULT GetRenderTargetArray(ID3D10RenderTargetView** ppResources, uint32 Offset, uint32 Count) mut => VT.GetRenderTargetArray(ref this, ppResources, Offset, Count);

			[CRepr]
			public struct VTable : ID3D10EffectVariable.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectRenderTargetViewVariable self, ID3D10RenderTargetView* pResource) SetRenderTarget;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectRenderTargetViewVariable self, out ID3D10RenderTargetView* ppResource) GetRenderTarget;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectRenderTargetViewVariable self, ID3D10RenderTargetView** ppResources, uint32 Offset, uint32 Count) SetRenderTargetArray;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectRenderTargetViewVariable self, ID3D10RenderTargetView** ppResources, uint32 Offset, uint32 Count) GetRenderTargetArray;
			}
		}
		[CRepr]
		public struct ID3D10EffectDepthStencilViewVariable : ID3D10EffectVariable
		{
			public const new Guid IID = .(0x3e02c918, 0xcc79, 0x4985, 0xb6, 0x22, 0x2d, 0x92, 0xad, 0x70, 0x16, 0x23);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SetDepthStencil(ID3D10DepthStencilView* pResource) mut => VT.SetDepthStencil(ref this, pResource);
			public HRESULT GetDepthStencil(out ID3D10DepthStencilView* ppResource) mut => VT.GetDepthStencil(ref this, out ppResource);
			public HRESULT SetDepthStencilArray(ID3D10DepthStencilView** ppResources, uint32 Offset, uint32 Count) mut => VT.SetDepthStencilArray(ref this, ppResources, Offset, Count);
			public HRESULT GetDepthStencilArray(ID3D10DepthStencilView** ppResources, uint32 Offset, uint32 Count) mut => VT.GetDepthStencilArray(ref this, ppResources, Offset, Count);

			[CRepr]
			public struct VTable : ID3D10EffectVariable.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectDepthStencilViewVariable self, ID3D10DepthStencilView* pResource) SetDepthStencil;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectDepthStencilViewVariable self, out ID3D10DepthStencilView* ppResource) GetDepthStencil;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectDepthStencilViewVariable self, ID3D10DepthStencilView** ppResources, uint32 Offset, uint32 Count) SetDepthStencilArray;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectDepthStencilViewVariable self, ID3D10DepthStencilView** ppResources, uint32 Offset, uint32 Count) GetDepthStencilArray;
			}
		}
		[CRepr]
		public struct ID3D10EffectConstantBuffer : ID3D10EffectVariable
		{
			public const new Guid IID = .(0x56648f4d, 0xcc8b, 0x4444, 0xa5, 0xad, 0xb5, 0xa3, 0xd7, 0x6e, 0x91, 0xb3);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT SetConstantBuffer(ID3D10Buffer* pConstantBuffer) mut => VT.SetConstantBuffer(ref this, pConstantBuffer);
			public HRESULT GetConstantBuffer(out ID3D10Buffer* ppConstantBuffer) mut => VT.GetConstantBuffer(ref this, out ppConstantBuffer);
			public HRESULT SetTextureBuffer(ID3D10ShaderResourceView* pTextureBuffer) mut => VT.SetTextureBuffer(ref this, pTextureBuffer);
			public HRESULT GetTextureBuffer(out ID3D10ShaderResourceView* ppTextureBuffer) mut => VT.GetTextureBuffer(ref this, out ppTextureBuffer);

			[CRepr]
			public struct VTable : ID3D10EffectVariable.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectConstantBuffer self, ID3D10Buffer* pConstantBuffer) SetConstantBuffer;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectConstantBuffer self, out ID3D10Buffer* ppConstantBuffer) GetConstantBuffer;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectConstantBuffer self, ID3D10ShaderResourceView* pTextureBuffer) SetTextureBuffer;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectConstantBuffer self, out ID3D10ShaderResourceView* ppTextureBuffer) GetTextureBuffer;
			}
		}
		[CRepr]
		public struct ID3D10EffectShaderVariable : ID3D10EffectVariable
		{
			public const new Guid IID = .(0x80849279, 0xc799, 0x4797, 0x8c, 0x33, 0x04, 0x07, 0xa0, 0x7d, 0x9e, 0x06);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetShaderDesc(uint32 ShaderIndex, out D3D10_EFFECT_SHADER_DESC pDesc) mut => VT.GetShaderDesc(ref this, ShaderIndex, out pDesc);
			public HRESULT GetVertexShader(uint32 ShaderIndex, out ID3D10VertexShader* ppVS) mut => VT.GetVertexShader(ref this, ShaderIndex, out ppVS);
			public HRESULT GetGeometryShader(uint32 ShaderIndex, out ID3D10GeometryShader* ppGS) mut => VT.GetGeometryShader(ref this, ShaderIndex, out ppGS);
			public HRESULT GetPixelShader(uint32 ShaderIndex, out ID3D10PixelShader* ppPS) mut => VT.GetPixelShader(ref this, ShaderIndex, out ppPS);
			public HRESULT GetInputSignatureElementDesc(uint32 ShaderIndex, uint32 Element, out D3D10_SIGNATURE_PARAMETER_DESC pDesc) mut => VT.GetInputSignatureElementDesc(ref this, ShaderIndex, Element, out pDesc);
			public HRESULT GetOutputSignatureElementDesc(uint32 ShaderIndex, uint32 Element, out D3D10_SIGNATURE_PARAMETER_DESC pDesc) mut => VT.GetOutputSignatureElementDesc(ref this, ShaderIndex, Element, out pDesc);

			[CRepr]
			public struct VTable : ID3D10EffectVariable.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectShaderVariable self, uint32 ShaderIndex, out D3D10_EFFECT_SHADER_DESC pDesc) GetShaderDesc;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectShaderVariable self, uint32 ShaderIndex, out ID3D10VertexShader* ppVS) GetVertexShader;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectShaderVariable self, uint32 ShaderIndex, out ID3D10GeometryShader* ppGS) GetGeometryShader;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectShaderVariable self, uint32 ShaderIndex, out ID3D10PixelShader* ppPS) GetPixelShader;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectShaderVariable self, uint32 ShaderIndex, uint32 Element, out D3D10_SIGNATURE_PARAMETER_DESC pDesc) GetInputSignatureElementDesc;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectShaderVariable self, uint32 ShaderIndex, uint32 Element, out D3D10_SIGNATURE_PARAMETER_DESC pDesc) GetOutputSignatureElementDesc;
			}
		}
		[CRepr]
		public struct ID3D10EffectBlendVariable : ID3D10EffectVariable
		{
			public const new Guid IID = .(0x1fcd2294, 0xdf6d, 0x4eae, 0x86, 0xb3, 0x0e, 0x91, 0x60, 0xcf, 0xb0, 0x7b);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetBlendState(uint32 Index, out ID3D10BlendState* ppBlendState) mut => VT.GetBlendState(ref this, Index, out ppBlendState);
			public HRESULT GetBackingStore(uint32 Index, out D3D10_BLEND_DESC pBlendDesc) mut => VT.GetBackingStore(ref this, Index, out pBlendDesc);

			[CRepr]
			public struct VTable : ID3D10EffectVariable.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectBlendVariable self, uint32 Index, out ID3D10BlendState* ppBlendState) GetBlendState;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectBlendVariable self, uint32 Index, out D3D10_BLEND_DESC pBlendDesc) GetBackingStore;
			}
		}
		[CRepr]
		public struct ID3D10EffectDepthStencilVariable : ID3D10EffectVariable
		{
			public const new Guid IID = .(0xaf482368, 0x330a, 0x46a5, 0x9a, 0x5c, 0x01, 0xc7, 0x1a, 0xf2, 0x4c, 0x8d);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetDepthStencilState(uint32 Index, out ID3D10DepthStencilState* ppDepthStencilState) mut => VT.GetDepthStencilState(ref this, Index, out ppDepthStencilState);
			public HRESULT GetBackingStore(uint32 Index, out D3D10_DEPTH_STENCIL_DESC pDepthStencilDesc) mut => VT.GetBackingStore(ref this, Index, out pDepthStencilDesc);

			[CRepr]
			public struct VTable : ID3D10EffectVariable.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectDepthStencilVariable self, uint32 Index, out ID3D10DepthStencilState* ppDepthStencilState) GetDepthStencilState;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectDepthStencilVariable self, uint32 Index, out D3D10_DEPTH_STENCIL_DESC pDepthStencilDesc) GetBackingStore;
			}
		}
		[CRepr]
		public struct ID3D10EffectRasterizerVariable : ID3D10EffectVariable
		{
			public const new Guid IID = .(0x21af9f0e, 0x4d94, 0x4ea9, 0x97, 0x85, 0x2c, 0xb7, 0x6b, 0x8c, 0x0b, 0x34);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetRasterizerState(uint32 Index, out ID3D10RasterizerState* ppRasterizerState) mut => VT.GetRasterizerState(ref this, Index, out ppRasterizerState);
			public HRESULT GetBackingStore(uint32 Index, out D3D10_RASTERIZER_DESC pRasterizerDesc) mut => VT.GetBackingStore(ref this, Index, out pRasterizerDesc);

			[CRepr]
			public struct VTable : ID3D10EffectVariable.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectRasterizerVariable self, uint32 Index, out ID3D10RasterizerState* ppRasterizerState) GetRasterizerState;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectRasterizerVariable self, uint32 Index, out D3D10_RASTERIZER_DESC pRasterizerDesc) GetBackingStore;
			}
		}
		[CRepr]
		public struct ID3D10EffectSamplerVariable : ID3D10EffectVariable
		{
			public const new Guid IID = .(0x6530d5c7, 0x07e9, 0x4271, 0xa4, 0x18, 0xe7, 0xce, 0x4b, 0xd1, 0xe4, 0x80);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetSampler(uint32 Index, out ID3D10SamplerState* ppSampler) mut => VT.GetSampler(ref this, Index, out ppSampler);
			public HRESULT GetBackingStore(uint32 Index, out D3D10_SAMPLER_DESC pSamplerDesc) mut => VT.GetBackingStore(ref this, Index, out pSamplerDesc);

			[CRepr]
			public struct VTable : ID3D10EffectVariable.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectSamplerVariable self, uint32 Index, out ID3D10SamplerState* ppSampler) GetSampler;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectSamplerVariable self, uint32 Index, out D3D10_SAMPLER_DESC pSamplerDesc) GetBackingStore;
			}
		}
		[CRepr]
		public struct ID3D10EffectPass
		{
			public const new Guid IID = .(0x5cfbeb89, 0x1a06, 0x46e0, 0xb2, 0x82, 0xe3, 0xf9, 0xbf, 0xa3, 0x6a, 0x54);
			
			protected VTable* vt;
			public new VTable* VT { get => (.)vt; }
			
			public BOOL IsValid() mut => VT.IsValid(ref this);
			public HRESULT GetDesc(out D3D10_PASS_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);
			public HRESULT GetVertexShaderDesc(out D3D10_PASS_SHADER_DESC pDesc) mut => VT.GetVertexShaderDesc(ref this, out pDesc);
			public HRESULT GetGeometryShaderDesc(out D3D10_PASS_SHADER_DESC pDesc) mut => VT.GetGeometryShaderDesc(ref this, out pDesc);
			public HRESULT GetPixelShaderDesc(out D3D10_PASS_SHADER_DESC pDesc) mut => VT.GetPixelShaderDesc(ref this, out pDesc);
			public ID3D10EffectVariable* GetAnnotationByIndex(uint32 Index) mut => VT.GetAnnotationByIndex(ref this, Index);
			public ID3D10EffectVariable* GetAnnotationByName(PSTR Name) mut => VT.GetAnnotationByName(ref this, Name);
			public HRESULT Apply(uint32 Flags) mut => VT.Apply(ref this, Flags);
			public HRESULT ComputeStateBlockMask(out D3D10_STATE_BLOCK_MASK pStateBlockMask) mut => VT.ComputeStateBlockMask(ref this, out pStateBlockMask);

			[CRepr]
			public struct VTable
			{
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D10EffectPass self) IsValid;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectPass self, out D3D10_PASS_DESC pDesc) GetDesc;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectPass self, out D3D10_PASS_SHADER_DESC pDesc) GetVertexShaderDesc;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectPass self, out D3D10_PASS_SHADER_DESC pDesc) GetGeometryShaderDesc;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectPass self, out D3D10_PASS_SHADER_DESC pDesc) GetPixelShaderDesc;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectVariable*(ref ID3D10EffectPass self, uint32 Index) GetAnnotationByIndex;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectVariable*(ref ID3D10EffectPass self, PSTR Name) GetAnnotationByName;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectPass self, uint32 Flags) Apply;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectPass self, out D3D10_STATE_BLOCK_MASK pStateBlockMask) ComputeStateBlockMask;
			}
		}
		[CRepr]
		public struct ID3D10EffectTechnique
		{
			public const new Guid IID = .(0xdb122ce8, 0xd1c9, 0x4292, 0xb2, 0x37, 0x24, 0xed, 0x3d, 0xe8, 0xb1, 0x75);
			
			protected VTable* vt;
			public new VTable* VT { get => (.)vt; }
			
			public BOOL IsValid() mut => VT.IsValid(ref this);
			public HRESULT GetDesc(out D3D10_TECHNIQUE_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);
			public ID3D10EffectVariable* GetAnnotationByIndex(uint32 Index) mut => VT.GetAnnotationByIndex(ref this, Index);
			public ID3D10EffectVariable* GetAnnotationByName(PSTR Name) mut => VT.GetAnnotationByName(ref this, Name);
			public ID3D10EffectPass* GetPassByIndex(uint32 Index) mut => VT.GetPassByIndex(ref this, Index);
			public ID3D10EffectPass* GetPassByName(PSTR Name) mut => VT.GetPassByName(ref this, Name);
			public HRESULT ComputeStateBlockMask(out D3D10_STATE_BLOCK_MASK pStateBlockMask) mut => VT.ComputeStateBlockMask(ref this, out pStateBlockMask);

			[CRepr]
			public struct VTable
			{
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D10EffectTechnique self) IsValid;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectTechnique self, out D3D10_TECHNIQUE_DESC pDesc) GetDesc;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectVariable*(ref ID3D10EffectTechnique self, uint32 Index) GetAnnotationByIndex;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectVariable*(ref ID3D10EffectTechnique self, PSTR Name) GetAnnotationByName;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectPass*(ref ID3D10EffectTechnique self, uint32 Index) GetPassByIndex;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectPass*(ref ID3D10EffectTechnique self, PSTR Name) GetPassByName;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10EffectTechnique self, out D3D10_STATE_BLOCK_MASK pStateBlockMask) ComputeStateBlockMask;
			}
		}
		[CRepr]
		public struct ID3D10Effect : IUnknown
		{
			public const new Guid IID = .(0x51b0ca8b, 0xec0b, 0x4519, 0x87, 0x0d, 0x8e, 0xe1, 0xcb, 0x50, 0x17, 0xc7);
			
			public new VTable* VT { get => (.)vt; }
			
			public BOOL IsValid() mut => VT.IsValid(ref this);
			public BOOL IsPool() mut => VT.IsPool(ref this);
			public HRESULT GetDevice(out ID3D10Device* ppDevice) mut => VT.GetDevice(ref this, out ppDevice);
			public HRESULT GetDesc(out D3D10_EFFECT_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);
			public ID3D10EffectConstantBuffer* GetConstantBufferByIndex(uint32 Index) mut => VT.GetConstantBufferByIndex(ref this, Index);
			public ID3D10EffectConstantBuffer* GetConstantBufferByName(PSTR Name) mut => VT.GetConstantBufferByName(ref this, Name);
			public ID3D10EffectVariable* GetVariableByIndex(uint32 Index) mut => VT.GetVariableByIndex(ref this, Index);
			public ID3D10EffectVariable* GetVariableByName(PSTR Name) mut => VT.GetVariableByName(ref this, Name);
			public ID3D10EffectVariable* GetVariableBySemantic(PSTR Semantic) mut => VT.GetVariableBySemantic(ref this, Semantic);
			public ID3D10EffectTechnique* GetTechniqueByIndex(uint32 Index) mut => VT.GetTechniqueByIndex(ref this, Index);
			public ID3D10EffectTechnique* GetTechniqueByName(PSTR Name) mut => VT.GetTechniqueByName(ref this, Name);
			public HRESULT Optimize() mut => VT.Optimize(ref this);
			public BOOL IsOptimized() mut => VT.IsOptimized(ref this);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D10Effect self) IsValid;
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D10Effect self) IsPool;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Effect self, out ID3D10Device* ppDevice) GetDevice;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Effect self, out D3D10_EFFECT_DESC pDesc) GetDesc;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectConstantBuffer*(ref ID3D10Effect self, uint32 Index) GetConstantBufferByIndex;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectConstantBuffer*(ref ID3D10Effect self, PSTR Name) GetConstantBufferByName;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectVariable*(ref ID3D10Effect self, uint32 Index) GetVariableByIndex;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectVariable*(ref ID3D10Effect self, PSTR Name) GetVariableByName;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectVariable*(ref ID3D10Effect self, PSTR Semantic) GetVariableBySemantic;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectTechnique*(ref ID3D10Effect self, uint32 Index) GetTechniqueByIndex;
				public new function [CallingConvention(.Stdcall)] ID3D10EffectTechnique*(ref ID3D10Effect self, PSTR Name) GetTechniqueByName;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Effect self) Optimize;
				public new function [CallingConvention(.Stdcall)] BOOL(ref ID3D10Effect self) IsOptimized;
			}
		}
		[CRepr]
		public struct ID3D10EffectPool : IUnknown
		{
			public const new Guid IID = .(0x9537ab04, 0x3250, 0x412e, 0x82, 0x13, 0xfc, 0xd2, 0xf8, 0x67, 0x79, 0x33);
			
			public new VTable* VT { get => (.)vt; }
			
			public ID3D10Effect* AsEffect() mut => VT.AsEffect(ref this);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] ID3D10Effect*(ref ID3D10EffectPool self) AsEffect;
			}
		}
		[CRepr]
		public struct ID3D10BlendState1 : ID3D10BlendState
		{
			public const new Guid IID = .(0xedad8d99, 0x8a35, 0x4d6d, 0x85, 0x66, 0x2e, 0xa2, 0x76, 0xcd, 0xe1, 0x61);
			
			public new VTable* VT { get => (.)vt; }
			
			public void GetDesc1(out D3D10_BLEND_DESC1 pDesc) mut => VT.GetDesc1(ref this, out pDesc);

			[CRepr]
			public struct VTable : ID3D10BlendState.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10BlendState1 self, out D3D10_BLEND_DESC1 pDesc) GetDesc1;
			}
		}
		[CRepr]
		public struct ID3D10ShaderResourceView1 : ID3D10ShaderResourceView
		{
			public const new Guid IID = .(0x9b7e4c87, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public void GetDesc1(out D3D10_SHADER_RESOURCE_VIEW_DESC1 pDesc) mut => VT.GetDesc1(ref this, out pDesc);

			[CRepr]
			public struct VTable : ID3D10ShaderResourceView.VTable
			{
				public new function [CallingConvention(.Stdcall)] void(ref ID3D10ShaderResourceView1 self, out D3D10_SHADER_RESOURCE_VIEW_DESC1 pDesc) GetDesc1;
			}
		}
		[CRepr]
		public struct ID3D10Device1 : ID3D10Device
		{
			public const new Guid IID = .(0x9b7e4c8f, 0x342c, 0x4106, 0xa1, 0x9f, 0x4f, 0x27, 0x04, 0xf6, 0x89, 0xf0);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT CreateShaderResourceView1(ref ID3D10Resource pResource, D3D10_SHADER_RESOURCE_VIEW_DESC1* pDesc, ID3D10ShaderResourceView1** ppSRView) mut => VT.CreateShaderResourceView1(ref this, ref pResource, pDesc, ppSRView);
			public HRESULT CreateBlendState1(in D3D10_BLEND_DESC1 pBlendStateDesc, ID3D10BlendState1** ppBlendState) mut => VT.CreateBlendState1(ref this, pBlendStateDesc, ppBlendState);
			public D3D10_FEATURE_LEVEL1 GetFeatureLevel() mut => VT.GetFeatureLevel(ref this);

			[CRepr]
			public struct VTable : ID3D10Device.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device1 self, ref ID3D10Resource pResource, D3D10_SHADER_RESOURCE_VIEW_DESC1* pDesc, ID3D10ShaderResourceView1** ppSRView) CreateShaderResourceView1;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10Device1 self, in D3D10_BLEND_DESC1 pBlendStateDesc, ID3D10BlendState1** ppBlendState) CreateBlendState1;
				public new function [CallingConvention(.Stdcall)] D3D10_FEATURE_LEVEL1(ref ID3D10Device1 self) GetFeatureLevel;
			}
		}
		[CRepr]
		public struct ID3D10ShaderReflection1 : IUnknown
		{
			public const new Guid IID = .(0xc3457783, 0xa846, 0x47ce, 0x95, 0x20, 0xce, 0xa6, 0xf6, 0x6e, 0x74, 0x47);
			
			public new VTable* VT { get => (.)vt; }
			
			public HRESULT GetDesc(out D3D10_SHADER_DESC pDesc) mut => VT.GetDesc(ref this, out pDesc);
			public ID3D10ShaderReflectionConstantBuffer* GetConstantBufferByIndex(uint32 Index) mut => VT.GetConstantBufferByIndex(ref this, Index);
			public ID3D10ShaderReflectionConstantBuffer* GetConstantBufferByName(PSTR Name) mut => VT.GetConstantBufferByName(ref this, Name);
			public HRESULT GetResourceBindingDesc(uint32 ResourceIndex, out D3D10_SHADER_INPUT_BIND_DESC pDesc) mut => VT.GetResourceBindingDesc(ref this, ResourceIndex, out pDesc);
			public HRESULT GetInputParameterDesc(uint32 ParameterIndex, out D3D10_SIGNATURE_PARAMETER_DESC pDesc) mut => VT.GetInputParameterDesc(ref this, ParameterIndex, out pDesc);
			public HRESULT GetOutputParameterDesc(uint32 ParameterIndex, out D3D10_SIGNATURE_PARAMETER_DESC pDesc) mut => VT.GetOutputParameterDesc(ref this, ParameterIndex, out pDesc);
			public ID3D10ShaderReflectionVariable* GetVariableByName(PSTR Name) mut => VT.GetVariableByName(ref this, Name);
			public HRESULT GetResourceBindingDescByName(PSTR Name, out D3D10_SHADER_INPUT_BIND_DESC pDesc) mut => VT.GetResourceBindingDescByName(ref this, Name, out pDesc);
			public HRESULT GetMovInstructionCount(out uint32 pCount) mut => VT.GetMovInstructionCount(ref this, out pCount);
			public HRESULT GetMovcInstructionCount(out uint32 pCount) mut => VT.GetMovcInstructionCount(ref this, out pCount);
			public HRESULT GetConversionInstructionCount(out uint32 pCount) mut => VT.GetConversionInstructionCount(ref this, out pCount);
			public HRESULT GetBitwiseInstructionCount(out uint32 pCount) mut => VT.GetBitwiseInstructionCount(ref this, out pCount);
			public HRESULT GetGSInputPrimitive(out D3D_PRIMITIVE pPrim) mut => VT.GetGSInputPrimitive(ref this, out pPrim);
			public HRESULT IsLevel9Shader(out BOOL pbLevel9Shader) mut => VT.IsLevel9Shader(ref this, out pbLevel9Shader);
			public HRESULT IsSampleFrequencyShader(out BOOL pbSampleFrequency) mut => VT.IsSampleFrequencyShader(ref this, out pbSampleFrequency);

			[CRepr]
			public struct VTable : IUnknown.VTable
			{
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflection1 self, out D3D10_SHADER_DESC pDesc) GetDesc;
				public new function [CallingConvention(.Stdcall)] ID3D10ShaderReflectionConstantBuffer*(ref ID3D10ShaderReflection1 self, uint32 Index) GetConstantBufferByIndex;
				public new function [CallingConvention(.Stdcall)] ID3D10ShaderReflectionConstantBuffer*(ref ID3D10ShaderReflection1 self, PSTR Name) GetConstantBufferByName;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflection1 self, uint32 ResourceIndex, out D3D10_SHADER_INPUT_BIND_DESC pDesc) GetResourceBindingDesc;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflection1 self, uint32 ParameterIndex, out D3D10_SIGNATURE_PARAMETER_DESC pDesc) GetInputParameterDesc;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflection1 self, uint32 ParameterIndex, out D3D10_SIGNATURE_PARAMETER_DESC pDesc) GetOutputParameterDesc;
				public new function [CallingConvention(.Stdcall)] ID3D10ShaderReflectionVariable*(ref ID3D10ShaderReflection1 self, PSTR Name) GetVariableByName;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflection1 self, PSTR Name, out D3D10_SHADER_INPUT_BIND_DESC pDesc) GetResourceBindingDescByName;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflection1 self, out uint32 pCount) GetMovInstructionCount;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflection1 self, out uint32 pCount) GetMovcInstructionCount;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflection1 self, out uint32 pCount) GetConversionInstructionCount;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflection1 self, out uint32 pCount) GetBitwiseInstructionCount;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflection1 self, out D3D_PRIMITIVE pPrim) GetGSInputPrimitive;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflection1 self, out BOOL pbLevel9Shader) IsLevel9Shader;
				public new function [CallingConvention(.Stdcall)] HRESULT(ref ID3D10ShaderReflection1 self, out BOOL pbSampleFrequency) IsSampleFrequencyShader;
			}
		}
		
		// --- Functions ---
		
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10CreateDevice(IDXGIAdapter* pAdapter, D3D10_DRIVER_TYPE DriverType, HINSTANCE Software, uint32 Flags, uint32 SDKVersion, ID3D10Device** ppDevice);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10CreateDeviceAndSwapChain(IDXGIAdapter* pAdapter, D3D10_DRIVER_TYPE DriverType, HINSTANCE Software, uint32 Flags, uint32 SDKVersion, DXGI_SWAP_CHAIN_DESC* pSwapChainDesc, IDXGISwapChain** ppSwapChain, ID3D10Device** ppDevice);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10CreateBlob(uint NumBytes, out ID3DBlob* ppBuffer);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10CompileShader(PSTR pSrcData, uint SrcDataSize, PSTR pFileName, D3D_SHADER_MACRO* pDefines, ID3DInclude* pInclude, PSTR pFunctionName, PSTR pProfile, uint32 Flags, out ID3DBlob* ppShader, ID3DBlob** ppErrorMsgs);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10DisassembleShader(void* pShader, uint BytecodeLength, BOOL EnableColorCode, PSTR pComments, out ID3DBlob* ppDisassembly);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern PSTR D3D10GetPixelShaderProfile(ref ID3D10Device pDevice);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern PSTR D3D10GetVertexShaderProfile(ref ID3D10Device pDevice);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern PSTR D3D10GetGeometryShaderProfile(ref ID3D10Device pDevice);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10ReflectShader(void* pShaderBytecode, uint BytecodeLength, out ID3D10ShaderReflection* ppReflector);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10PreprocessShader(PSTR pSrcData, uint SrcDataSize, PSTR pFileName, D3D_SHADER_MACRO* pDefines, ID3DInclude* pInclude, out ID3DBlob* ppShaderText, ID3DBlob** ppErrorMsgs);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10GetInputSignatureBlob(void* pShaderBytecode, uint BytecodeLength, out ID3DBlob* ppSignatureBlob);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10GetOutputSignatureBlob(void* pShaderBytecode, uint BytecodeLength, out ID3DBlob* ppSignatureBlob);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10GetInputAndOutputSignatureBlob(void* pShaderBytecode, uint BytecodeLength, out ID3DBlob* ppSignatureBlob);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10GetShaderDebugInfo(void* pShaderBytecode, uint BytecodeLength, out ID3DBlob* ppDebugInfo);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10StateBlockMaskUnion(ref D3D10_STATE_BLOCK_MASK pA, ref D3D10_STATE_BLOCK_MASK pB, out D3D10_STATE_BLOCK_MASK pResult);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10StateBlockMaskIntersect(ref D3D10_STATE_BLOCK_MASK pA, ref D3D10_STATE_BLOCK_MASK pB, out D3D10_STATE_BLOCK_MASK pResult);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10StateBlockMaskDifference(ref D3D10_STATE_BLOCK_MASK pA, ref D3D10_STATE_BLOCK_MASK pB, out D3D10_STATE_BLOCK_MASK pResult);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10StateBlockMaskEnableCapture(out D3D10_STATE_BLOCK_MASK pMask, D3D10_DEVICE_STATE_TYPES StateType, uint32 RangeStart, uint32 RangeLength);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10StateBlockMaskDisableCapture(out D3D10_STATE_BLOCK_MASK pMask, D3D10_DEVICE_STATE_TYPES StateType, uint32 RangeStart, uint32 RangeLength);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10StateBlockMaskEnableAll(out D3D10_STATE_BLOCK_MASK pMask);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10StateBlockMaskDisableAll(out D3D10_STATE_BLOCK_MASK pMask);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern BOOL D3D10StateBlockMaskGetSetting(ref D3D10_STATE_BLOCK_MASK pMask, D3D10_DEVICE_STATE_TYPES StateType, uint32 Entry);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10CreateStateBlock(ref ID3D10Device pDevice, ref D3D10_STATE_BLOCK_MASK pStateBlockMask, out ID3D10StateBlock* ppStateBlock);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10CompileEffectFromMemory(void* pData, uint DataLength, PSTR pSrcFileName, D3D_SHADER_MACRO* pDefines, ID3DInclude* pInclude, uint32 HLSLFlags, uint32 FXFlags, out ID3DBlob* ppCompiledEffect, ID3DBlob** ppErrors);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10CreateEffectFromMemory(void* pData, uint DataLength, uint32 FXFlags, ref ID3D10Device pDevice, ID3D10EffectPool* pEffectPool, out ID3D10Effect* ppEffect);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10CreateEffectPoolFromMemory(void* pData, uint DataLength, uint32 FXFlags, ref ID3D10Device pDevice, out ID3D10EffectPool* ppEffectPool);
		[Import("d3d10.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10DisassembleEffect(ref ID3D10Effect pEffect, BOOL EnableColorCode, out ID3DBlob* ppDisassembly);
		[Import("d3d10_1.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10CreateDevice1(IDXGIAdapter* pAdapter, D3D10_DRIVER_TYPE DriverType, HINSTANCE Software, uint32 Flags, D3D10_FEATURE_LEVEL1 HardwareLevel, uint32 SDKVersion, ID3D10Device1** ppDevice);
		[Import("d3d10_1.dll"), CLink, CallingConvention(.Stdcall)]
		public static extern HRESULT D3D10CreateDeviceAndSwapChain1(IDXGIAdapter* pAdapter, D3D10_DRIVER_TYPE DriverType, HINSTANCE Software, uint32 Flags, D3D10_FEATURE_LEVEL1 HardwareLevel, uint32 SDKVersion, DXGI_SWAP_CHAIN_DESC* pSwapChainDesc, IDXGISwapChain** ppSwapChain, ID3D10Device1** ppDevice);
	}
}
