1 module directx.d3d11; 2 /*------------------------------------------------------------------------------------- 3 * 4 * Copyright (c) Microsoft Corporation 5 * 6 *-------------------------------------------------------------------------------------*/ 7 8 version(Windows): 9 10 public import directx.dxgi; 11 public import directx.d3dcommon; 12 13 enum D3D11_16BIT_INDEX_STRIP_CUT_VALUE = ( 0xffff ); 14 enum D3D11_32BIT_INDEX_STRIP_CUT_VALUE = ( 0xffffffff ); 15 enum D3D11_8BIT_INDEX_STRIP_CUT_VALUE = ( 0xff ); 16 enum D3D11_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT = ( 9 ); 17 enum D3D11_CLIP_OR_CULL_DISTANCE_COUNT = ( 8 ); 18 enum D3D11_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT = ( 2 ); 19 enum D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT = ( 14 ); 20 enum D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS = ( 4 ); 21 enum D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT = ( 32 ); 22 enum D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT = ( 15 ); 23 enum D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS = ( 4 ); 24 enum D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT = ( 15 ); 25 enum D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST = ( 1 ); 26 enum D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS = ( 1 ); 27 enum D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT = ( 64 ); 28 enum D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS = ( 4 ); 29 enum D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT = ( 1 ); 30 enum D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = ( 1 ); 31 enum D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS = ( 1 ); 32 enum D3D11_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT = ( 32 ); 33 enum D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS = ( 1 ); 34 enum D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT = ( 128 ); 35 enum D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST = ( 1 ); 36 enum D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS = ( 1 ); 37 enum D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT = ( 128 ); 38 enum D3D11_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS = ( 1 ); 39 enum D3D11_COMMONSHADER_SAMPLER_REGISTER_COUNT = ( 16 ); 40 enum D3D11_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST = ( 1 ); 41 enum D3D11_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS = ( 1 ); 42 enum D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT = ( 16 ); 43 enum D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT = ( 32 ); 44 enum D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENTS = ( 4 ); 45 enum D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 46 enum D3D11_COMMONSHADER_TEMP_REGISTER_COUNT = ( 4096 ); 47 enum D3D11_COMMONSHADER_TEMP_REGISTER_READS_PER_INST = ( 3 ); 48 enum D3D11_COMMONSHADER_TEMP_REGISTER_READ_PORTS = ( 3 ); 49 enum D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX = ( 10 ); 50 enum D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN = ( -10 ); 51 enum D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE = ( -8 ); 52 enum D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE = ( 7 ); 53 enum D3D11_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 256 ); 54 enum D3D11_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP = ( 64 ); 55 enum D3D11_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 240 ); 56 enum D3D11_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP = ( 68 ); 57 enum D3D11_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 224 ); 58 enum D3D11_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP = ( 72 ); 59 enum D3D11_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 208 ); 60 enum D3D11_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP = ( 76 ); 61 enum D3D11_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 192 ); 62 enum D3D11_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP = ( 84 ); 63 enum D3D11_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 176 ); 64 enum D3D11_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP = ( 92 ); 65 enum D3D11_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 160 ); 66 enum D3D11_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP = ( 100 ); 67 enum D3D11_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 144 ); 68 enum D3D11_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP = ( 112 ); 69 enum D3D11_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 128 ); 70 enum D3D11_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP = ( 128 ); 71 enum D3D11_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 112 ); 72 enum D3D11_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP = ( 144 ); 73 enum D3D11_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 96 ); 74 enum D3D11_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP = ( 168 ); 75 enum D3D11_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 80 ); 76 enum D3D11_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP = ( 204 ); 77 enum D3D11_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 64 ); 78 enum D3D11_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP = ( 256 ); 79 enum D3D11_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 48 ); 80 enum D3D11_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP = ( 340 ); 81 enum D3D11_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 32 ); 82 enum D3D11_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP = ( 512 ); 83 enum D3D11_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = ( 16 ); 84 enum D3D11_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP = ( 768 ); 85 enum D3D11_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION = ( 1 ); 86 enum D3D11_CS_4_X_RAW_UAV_BYTE_ALIGNMENT = ( 256 ); 87 enum D3D11_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP = ( 768 ); 88 enum D3D11_CS_4_X_THREAD_GROUP_MAX_X = ( 768 ); 89 enum D3D11_CS_4_X_THREAD_GROUP_MAX_Y = ( 768 ); 90 enum D3D11_CS_4_X_UAV_REGISTER_COUNT = ( 1 ); 91 enum D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION = ( 65535 ); 92 enum D3D11_CS_TGSM_REGISTER_COUNT = ( 8192 ); 93 enum D3D11_CS_TGSM_REGISTER_READS_PER_INST = ( 1 ); 94 enum D3D11_CS_TGSM_RESOURCE_REGISTER_COMPONENTS = ( 1 ); 95 enum D3D11_CS_TGSM_RESOURCE_REGISTER_READ_PORTS = ( 1 ); 96 enum D3D11_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP = ( 1024 ); 97 enum D3D11_CS_THREAD_GROUP_MAX_X = ( 1024 ); 98 enum D3D11_CS_THREAD_GROUP_MAX_Y = ( 1024 ); 99 enum D3D11_CS_THREAD_GROUP_MAX_Z = ( 64 ); 100 enum D3D11_CS_THREAD_GROUP_MIN_X = ( 1 ); 101 enum D3D11_CS_THREAD_GROUP_MIN_Y = ( 1 ); 102 enum D3D11_CS_THREAD_GROUP_MIN_Z = ( 1 ); 103 enum D3D11_CS_THREAD_LOCAL_TEMP_REGISTER_POOL = ( 16384 ); 104 enum D3D11_DEFAULT_BLEND_FACTOR_ALPHA = ( 1.0f ); 105 enum D3D11_DEFAULT_BLEND_FACTOR_BLUE = ( 1.0f ); 106 enum D3D11_DEFAULT_BLEND_FACTOR_GREEN = ( 1.0f ); 107 enum D3D11_DEFAULT_BLEND_FACTOR_RED = ( 1.0f ); 108 enum D3D11_DEFAULT_BORDER_COLOR_COMPONENT = ( 0.0f ); 109 enum D3D11_DEFAULT_DEPTH_BIAS = ( 0 ); 110 enum D3D11_DEFAULT_DEPTH_BIAS_CLAMP = ( 0.0f ); 111 enum D3D11_DEFAULT_MAX_ANISOTROPY = ( 16 ); 112 enum D3D11_DEFAULT_MIP_LOD_BIAS = ( 0.0f ); 113 enum D3D11_DEFAULT_RENDER_TARGET_ARRAY_INDEX = ( 0 ); 114 enum D3D11_DEFAULT_SAMPLE_MASK = ( 0xffffffff ); 115 enum D3D11_DEFAULT_SCISSOR_ENDX = ( 0 ); 116 enum D3D11_DEFAULT_SCISSOR_ENDY = ( 0 ); 117 enum D3D11_DEFAULT_SCISSOR_STARTX = ( 0 ); 118 enum D3D11_DEFAULT_SCISSOR_STARTY = ( 0 ); 119 enum D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS = ( 0.0f ); 120 enum D3D11_DEFAULT_STENCIL_READ_MASK = ( 0xff ); 121 enum D3D11_DEFAULT_STENCIL_REFERENCE = ( 0 ); 122 enum D3D11_DEFAULT_STENCIL_WRITE_MASK = ( 0xff ); 123 enum D3D11_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX = ( 0 ); 124 enum D3D11_DEFAULT_VIEWPORT_HEIGHT = ( 0 ); 125 enum D3D11_DEFAULT_VIEWPORT_MAX_DEPTH = ( 0.0f ); 126 enum D3D11_DEFAULT_VIEWPORT_MIN_DEPTH = ( 0.0f ); 127 enum D3D11_DEFAULT_VIEWPORT_TOPLEFTX = ( 0 ); 128 enum D3D11_DEFAULT_VIEWPORT_TOPLEFTY = ( 0 ); 129 enum D3D11_DEFAULT_VIEWPORT_WIDTH = ( 0 ); 130 enum D3D11_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS = ( 3968 ); 131 enum D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS = ( 4 ); 132 enum D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 133 enum D3D11_DS_INPUT_CONTROL_POINT_REGISTER_COUNT = ( 32 ); 134 enum D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST = ( 2 ); 135 enum D3D11_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS = ( 1 ); 136 enum D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS = ( 3 ); 137 enum D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 138 enum D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT = ( 1 ); 139 enum D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST = ( 2 ); 140 enum D3D11_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS = ( 1 ); 141 enum D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS = ( 4 ); 142 enum D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 143 enum D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT = ( 32 ); 144 enum D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST = ( 2 ); 145 enum D3D11_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS = ( 1 ); 146 enum D3D11_DS_OUTPUT_REGISTER_COMPONENTS = ( 4 ); 147 enum D3D11_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 148 enum D3D11_DS_OUTPUT_REGISTER_COUNT = ( 32 ); 149 enum D3D11_FLOAT16_FUSED_TOLERANCE_IN_ULP = ( 0.6 ); 150 enum D3D11_FLOAT32_MAX = ( 3.402823466e+38f ); 151 enum D3D11_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP = ( 0.6f ); 152 enum D3D11_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR = ( 2.4f ); 153 enum D3D11_FLOAT_TO_SRGB_EXPONENT_NUMERATOR = ( 1.0f ); 154 enum D3D11_FLOAT_TO_SRGB_OFFSET = ( 0.055f ); 155 enum D3D11_FLOAT_TO_SRGB_SCALE_1 = ( 12.92f ); 156 enum D3D11_FLOAT_TO_SRGB_SCALE_2 = ( 1.055f ); 157 enum D3D11_FLOAT_TO_SRGB_THRESHOLD = ( 0.0031308f ); 158 enum D3D11_FTOI_INSTRUCTION_MAX_INPUT = ( 2147483647.999f ); 159 enum D3D11_FTOI_INSTRUCTION_MIN_INPUT = ( -2147483648.999f ); 160 enum D3D11_FTOU_INSTRUCTION_MAX_INPUT = ( 4294967295.999f ); 161 enum D3D11_FTOU_INSTRUCTION_MIN_INPUT = ( 0.0f ); 162 enum D3D11_GS_INPUT_INSTANCE_ID_READS_PER_INST = ( 2 ); 163 enum D3D11_GS_INPUT_INSTANCE_ID_READ_PORTS = ( 1 ); 164 enum D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS = ( 1 ); 165 enum D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 166 enum D3D11_GS_INPUT_INSTANCE_ID_REGISTER_COUNT = ( 1 ); 167 enum D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS = ( 1 ); 168 enum D3D11_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 169 enum D3D11_GS_INPUT_PRIM_CONST_REGISTER_COUNT = ( 1 ); 170 enum D3D11_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST = ( 2 ); 171 enum D3D11_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS = ( 1 ); 172 enum D3D11_GS_INPUT_REGISTER_COMPONENTS = ( 4 ); 173 enum D3D11_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 174 enum D3D11_GS_INPUT_REGISTER_COUNT = ( 32 ); 175 enum D3D11_GS_INPUT_REGISTER_READS_PER_INST = ( 2 ); 176 enum D3D11_GS_INPUT_REGISTER_READ_PORTS = ( 1 ); 177 enum D3D11_GS_INPUT_REGISTER_VERTICES = ( 32 ); 178 enum D3D11_GS_MAX_INSTANCE_COUNT = ( 32 ); 179 enum D3D11_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES = ( 1024 ); 180 enum D3D11_GS_OUTPUT_ELEMENTS = ( 32 ); 181 enum D3D11_GS_OUTPUT_REGISTER_COMPONENTS = ( 4 ); 182 enum D3D11_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 183 enum D3D11_GS_OUTPUT_REGISTER_COUNT = ( 32 ); 184 enum D3D11_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT = ( 32 ); 185 enum D3D11_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT = ( 32 ); 186 enum D3D11_HS_CONTROL_POINT_REGISTER_COMPONENTS = ( 4 ); 187 enum D3D11_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 188 enum D3D11_HS_CONTROL_POINT_REGISTER_READS_PER_INST = ( 2 ); 189 enum D3D11_HS_CONTROL_POINT_REGISTER_READ_PORTS = ( 1 ); 190 enum D3D11_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND = ( 0xffffffff ); 191 enum D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS = ( 1 ); 192 enum D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 193 enum D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT = ( 1 ); 194 enum D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST = ( 2 ); 195 enum D3D11_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS = ( 1 ); 196 enum D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS = ( 1 ); 197 enum D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 198 enum D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT = ( 1 ); 199 enum D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST = ( 2 ); 200 enum D3D11_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS = ( 1 ); 201 enum D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS = ( 1 ); 202 enum D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 203 enum D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT = ( 1 ); 204 enum D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST = ( 2 ); 205 enum D3D11_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS = ( 1 ); 206 enum D3D11_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND = ( 0xffffffff ); 207 enum D3D11_HS_MAXTESSFACTOR_LOWER_BOUND = ( 1.0f ); 208 enum D3D11_HS_MAXTESSFACTOR_UPPER_BOUND = ( 64.0f ); 209 enum D3D11_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS = ( 3968 ); 210 enum D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS = ( 1 ); 211 enum D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 212 enum D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT = ( 1 ); 213 enum D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST = ( 2 ); 214 enum D3D11_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS = ( 1 ); 215 enum D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS = ( 4 ); 216 enum D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 217 enum D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT = ( 32 ); 218 enum D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST = ( 2 ); 219 enum D3D11_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS = ( 1 ); 220 enum D3D11_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES = ( 0 ); 221 enum D3D11_IA_DEFAULT_PRIMITIVE_TOPOLOGY = ( 0 ); 222 enum D3D11_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES = ( 0 ); 223 enum D3D11_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT = ( 1 ); 224 enum D3D11_IA_INSTANCE_ID_BIT_COUNT = ( 32 ); 225 enum D3D11_IA_INTEGER_ARITHMETIC_BIT_COUNT = ( 32 ); 226 enum D3D11_IA_PATCH_MAX_CONTROL_POINT_COUNT = ( 32 ); 227 enum D3D11_IA_PRIMITIVE_ID_BIT_COUNT = ( 32 ); 228 enum D3D11_IA_VERTEX_ID_BIT_COUNT = ( 32 ); 229 enum D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = ( 32 ); 230 enum D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = ( 128 ); 231 enum D3D11_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = ( 32 ); 232 enum D3D11_INTEGER_DIVIDE_BY_ZERO_QUOTIENT = ( 0xffffffff ); 233 enum D3D11_INTEGER_DIVIDE_BY_ZERO_REMAINDER = ( 0xffffffff ); 234 enum D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL = ( 0xffffffff ); 235 enum D3D11_KEEP_UNORDERED_ACCESS_VIEWS = ( 0xffffffff ); 236 enum D3D11_LINEAR_GAMMA = ( 1.0f ); 237 enum D3D11_MAJOR_VERSION = ( 11 ); 238 enum D3D11_MAX_BORDER_COLOR_COMPONENT = ( 1.0f ); 239 enum D3D11_MAX_DEPTH = ( 1.0f ); 240 enum D3D11_MAX_MAXANISOTROPY = ( 16 ); 241 enum D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT = ( 32 ); 242 enum D3D11_MAX_POSITION_VALUE = ( 3.402823466e+34f ); 243 enum D3D11_MAX_TEXTURE_DIMENSION_2_TO_EXP = ( 17 ); 244 enum D3D11_MINOR_VERSION = ( 0 ); 245 enum D3D11_MIN_BORDER_COLOR_COMPONENT = ( 0.0f ); 246 enum D3D11_MIN_DEPTH = ( 0.0f ); 247 enum D3D11_MIN_MAXANISOTROPY = ( 0 ); 248 enum D3D11_MIP_LOD_BIAS_MAX = ( 15.99f ); 249 enum D3D11_MIP_LOD_BIAS_MIN = ( -16.0f ); 250 enum D3D11_MIP_LOD_FRACTIONAL_BIT_COUNT = ( 8 ); 251 enum D3D11_MIP_LOD_RANGE_BIT_COUNT = ( 8 ); 252 enum D3D11_MULTISAMPLE_ANTIALIAS_LINE_WIDTH = ( 1.4f ); 253 enum D3D11_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT = ( 0 ); 254 enum D3D11_PIXEL_ADDRESS_RANGE_BIT_COUNT = ( 15 ); 255 enum D3D11_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT = ( 16 ); 256 enum D3D11_PS_CS_UAV_REGISTER_COMPONENTS = ( 1 ); 257 enum D3D11_PS_CS_UAV_REGISTER_COUNT = ( 8 ); 258 enum D3D11_PS_CS_UAV_REGISTER_READS_PER_INST = ( 1 ); 259 enum D3D11_PS_CS_UAV_REGISTER_READ_PORTS = ( 1 ); 260 enum D3D11_PS_FRONTFACING_DEFAULT_VALUE = ( 0xffffffff ); 261 enum D3D11_PS_FRONTFACING_FALSE_VALUE = ( 0 ); 262 enum D3D11_PS_FRONTFACING_TRUE_VALUE = ( 0xffffffff ); 263 enum D3D11_PS_INPUT_REGISTER_COMPONENTS = ( 4 ); 264 enum D3D11_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 265 enum D3D11_PS_INPUT_REGISTER_COUNT = ( 32 ); 266 enum D3D11_PS_INPUT_REGISTER_READS_PER_INST = ( 2 ); 267 enum D3D11_PS_INPUT_REGISTER_READ_PORTS = ( 1 ); 268 enum D3D11_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT = ( 0.0f ); 269 enum D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS = ( 1 ); 270 enum D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 271 enum D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT = ( 1 ); 272 enum D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENTS = ( 1 ); 273 enum D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 274 enum D3D11_PS_OUTPUT_MASK_REGISTER_COUNT = ( 1 ); 275 enum D3D11_PS_OUTPUT_REGISTER_COMPONENTS = ( 4 ); 276 enum D3D11_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 277 enum D3D11_PS_OUTPUT_REGISTER_COUNT = ( 8 ); 278 enum D3D11_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT = ( 0.5f ); 279 enum D3D11_RAW_UAV_SRV_BYTE_ALIGNMENT = ( 16 ); 280 enum D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE = ( 4096 ); 281 enum D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP = ( 27 ); 282 enum D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT = ( 4096 ); 283 enum D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE = ( 4096 ); 284 enum D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = ( 32 ); 285 enum D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP = ( 32 ); 286 enum D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION = ( 16384 ); 287 enum D3D11_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT = ( 1024 ); 288 enum D3D11_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT = ( 4096 ); 289 enum D3D11_REQ_MAXANISOTROPY = ( 16 ); 290 enum D3D11_REQ_MIP_LEVELS = ( 15 ); 291 enum D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES = ( 2048 ); 292 enum D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE = ( 4096 ); 293 enum D3D11_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH = ( 16384 ); 294 enum D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM = ( 128 ); 295 enum D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM = ( 0.25f ); 296 enum D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP = ( 20 ); 297 enum D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE = ( 4096 ); 298 enum D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = ( 2048 ); 299 enum D3D11_REQ_TEXTURE1D_U_DIMENSION = ( 16384 ); 300 enum D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION = ( 2048 ); 301 enum D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION = ( 16384 ); 302 enum D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = ( 2048 ); 303 enum D3D11_REQ_TEXTURECUBE_DIMENSION = ( 16384 ); 304 enum D3D11_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL = ( 0 ); 305 enum D3D11_SHADER_MAJOR_VERSION = ( 5 ); 306 enum D3D11_SHADER_MAX_INSTANCES = ( 65535 ); 307 enum D3D11_SHADER_MAX_INTERFACES = ( 253 ); 308 enum D3D11_SHADER_MAX_INTERFACE_CALL_SITES = ( 4096 ); 309 enum D3D11_SHADER_MAX_TYPES = ( 65535 ); 310 enum D3D11_SHADER_MINOR_VERSION = ( 0 ); 311 enum D3D11_SHIFT_INSTRUCTION_PAD_VALUE = ( 0 ); 312 enum D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT = ( 5 ); 313 enum D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT = ( 8 ); 314 enum D3D11_SO_BUFFER_MAX_STRIDE_IN_BYTES = ( 2048 ); 315 enum D3D11_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = ( 512 ); 316 enum D3D11_SO_BUFFER_SLOT_COUNT = ( 4 ); 317 enum D3D11_SO_DDI_REGISTER_INDEX_DENOTING_GAP = ( 0xffffffff ); 318 enum D3D11_SO_NO_RASTERIZED_STREAM = ( 0xffffffff ); 319 enum D3D11_SO_OUTPUT_COMPONENT_COUNT = ( 128 ); 320 enum D3D11_SO_STREAM_COUNT = ( 4 ); 321 enum D3D11_SPEC_DATE_DAY = ( 04 ); 322 enum D3D11_SPEC_DATE_MONTH = ( 06 ); 323 enum D3D11_SPEC_DATE_YEAR = ( 2009 ); 324 enum D3D11_SPEC_VERSION = ( 1.0 ); 325 enum D3D11_SRGB_GAMMA = ( 2.2f ); 326 enum D3D11_SRGB_TO_FLOAT_DENOMINATOR_1 = ( 12.92f ); 327 enum D3D11_SRGB_TO_FLOAT_DENOMINATOR_2 = ( 1.055f ); 328 enum D3D11_SRGB_TO_FLOAT_EXPONENT = ( 2.4f ); 329 enum D3D11_SRGB_TO_FLOAT_OFFSET = ( 0.055f ); 330 enum D3D11_SRGB_TO_FLOAT_THRESHOLD = ( 0.04045f ); 331 enum D3D11_SRGB_TO_FLOAT_TOLERANCE_IN_ULP = ( 0.5f ); 332 enum D3D11_STANDARD_COMPONENT_BIT_COUNT = ( 32 ); 333 enum D3D11_STANDARD_COMPONENT_BIT_COUNT_DOUBLED = ( 64 ); 334 enum D3D11_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE = ( 4 ); 335 enum D3D11_STANDARD_PIXEL_COMPONENT_COUNT = ( 128 ); 336 enum D3D11_STANDARD_PIXEL_ELEMENT_COUNT = ( 32 ); 337 enum D3D11_STANDARD_VECTOR_SIZE = ( 4 ); 338 enum D3D11_STANDARD_VERTEX_ELEMENT_COUNT = ( 32 ); 339 enum D3D11_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT = ( 64 ); 340 enum D3D11_SUBPIXEL_FRACTIONAL_BIT_COUNT = ( 8 ); 341 enum D3D11_SUBTEXEL_FRACTIONAL_BIT_COUNT = ( 8 ); 342 enum D3D11_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR = ( 64 ); 343 enum D3D11_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR = ( 64 ); 344 enum D3D11_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR = ( 63 ); 345 enum D3D11_TESSELLATOR_MAX_TESSELLATION_FACTOR = ( 64 ); 346 enum D3D11_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR = ( 2 ); 347 enum D3D11_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR = ( 1 ); 348 enum D3D11_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR = ( 1 ); 349 enum D3D11_TEXEL_ADDRESS_RANGE_BIT_COUNT = ( 16 ); 350 enum D3D11_UNBOUND_MEMORY_ACCESS_RESULT = ( 0 ); 351 enum D3D11_VIEWPORT_AND_SCISSORRECT_MAX_INDEX = ( 15 ); 352 enum D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = ( 16 ); 353 enum D3D11_VIEWPORT_BOUNDS_MAX = ( 32767 ); 354 enum D3D11_VIEWPORT_BOUNDS_MIN = ( -32768 ); 355 enum D3D11_VS_INPUT_REGISTER_COMPONENTS = ( 4 ); 356 enum D3D11_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 357 enum D3D11_VS_INPUT_REGISTER_COUNT = ( 32 ); 358 enum D3D11_VS_INPUT_REGISTER_READS_PER_INST = ( 2 ); 359 enum D3D11_VS_INPUT_REGISTER_READ_PORTS = ( 1 ); 360 enum D3D11_VS_OUTPUT_REGISTER_COMPONENTS = ( 4 ); 361 enum D3D11_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = ( 32 ); 362 enum D3D11_VS_OUTPUT_REGISTER_COUNT = ( 32 ); 363 enum D3D11_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT = ( 10 ); 364 enum D3D11_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = ( 25 ); 365 enum D3D11_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP = ( 25 ); 366 367 enum D3D11_1_UAV_SLOT_COUNT = ( 64 ); 368 369 enum D3D11_2_TILED_RESOURCE_TILE_SIZE_IN_BYTES = ( 65536 ); 370 371 enum _FACD3D11 = 0x87c; 372 enum _FACD3D11DEBUG = _FACD3D11 + 1; 373 374 HRESULT MAKE_D3D11_HRESULT(T)(T code) { 375 return MAKE_HRESULT(1, _FACD3D11, code); 376 } 377 378 HRESULT MAKE_D3D11_STATUS(T)(T code) { 379 return MAKE_HRESULT(0, _FACD3D11, code); 380 } 381 382 enum D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS = MAKE_D3D11_HRESULT(1); 383 enum D3D11_ERROR_FILE_NOT_FOUND = MAKE_D3D11_HRESULT(2); 384 enum D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS = MAKE_D3D11_HRESULT(3); 385 enum D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD = MAKE_D3D11_HRESULT(4); 386 387 388 // TODO: move all externs to each symbols where needed, block is error-prone 389 extern(C): 390 391 alias D3D11_INPUT_CLASSIFICATION = int; 392 enum : D3D11_INPUT_CLASSIFICATION 393 { 394 D3D11_INPUT_PER_VERTEX_DATA = 0, 395 D3D11_INPUT_PER_INSTANCE_DATA = 1 396 } 397 398 enum D3D11_APPEND_ALIGNED_ELEMENT = ( 0xffffffff ); 399 400 struct D3D11_INPUT_ELEMENT_DESC 401 { 402 LPCSTR SemanticName; 403 UINT SemanticIndex; 404 DXGI_FORMAT Format; 405 UINT InputSlot; 406 UINT AlignedByteOffset; 407 D3D11_INPUT_CLASSIFICATION InputSlotClass; 408 UINT InstanceDataStepRate; 409 } 410 411 alias D3D11_FILL_MODE = int; 412 enum : D3D11_FILL_MODE 413 { 414 D3D11_FILL_WIREFRAME = 2, 415 D3D11_FILL_SOLID = 3 416 } 417 418 alias D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY; 419 420 alias D3D_PRIMITIVE D3D11_PRIMITIVE; 421 422 alias D3D11_CULL_MODE = int; 423 enum : D3D11_CULL_MODE 424 { 425 D3D11_CULL_NONE = 1, 426 D3D11_CULL_FRONT = 2, 427 D3D11_CULL_BACK = 3 428 } 429 430 struct D3D11_SO_DECLARATION_ENTRY 431 { 432 UINT Stream; 433 LPCSTR SemanticName; 434 UINT SemanticIndex; 435 BYTE StartComponent; 436 BYTE ComponentCount; 437 BYTE OutputSlot; 438 } 439 440 struct D3D11_VIEWPORT 441 { 442 FLOAT TopLeftX; 443 FLOAT TopLeftY; 444 FLOAT Width; 445 FLOAT Height; 446 FLOAT MinDepth = D3D11_MIN_DEPTH; 447 FLOAT MaxDepth = D3D11_MAX_DEPTH; 448 } 449 450 alias D3D11_RESOURCE_DIMENSION = int; 451 enum : D3D11_RESOURCE_DIMENSION 452 { 453 D3D11_RESOURCE_DIMENSION_UNKNOWN = 0, 454 D3D11_RESOURCE_DIMENSION_BUFFER = 1, 455 D3D11_RESOURCE_DIMENSION_TEXTURE1D = 2, 456 D3D11_RESOURCE_DIMENSION_TEXTURE2D = 3, 457 D3D11_RESOURCE_DIMENSION_TEXTURE3D = 4 458 } 459 460 alias D3D11_SRV_DIMENSION = D3D_SRV_DIMENSION; 461 462 alias D3D11_DSV_DIMENSION = int; 463 enum : D3D11_DSV_DIMENSION 464 { 465 D3D11_DSV_DIMENSION_UNKNOWN = 0, 466 D3D11_DSV_DIMENSION_TEXTURE1D = 1, 467 D3D11_DSV_DIMENSION_TEXTURE1DARRAY = 2, 468 D3D11_DSV_DIMENSION_TEXTURE2D = 3, 469 D3D11_DSV_DIMENSION_TEXTURE2DARRAY = 4, 470 D3D11_DSV_DIMENSION_TEXTURE2DMS = 5, 471 D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY = 6 472 } 473 474 alias D3D11_RTV_DIMENSION = int; 475 enum : D3D11_RTV_DIMENSION 476 { 477 D3D11_RTV_DIMENSION_UNKNOWN = 0, 478 D3D11_RTV_DIMENSION_BUFFER = 1, 479 D3D11_RTV_DIMENSION_TEXTURE1D = 2, 480 D3D11_RTV_DIMENSION_TEXTURE1DARRAY = 3, 481 D3D11_RTV_DIMENSION_TEXTURE2D = 4, 482 D3D11_RTV_DIMENSION_TEXTURE2DARRAY = 5, 483 D3D11_RTV_DIMENSION_TEXTURE2DMS = 6, 484 D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY = 7, 485 D3D11_RTV_DIMENSION_TEXTURE3D = 8 486 } 487 488 alias D3D11_UAV_DIMENSION = int; 489 enum : D3D11_UAV_DIMENSION 490 { 491 D3D11_UAV_DIMENSION_UNKNOWN = 0, 492 D3D11_UAV_DIMENSION_BUFFER = 1, 493 D3D11_UAV_DIMENSION_TEXTURE1D = 2, 494 D3D11_UAV_DIMENSION_TEXTURE1DARRAY = 3, 495 D3D11_UAV_DIMENSION_TEXTURE2D = 4, 496 D3D11_UAV_DIMENSION_TEXTURE2DARRAY = 5, 497 D3D11_UAV_DIMENSION_TEXTURE3D = 8 498 } 499 500 alias D3D11_USAGE = int; 501 enum : D3D11_USAGE 502 { 503 D3D11_USAGE_DEFAULT = 0, 504 D3D11_USAGE_IMMUTABLE = 1, 505 D3D11_USAGE_DYNAMIC = 2, 506 D3D11_USAGE_STAGING = 3 507 } 508 509 alias D3D11_BIND_FLAG = int; 510 enum : D3D11_BIND_FLAG 511 { 512 D3D11_BIND_VERTEX_BUFFER = 0x1L, 513 D3D11_BIND_INDEX_BUFFER = 0x2L, 514 D3D11_BIND_CONSTANT_BUFFER = 0x4L, 515 D3D11_BIND_SHADER_RESOURCE = 0x8L, 516 D3D11_BIND_STREAM_OUTPUT = 0x10L, 517 D3D11_BIND_RENDER_TARGET = 0x20L, 518 D3D11_BIND_DEPTH_STENCIL = 0x40L, 519 D3D11_BIND_UNORDERED_ACCESS = 0x80L 520 } 521 522 alias D3D11_CPU_ACCESS_FLAG = int; 523 enum : D3D11_CPU_ACCESS_FLAG 524 { 525 D3D11_CPU_ACCESS_WRITE = 0x10000L, 526 D3D11_CPU_ACCESS_READ = 0x20000L 527 } 528 529 alias D3D11_RESOURCE_MISC_FLAG = int; 530 enum : D3D11_RESOURCE_MISC_FLAG 531 { 532 D3D11_RESOURCE_MISC_GENERATE_MIPS = 0x1L, 533 D3D11_RESOURCE_MISC_SHARED = 0x2L, 534 D3D11_RESOURCE_MISC_TEXTURECUBE = 0x4L, 535 D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS = 0x10L, 536 D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x20L, 537 D3D11_RESOURCE_MISC_BUFFER_STRUCTURED = 0x40L, 538 D3D11_RESOURCE_MISC_RESOURCE_CLAMP = 0x80L, 539 D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x100L, 540 D3D11_RESOURCE_MISC_GDI_COMPATIBLE = 0x200L 541 } 542 543 alias D3D11_MAP = int; 544 enum : D3D11_MAP 545 { 546 D3D11_MAP_READ = 1, 547 D3D11_MAP_WRITE = 2, 548 D3D11_MAP_READ_WRITE = 3, 549 D3D11_MAP_WRITE_DISCARD = 4, 550 D3D11_MAP_WRITE_NO_OVERWRITE = 5 551 } 552 553 alias D3D11_MAP_FLAG = int; 554 enum : D3D11_MAP_FLAG 555 { 556 D3D11_MAP_FLAG_DO_NOT_WAIT = 0x100000L 557 } 558 559 alias D3D11_RAISE_FLAG = int; 560 enum : D3D11_RAISE_FLAG 561 { 562 D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR = 0x1L 563 } 564 565 alias D3D11_CLEAR_FLAG = int; 566 enum : D3D11_CLEAR_FLAG 567 { 568 D3D11_CLEAR_DEPTH = 0x1L, 569 D3D11_CLEAR_STENCIL = 0x2L 570 } 571 572 alias RECT D3D11_RECT; 573 574 struct D3D11_BOX 575 { 576 UINT left; 577 UINT top; 578 UINT front; 579 UINT right; 580 UINT bottom; 581 UINT back; 582 } 583 584 585 mixin( uuid!(ID3D11DeviceChild, "1841e5c8-16b0-489b-bcc8-44cfb0d5deae") ); 586 interface ID3D11DeviceChild : IUnknown 587 { 588 extern(Windows): 589 void GetDevice( 590 ID3D11Device* ppDevice); 591 592 HRESULT GetPrivateData( 593 REFGUID guid, 594 UINT* pDataSize, 595 void* pData); 596 597 HRESULT SetPrivateData( 598 REFGUID guid, 599 UINT DataSize, 600 const void* pData); 601 602 HRESULT SetPrivateDataInterface( 603 REFGUID guid, 604 const(IUnknown) pData); 605 606 } 607 608 609 alias D3D11_COMPARISON_FUNC = int; 610 enum : D3D11_COMPARISON_FUNC 611 { 612 D3D11_COMPARISON_NEVER = 1, 613 D3D11_COMPARISON_LESS = 2, 614 D3D11_COMPARISON_EQUAL = 3, 615 D3D11_COMPARISON_LESS_EQUAL = 4, 616 D3D11_COMPARISON_GREATER = 5, 617 D3D11_COMPARISON_NOT_EQUAL = 6, 618 D3D11_COMPARISON_GREATER_EQUAL = 7, 619 D3D11_COMPARISON_ALWAYS = 8 620 } 621 622 alias D3D11_DEPTH_WRITE_MASK = int; 623 enum : D3D11_DEPTH_WRITE_MASK 624 { 625 D3D11_DEPTH_WRITE_MASK_ZERO = 0, 626 D3D11_DEPTH_WRITE_MASK_ALL = 1 627 } 628 629 alias D3D11_STENCIL_OP = int; 630 enum : D3D11_STENCIL_OP 631 { 632 D3D11_STENCIL_OP_KEEP = 1, 633 D3D11_STENCIL_OP_ZERO = 2, 634 D3D11_STENCIL_OP_REPLACE = 3, 635 D3D11_STENCIL_OP_INCR_SAT = 4, 636 D3D11_STENCIL_OP_DECR_SAT = 5, 637 D3D11_STENCIL_OP_INVERT = 6, 638 D3D11_STENCIL_OP_INCR = 7, 639 D3D11_STENCIL_OP_DECR = 8 640 } 641 642 struct D3D11_DEPTH_STENCILOP_DESC 643 { 644 D3D11_STENCIL_OP StencilFailOp; 645 D3D11_STENCIL_OP StencilDepthFailOp; 646 D3D11_STENCIL_OP StencilPassOp; 647 D3D11_COMPARISON_FUNC StencilFunc; 648 } 649 650 struct D3D11_DEPTH_STENCIL_DESC 651 { 652 BOOL DepthEnable = TRUE; 653 D3D11_DEPTH_WRITE_MASK DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL; 654 D3D11_COMPARISON_FUNC DepthFunc = D3D11_COMPARISON_LESS; 655 BOOL StencilEnable = FALSE; 656 UINT8 StencilReadMask = D3D11_DEFAULT_STENCIL_READ_MASK; 657 UINT8 StencilWriteMask = D3D11_DEFAULT_STENCIL_WRITE_MASK; 658 D3D11_DEPTH_STENCILOP_DESC FrontFace = { D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_COMPARISON_ALWAYS }; 659 D3D11_DEPTH_STENCILOP_DESC BackFace = { D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_COMPARISON_ALWAYS }; 660 } 661 662 663 mixin( uuid!(ID3D11DepthStencilState, "03823efb-8d8f-4e1c-9aa2-f64bb2cbfdf1") ); 664 interface ID3D11DepthStencilState : ID3D11DeviceChild 665 { 666 extern(Windows): 667 void GetDesc( 668 D3D11_DEPTH_STENCIL_DESC* pDesc); 669 } 670 671 672 alias D3D11_BLEND = int; 673 enum : D3D11_BLEND 674 { 675 D3D11_BLEND_ZERO = 1, 676 D3D11_BLEND_ONE = 2, 677 D3D11_BLEND_SRC_COLOR = 3, 678 D3D11_BLEND_INV_SRC_COLOR = 4, 679 D3D11_BLEND_SRC_ALPHA = 5, 680 D3D11_BLEND_INV_SRC_ALPHA = 6, 681 D3D11_BLEND_DEST_ALPHA = 7, 682 D3D11_BLEND_INV_DEST_ALPHA = 8, 683 D3D11_BLEND_DEST_COLOR = 9, 684 D3D11_BLEND_INV_DEST_COLOR = 10, 685 D3D11_BLEND_SRC_ALPHA_SAT = 11, 686 D3D11_BLEND_BLEND_FACTOR = 14, 687 D3D11_BLEND_INV_BLEND_FACTOR = 15, 688 D3D11_BLEND_SRC1_COLOR = 16, 689 D3D11_BLEND_INV_SRC1_COLOR = 17, 690 D3D11_BLEND_SRC1_ALPHA = 18, 691 D3D11_BLEND_INV_SRC1_ALPHA = 19 692 } 693 694 alias D3D11_BLEND_OP = int; 695 enum : D3D11_BLEND_OP 696 { 697 D3D11_BLEND_OP_ADD = 1, 698 D3D11_BLEND_OP_SUBTRACT = 2, 699 D3D11_BLEND_OP_REV_SUBTRACT = 3, 700 D3D11_BLEND_OP_MIN = 4, 701 D3D11_BLEND_OP_MAX = 5 702 } 703 704 alias D3D11_COLOR_WRITE_ENABLE = int; 705 enum : D3D11_COLOR_WRITE_ENABLE 706 { 707 D3D11_COLOR_WRITE_ENABLE_RED = 1, 708 D3D11_COLOR_WRITE_ENABLE_GREEN = 2, 709 D3D11_COLOR_WRITE_ENABLE_BLUE = 4, 710 D3D11_COLOR_WRITE_ENABLE_ALPHA = 8, 711 D3D11_COLOR_WRITE_ENABLE_ALL = ( ( ( D3D11_COLOR_WRITE_ENABLE_RED | D3D11_COLOR_WRITE_ENABLE_GREEN ) | D3D11_COLOR_WRITE_ENABLE_BLUE ) | D3D11_COLOR_WRITE_ENABLE_ALPHA ) 712 } 713 714 struct D3D11_RENDER_TARGET_BLEND_DESC 715 { 716 BOOL BlendEnable; 717 D3D11_BLEND SrcBlend; 718 D3D11_BLEND DestBlend; 719 D3D11_BLEND_OP BlendOp; 720 D3D11_BLEND SrcBlendAlpha; 721 D3D11_BLEND DestBlendAlpha; 722 D3D11_BLEND_OP BlendOpAlpha; 723 UINT8 RenderTargetWriteMask; 724 } 725 726 // TODO: move Init() to CTFE and assign its result to RenderTarget initializer 727 struct D3D11_BLEND_DESC 728 { 729 BOOL AlphaToCoverageEnable = FALSE; 730 BOOL IndependentBlendEnable = FALSE; 731 D3D11_RENDER_TARGET_BLEND_DESC[8] RenderTarget; 732 733 // hack: 734 // default ctor not allowed in structs 735 void Init() @property 736 { 737 const D3D11_RENDER_TARGET_BLEND_DESC defaultRenderTargetBlendDesc = { 738 FALSE, 739 D3D11_BLEND_ONE, D3D11_BLEND_ZERO, D3D11_BLEND_OP_ADD, 740 D3D11_BLEND_ONE, D3D11_BLEND_ZERO, D3D11_BLEND_OP_ADD, 741 D3D11_COLOR_WRITE_ENABLE_ALL, 742 }; 743 for (UINT i = 0; i < D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; ++i) 744 RenderTarget[ i ] = defaultRenderTargetBlendDesc; 745 } 746 } 747 748 749 mixin( uuid!(ID3D11BlendState, "75b68faa-347d-4159-8f45-a0640f01cd9a") ); 750 interface ID3D11BlendState : ID3D11DeviceChild 751 { 752 extern(Windows): 753 void GetDesc( 754 D3D11_BLEND_DESC *pDesc); 755 } 756 757 struct D3D11_RASTERIZER_DESC 758 { 759 D3D11_FILL_MODE FillMode = D3D11_FILL_SOLID; 760 D3D11_CULL_MODE CullMode = D3D11_CULL_BACK; 761 BOOL FrontCounterClockwise = FALSE; 762 INT DepthBias = D3D11_DEFAULT_DEPTH_BIAS; 763 FLOAT DepthBiasClamp = D3D11_DEFAULT_DEPTH_BIAS_CLAMP; 764 FLOAT SlopeScaledDepthBias = D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS; 765 BOOL DepthClipEnable = TRUE; 766 BOOL ScissorEnable = FALSE; 767 BOOL MultisampleEnable = FALSE; 768 BOOL AntialiasedLineEnable = FALSE; 769 } 770 771 772 mixin( uuid!(ID3D11RasterizerState, "9bb4ab81-ab1a-4d8f-b506-fc04200b6ee7") ); 773 interface ID3D11RasterizerState : ID3D11DeviceChild 774 { 775 extern(Windows): 776 void GetDesc( 777 D3D11_RASTERIZER_DESC* pDesc); 778 } 779 780 struct D3D11_SUBRESOURCE_DATA 781 { 782 /*const*/ void* pSysMem; // const causes problems in real code 783 UINT SysMemPitch; 784 UINT SysMemSlicePitch; 785 } 786 787 struct D3D11_MAPPED_SUBRESOURCE 788 { 789 void* pData; 790 UINT RowPitch; 791 UINT DepthPitch; 792 } 793 794 795 mixin( uuid!(ID3D11Resource, "dc8e63f3-d12b-4952-b47b-5e45026a862d") ); 796 interface ID3D11Resource : ID3D11DeviceChild 797 { 798 extern(Windows): 799 void GetType( 800 D3D11_RESOURCE_DIMENSION* pResourceDimension); 801 802 void SetEvictionPriority( 803 UINT EvictionPriority); 804 805 UINT GetEvictionPriority(); 806 } 807 808 struct D3D11_BUFFER_DESC 809 { 810 UINT ByteWidth; 811 D3D11_USAGE Usage = D3D11_USAGE_DEFAULT; 812 UINT BindFlags; 813 UINT CPUAccessFlags; 814 UINT MiscFlags; 815 UINT StructureByteStride; 816 } 817 818 819 mixin( uuid!(ID3D11Buffer, "48570b85-d1ee-4fcd-a250-eb350722b037") ); 820 interface ID3D11Buffer : ID3D11Resource 821 { 822 extern(Windows): 823 void GetDesc( 824 D3D11_BUFFER_DESC* pDesc); 825 } 826 827 struct D3D11_TEXTURE1D_DESC 828 { 829 UINT Width; 830 UINT MipLevels; 831 UINT ArraySize = 1; 832 DXGI_FORMAT Format; 833 D3D11_USAGE Usage = D3D11_USAGE_DEFAULT; 834 UINT BindFlags = D3D11_BIND_SHADER_RESOURCE; 835 UINT CPUAccessFlags; 836 UINT MiscFlags; 837 } 838 839 840 mixin( uuid!(ID3D11Texture1D, "f8fb5c27-c6b3-4f75-a4c8-439af2ef564c") ); 841 interface ID3D11Texture1D : ID3D11Resource 842 { 843 extern(Windows): 844 void GetDesc( 845 D3D11_TEXTURE1D_DESC* pDesc); 846 847 } 848 849 struct D3D11_TEXTURE2D_DESC 850 { 851 UINT Width; 852 UINT Height; 853 UINT MipLevels; 854 UINT ArraySize = 1; 855 DXGI_FORMAT Format; 856 DXGI_SAMPLE_DESC SampleDesc = {Quality: 0, Count: 1}; 857 D3D11_USAGE Usage = D3D11_USAGE_DEFAULT; 858 UINT BindFlags = D3D11_BIND_SHADER_RESOURCE; 859 UINT CPUAccessFlags; 860 UINT MiscFlags; 861 } 862 863 864 mixin( uuid!(ID3D11Texture2D, "6f15aaf2-d208-4e89-9ab4-489535d34f9c") ); 865 interface ID3D11Texture2D : ID3D11Resource 866 { 867 extern(Windows): 868 void GetDesc( 869 D3D11_TEXTURE2D_DESC* pDesc); 870 } 871 872 struct D3D11_TEXTURE3D_DESC 873 { 874 UINT Width; 875 UINT Height; 876 UINT Depth; 877 UINT MipLevels; 878 DXGI_FORMAT Format; 879 D3D11_USAGE Usage = D3D11_USAGE_DEFAULT; 880 UINT BindFlags = D3D11_BIND_SHADER_RESOURCE; 881 UINT CPUAccessFlags; 882 UINT MiscFlags; 883 } 884 885 886 mixin( uuid!(ID3D11Texture3D, "037e866e-f56d-4357-a8af-9dabbe6e250e") ); 887 interface ID3D11Texture3D : ID3D11Resource 888 { 889 extern(Windows): 890 void GetDesc( 891 D3D11_TEXTURE3D_DESC* pDesc); 892 } 893 894 alias D3D11_TEXTURECUBE_FACE = int; 895 enum : D3D11_TEXTURECUBE_FACE 896 { 897 D3D11_TEXTURECUBE_FACE_POSITIVE_X = 0, 898 D3D11_TEXTURECUBE_FACE_NEGATIVE_X = 1, 899 D3D11_TEXTURECUBE_FACE_POSITIVE_Y = 2, 900 D3D11_TEXTURECUBE_FACE_NEGATIVE_Y = 3, 901 D3D11_TEXTURECUBE_FACE_POSITIVE_Z = 4, 902 D3D11_TEXTURECUBE_FACE_NEGATIVE_Z = 5 903 } 904 905 906 mixin( uuid!( ID3D11View, "839d1216-bb2e-412b-b7f4-a9dbebe08ed1") ); 907 interface ID3D11View : ID3D11DeviceChild 908 { 909 extern(Windows): 910 void GetResource( 911 ID3D11Resource* ppResource); 912 } 913 914 915 struct D3D11_BUFFER_SRV 916 { 917 union 918 { 919 UINT FirstElement; 920 UINT ElementOffset; 921 } 922 union 923 { 924 UINT NumElements; 925 UINT ElementWidth; 926 } 927 } 928 929 930 alias D3D11_BUFFEREX_SRV_FLAG = int; 931 enum : D3D11_BUFFEREX_SRV_FLAG 932 { 933 D3D11_BUFFEREX_SRV_FLAG_RAW = 0x1 934 } 935 936 937 struct D3D11_BUFFEREX_SRV 938 { 939 UINT FirstElement; 940 UINT NumElements; 941 UINT Flags; 942 } 943 944 945 struct D3D11_TEX1D_SRV 946 { 947 UINT MostDetailedMip; 948 UINT MipLevels; 949 } 950 951 952 struct D3D11_TEX1D_ARRAY_SRV 953 { 954 UINT MostDetailedMip; 955 UINT MipLevels; 956 UINT FirstArraySlice; 957 UINT ArraySize; 958 } 959 960 struct D3D11_TEX2D_SRV 961 { 962 UINT MostDetailedMip; 963 UINT MipLevels; 964 } 965 966 struct D3D11_TEX2D_ARRAY_SRV 967 { 968 UINT MostDetailedMip; 969 UINT MipLevels; 970 UINT FirstArraySlice; 971 UINT ArraySize; 972 } 973 974 struct D3D11_TEX3D_SRV 975 { 976 UINT MostDetailedMip; 977 UINT MipLevels; 978 } 979 980 struct D3D11_TEXCUBE_SRV 981 { 982 UINT MostDetailedMip; 983 UINT MipLevels; 984 } 985 986 struct D3D11_TEXCUBE_ARRAY_SRV 987 { 988 UINT MostDetailedMip; 989 UINT MipLevels; 990 UINT First2DArrayFace; 991 UINT NumCubes; 992 } 993 994 struct D3D11_TEX2DMS_SRV 995 { 996 UINT UnusedField_NothingToDefine; 997 } 998 999 struct D3D11_TEX2DMS_ARRAY_SRV 1000 { 1001 UINT FirstArraySlice; 1002 UINT ArraySize; 1003 } 1004 1005 struct D3D11_SHADER_RESOURCE_VIEW_DESC 1006 { 1007 DXGI_FORMAT Format = DXGI_FORMAT_UNKNOWN; 1008 D3D11_SRV_DIMENSION ViewDimension; 1009 union 1010 { 1011 D3D11_BUFFER_SRV Buffer; 1012 D3D11_TEX1D_SRV Texture1D; 1013 D3D11_TEX1D_ARRAY_SRV Texture1DArray; 1014 D3D11_TEX2D_SRV Texture2D; 1015 D3D11_TEX2D_ARRAY_SRV Texture2DArray; 1016 D3D11_TEX2DMS_SRV Texture2DMS; 1017 D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray; 1018 D3D11_TEX3D_SRV Texture3D; 1019 D3D11_TEXCUBE_SRV TextureCube; 1020 D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray; 1021 D3D11_BUFFEREX_SRV BufferEx; 1022 } 1023 1024 this( 1025 D3D11_SRV_DIMENSION viewDimension, 1026 DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, 1027 UINT mostDetailedMip = 0, // FirstElement for BUFFER 1028 UINT mipLevels = -1, // NumElements for BUFFER 1029 UINT firstArraySlice = 0, // First2DArrayFace for TEXTURECUBEARRAY 1030 UINT arraySize = -1, // NumCubes for TEXTURECUBEARRAY 1031 UINT flags = 0 ) // BUFFEREX only 1032 { 1033 Format = format; 1034 ViewDimension = viewDimension; 1035 switch (viewDimension) 1036 { 1037 case D3D11_SRV_DIMENSION_BUFFER: 1038 Buffer.FirstElement = mostDetailedMip; 1039 Buffer.NumElements = mipLevels; 1040 break; 1041 case D3D11_SRV_DIMENSION_TEXTURE1D: 1042 Texture1D.MostDetailedMip = mostDetailedMip; 1043 Texture1D.MipLevels = mipLevels; 1044 break; 1045 case D3D11_SRV_DIMENSION_TEXTURE1DARRAY: 1046 Texture1DArray.MostDetailedMip = mostDetailedMip; 1047 Texture1DArray.MipLevels = mipLevels; 1048 Texture1DArray.FirstArraySlice = firstArraySlice; 1049 Texture1DArray.ArraySize = arraySize; 1050 break; 1051 case D3D11_SRV_DIMENSION_TEXTURE2D: 1052 Texture2D.MostDetailedMip = mostDetailedMip; 1053 Texture2D.MipLevels = mipLevels; 1054 break; 1055 case D3D11_SRV_DIMENSION_TEXTURE2DARRAY: 1056 Texture2DArray.MostDetailedMip = mostDetailedMip; 1057 Texture2DArray.MipLevels = mipLevels; 1058 Texture2DArray.FirstArraySlice = firstArraySlice; 1059 Texture2DArray.ArraySize = arraySize; 1060 break; 1061 case D3D11_SRV_DIMENSION_TEXTURE2DMS: 1062 break; 1063 case D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY: 1064 Texture2DMSArray.FirstArraySlice = firstArraySlice; 1065 Texture2DMSArray.ArraySize = arraySize; 1066 break; 1067 case D3D11_SRV_DIMENSION_TEXTURE3D: 1068 Texture3D.MostDetailedMip = mostDetailedMip; 1069 Texture3D.MipLevels = mipLevels; 1070 break; 1071 case D3D11_SRV_DIMENSION_TEXTURECUBE: 1072 TextureCube.MostDetailedMip = mostDetailedMip; 1073 TextureCube.MipLevels = mipLevels; 1074 break; 1075 case D3D11_SRV_DIMENSION_TEXTURECUBEARRAY: 1076 TextureCubeArray.MostDetailedMip = mostDetailedMip; 1077 TextureCubeArray.MipLevels = mipLevels; 1078 TextureCubeArray.First2DArrayFace = firstArraySlice; 1079 TextureCubeArray.NumCubes = arraySize; 1080 break; 1081 case D3D11_SRV_DIMENSION_BUFFEREX: 1082 BufferEx.FirstElement = mostDetailedMip; 1083 BufferEx.NumElements = mipLevels; 1084 BufferEx.Flags = flags; 1085 break; 1086 default: break; 1087 } 1088 } 1089 } 1090 1091 1092 mixin( uuid!(ID3D11ShaderResourceView, "b0e06fe0-8192-4e1a-b1ca-36d7414710b2") ); 1093 interface ID3D11ShaderResourceView : ID3D11View 1094 { 1095 extern(Windows): 1096 void GetDesc( 1097 D3D11_SHADER_RESOURCE_VIEW_DESC* pDesc); 1098 } 1099 1100 1101 struct D3D11_BUFFER_RTV 1102 { 1103 union 1104 { 1105 UINT FirstElement; 1106 UINT ElementOffset; 1107 } 1108 union 1109 { 1110 UINT NumElements; 1111 UINT ElementWidth; 1112 } 1113 } 1114 1115 struct D3D11_TEX1D_RTV 1116 { 1117 UINT MipSlice; 1118 } 1119 1120 struct D3D11_TEX1D_ARRAY_RTV 1121 { 1122 UINT MipSlice; 1123 UINT FirstArraySlice; 1124 UINT ArraySize; 1125 } 1126 1127 struct D3D11_TEX2D_RTV 1128 { 1129 UINT MipSlice; 1130 } 1131 1132 struct D3D11_TEX2DMS_RTV 1133 { 1134 UINT UnusedField_NothingToDefine; 1135 } 1136 1137 struct D3D11_TEX2D_ARRAY_RTV 1138 { 1139 UINT MipSlice; 1140 UINT FirstArraySlice; 1141 UINT ArraySize; 1142 } 1143 1144 struct D3D11_TEX2DMS_ARRAY_RTV 1145 { 1146 UINT FirstArraySlice; 1147 UINT ArraySize; 1148 } 1149 1150 struct D3D11_TEX3D_RTV 1151 { 1152 UINT MipSlice; 1153 UINT FirstWSlice; 1154 UINT WSize; 1155 } 1156 1157 struct D3D11_RENDER_TARGET_VIEW_DESC 1158 { 1159 DXGI_FORMAT Format = DXGI_FORMAT_UNKNOWN; 1160 D3D11_RTV_DIMENSION ViewDimension; 1161 union 1162 { 1163 D3D11_BUFFER_RTV Buffer; 1164 D3D11_TEX1D_RTV Texture1D; 1165 D3D11_TEX1D_ARRAY_RTV Texture1DArray; 1166 D3D11_TEX2D_RTV Texture2D; 1167 D3D11_TEX2D_ARRAY_RTV Texture2DArray; 1168 D3D11_TEX2DMS_RTV Texture2DMS; 1169 D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray; 1170 D3D11_TEX3D_RTV Texture3D; 1171 } 1172 1173 this( 1174 D3D11_RTV_DIMENSION viewDimension, 1175 DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, 1176 UINT mipSlice = 0, // FirstElement for BUFFER 1177 UINT firstArraySlice = 0, // NumElements for BUFFER, FirstWSlice for TEXTURE3D 1178 UINT arraySize = -1 ) // WSize for TEXTURE3D 1179 { 1180 Format = format; 1181 ViewDimension = viewDimension; 1182 switch (viewDimension) 1183 { 1184 case D3D11_RTV_DIMENSION_BUFFER: 1185 Buffer.FirstElement = mipSlice; 1186 Buffer.NumElements = firstArraySlice; 1187 break; 1188 case D3D11_RTV_DIMENSION_TEXTURE1D: 1189 Texture1D.MipSlice = mipSlice; 1190 break; 1191 case D3D11_RTV_DIMENSION_TEXTURE1DARRAY: 1192 Texture1DArray.MipSlice = mipSlice; 1193 Texture1DArray.FirstArraySlice = firstArraySlice; 1194 Texture1DArray.ArraySize = arraySize; 1195 break; 1196 case D3D11_RTV_DIMENSION_TEXTURE2D: 1197 Texture2D.MipSlice = mipSlice; 1198 break; 1199 case D3D11_RTV_DIMENSION_TEXTURE2DARRAY: 1200 Texture2DArray.MipSlice = mipSlice; 1201 Texture2DArray.FirstArraySlice = firstArraySlice; 1202 Texture2DArray.ArraySize = arraySize; 1203 break; 1204 case D3D11_RTV_DIMENSION_TEXTURE2DMS: 1205 break; 1206 case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY: 1207 Texture2DMSArray.FirstArraySlice = firstArraySlice; 1208 Texture2DMSArray.ArraySize = arraySize; 1209 break; 1210 case D3D11_RTV_DIMENSION_TEXTURE3D: 1211 Texture3D.MipSlice = mipSlice; 1212 Texture3D.FirstWSlice = firstArraySlice; 1213 Texture3D.WSize = arraySize; 1214 break; 1215 default: break; 1216 } 1217 } 1218 } 1219 1220 1221 mixin( uuid!(ID3D11RenderTargetView, "dfdba067-0b8d-4865-875b-d7b4516cc164") ); 1222 interface ID3D11RenderTargetView : ID3D11View 1223 { 1224 extern(Windows): 1225 void GetDesc( 1226 D3D11_RENDER_TARGET_VIEW_DESC* pDesc); 1227 } 1228 1229 struct D3D11_TEX1D_DSV 1230 { 1231 UINT MipSlice; 1232 } 1233 1234 struct D3D11_TEX1D_ARRAY_DSV 1235 { 1236 UINT MipSlice; 1237 UINT FirstArraySlice; 1238 UINT ArraySize; 1239 } 1240 1241 struct D3D11_TEX2D_DSV 1242 { 1243 UINT MipSlice; 1244 } 1245 1246 struct D3D11_TEX2D_ARRAY_DSV 1247 { 1248 UINT MipSlice; 1249 UINT FirstArraySlice; 1250 UINT ArraySize; 1251 } 1252 1253 struct D3D11_TEX2DMS_DSV 1254 { 1255 UINT UnusedField_NothingToDefine; 1256 } 1257 1258 struct D3D11_TEX2DMS_ARRAY_DSV 1259 { 1260 UINT FirstArraySlice; 1261 UINT ArraySize; 1262 } 1263 1264 1265 alias D3D11_DSV_FLAG = int; 1266 enum : D3D11_DSV_FLAG 1267 { 1268 D3D11_DSV_READ_ONLY_DEPTH = 0x1L, 1269 D3D11_DSV_READ_ONLY_STENCIL = 0x2L 1270 } 1271 1272 struct D3D11_DEPTH_STENCIL_VIEW_DESC 1273 { 1274 DXGI_FORMAT Format = DXGI_FORMAT_UNKNOWN; 1275 D3D11_DSV_DIMENSION ViewDimension; 1276 UINT Flags; 1277 union 1278 { 1279 D3D11_TEX1D_DSV Texture1D; 1280 D3D11_TEX1D_ARRAY_DSV Texture1DArray; 1281 D3D11_TEX2D_DSV Texture2D; 1282 D3D11_TEX2D_ARRAY_DSV Texture2DArray; 1283 D3D11_TEX2DMS_DSV Texture2DMS; 1284 D3D11_TEX2DMS_ARRAY_DSV Texture2DMSArray; 1285 } 1286 1287 this( 1288 D3D11_DSV_DIMENSION viewDimension, 1289 DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, 1290 UINT mipSlice = 0, 1291 UINT firstArraySlice = 0, 1292 UINT arraySize = -1, 1293 UINT flags = 0 ) 1294 { 1295 Format = format; 1296 ViewDimension = viewDimension; 1297 Flags = flags; 1298 switch (viewDimension) 1299 { 1300 case D3D11_DSV_DIMENSION_TEXTURE1D: 1301 Texture1D.MipSlice = mipSlice; 1302 break; 1303 case D3D11_DSV_DIMENSION_TEXTURE1DARRAY: 1304 Texture1DArray.MipSlice = mipSlice; 1305 Texture1DArray.FirstArraySlice = firstArraySlice; 1306 Texture1DArray.ArraySize = arraySize; 1307 break; 1308 case D3D11_DSV_DIMENSION_TEXTURE2D: 1309 Texture2D.MipSlice = mipSlice; 1310 break; 1311 case D3D11_DSV_DIMENSION_TEXTURE2DARRAY: 1312 Texture2DArray.MipSlice = mipSlice; 1313 Texture2DArray.FirstArraySlice = firstArraySlice; 1314 Texture2DArray.ArraySize = arraySize; 1315 break; 1316 case D3D11_DSV_DIMENSION_TEXTURE2DMS: 1317 break; 1318 case D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY: 1319 Texture2DMSArray.FirstArraySlice = firstArraySlice; 1320 Texture2DMSArray.ArraySize = arraySize; 1321 break; 1322 default: break; 1323 } 1324 } 1325 } 1326 1327 1328 mixin( uuid!(ID3D11DepthStencilView, "9fdac92a-1876-48c3-afad-25b94f84a9b6") ); 1329 interface ID3D11DepthStencilView : ID3D11View 1330 { 1331 extern(Windows): 1332 void GetDesc( 1333 D3D11_DEPTH_STENCIL_VIEW_DESC* pDesc); 1334 } 1335 1336 1337 alias D3D11_BUFFER_UAV_FLAG = int; 1338 enum : D3D11_BUFFER_UAV_FLAG 1339 { 1340 D3D11_BUFFER_UAV_FLAG_RAW = 0x1, 1341 D3D11_BUFFER_UAV_FLAG_APPEND = 0x2, 1342 D3D11_BUFFER_UAV_FLAG_COUNTER = 0x4 1343 } 1344 1345 struct D3D11_BUFFER_UAV 1346 { 1347 UINT FirstElement; 1348 UINT NumElements; 1349 UINT Flags; 1350 } 1351 1352 struct D3D11_TEX1D_UAV 1353 { 1354 UINT MipSlice; 1355 } 1356 1357 struct D3D11_TEX1D_ARRAY_UAV 1358 { 1359 UINT MipSlice; 1360 UINT FirstArraySlice; 1361 UINT ArraySize; 1362 } 1363 1364 struct D3D11_TEX2D_UAV 1365 { 1366 UINT MipSlice; 1367 } 1368 1369 struct D3D11_TEX2D_ARRAY_UAV 1370 { 1371 UINT MipSlice; 1372 UINT FirstArraySlice; 1373 UINT ArraySize; 1374 } 1375 1376 struct D3D11_TEX3D_UAV 1377 { 1378 UINT MipSlice; 1379 UINT FirstWSlice; 1380 UINT WSize; 1381 } 1382 1383 struct D3D11_UNORDERED_ACCESS_VIEW_DESC 1384 { 1385 DXGI_FORMAT Format = DXGI_FORMAT_UNKNOWN; 1386 D3D11_UAV_DIMENSION ViewDimension; 1387 union 1388 { 1389 D3D11_BUFFER_UAV Buffer; 1390 D3D11_TEX1D_UAV Texture1D; 1391 D3D11_TEX1D_ARRAY_UAV Texture1DArray; 1392 D3D11_TEX2D_UAV Texture2D; 1393 D3D11_TEX2D_ARRAY_UAV Texture2DArray; 1394 D3D11_TEX3D_UAV Texture3D; 1395 } 1396 1397 this( 1398 D3D11_UAV_DIMENSION viewDimension, 1399 DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, 1400 UINT mipSlice = 0, // FirstElement for BUFFER 1401 UINT firstArraySlice = 0, // NumElements for BUFFER, FirstWSlice for TEXTURE3D 1402 UINT arraySize = -1, // WSize for TEXTURE3D 1403 UINT flags = 0 ) // BUFFER only 1404 { 1405 Format = format; 1406 ViewDimension = viewDimension; 1407 switch (viewDimension) 1408 { 1409 case D3D11_UAV_DIMENSION_BUFFER: 1410 Buffer.FirstElement = mipSlice; 1411 Buffer.NumElements = firstArraySlice; 1412 Buffer.Flags = flags; 1413 break; 1414 case D3D11_UAV_DIMENSION_TEXTURE1D: 1415 Texture1D.MipSlice = mipSlice; 1416 break; 1417 case D3D11_UAV_DIMENSION_TEXTURE1DARRAY: 1418 Texture1DArray.MipSlice = mipSlice; 1419 Texture1DArray.FirstArraySlice = firstArraySlice; 1420 Texture1DArray.ArraySize = arraySize; 1421 break; 1422 case D3D11_UAV_DIMENSION_TEXTURE2D: 1423 Texture2D.MipSlice = mipSlice; 1424 break; 1425 case D3D11_UAV_DIMENSION_TEXTURE2DARRAY: 1426 Texture2DArray.MipSlice = mipSlice; 1427 Texture2DArray.FirstArraySlice = firstArraySlice; 1428 Texture2DArray.ArraySize = arraySize; 1429 break; 1430 case D3D11_UAV_DIMENSION_TEXTURE3D: 1431 Texture3D.MipSlice = mipSlice; 1432 Texture3D.FirstWSlice = firstArraySlice; 1433 Texture3D.WSize = arraySize; 1434 break; 1435 default: break; 1436 } 1437 } 1438 } 1439 1440 1441 mixin( uuid!( ID3D11UnorderedAccessView, "28acf509-7f5c-48f6-8611-f316010a6380") ); 1442 interface ID3D11UnorderedAccessView : ID3D11View 1443 { 1444 extern(Windows): 1445 void GetDesc( 1446 D3D11_UNORDERED_ACCESS_VIEW_DESC* pDesc); 1447 } 1448 1449 1450 mixin( uuid!(ID3D11VertexShader, "3b301d64-d678-4289-8897-22f8928b72f3") ); 1451 interface ID3D11VertexShader : ID3D11DeviceChild 1452 { 1453 extern(Windows): 1454 } 1455 1456 1457 mixin( uuid!(ID3D11HullShader, "8e5c6061-628a-4c8e-8264-bbe45cb3d5dd") ); 1458 interface ID3D11HullShader : ID3D11DeviceChild 1459 { 1460 extern(Windows): 1461 } 1462 1463 1464 mixin( uuid!(ID3D11DomainShader, "f582c508-0f36-490c-9977-31eece268cfa") ); 1465 interface ID3D11DomainShader : ID3D11DeviceChild 1466 { 1467 extern(Windows): 1468 } 1469 1470 1471 mixin( uuid!( ID3D11GeometryShader, "38325b96-effb-4022-ba02-2e795b70275c") ); 1472 interface ID3D11GeometryShader : ID3D11DeviceChild 1473 { 1474 extern(Windows): 1475 } 1476 1477 1478 mixin( uuid!(ID3D11PixelShader, "ea82e40d-51dc-4f33-93d4-db7c9125ae8c") ); 1479 interface ID3D11PixelShader : ID3D11DeviceChild 1480 { 1481 extern(Windows): 1482 } 1483 1484 1485 mixin( uuid!( ID3D11ComputeShader, "4f5b196e-c2bd-495e-bd01-1fded38e4969") ); 1486 interface ID3D11ComputeShader : ID3D11DeviceChild 1487 { 1488 extern(Windows): 1489 } 1490 1491 1492 mixin( uuid!( ID3D11InputLayout, "e4819ddc-4cf0-4025-bd26-5de82a3e07b7") ); 1493 interface ID3D11InputLayout : ID3D11DeviceChild 1494 { 1495 extern(Windows): 1496 } 1497 1498 1499 alias D3D11_FILTER = int; 1500 enum : D3D11_FILTER 1501 { 1502 D3D11_FILTER_MIN_MAG_MIP_POINT = 0, 1503 D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1, 1504 D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4, 1505 D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5, 1506 D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10, 1507 D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, 1508 D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14, 1509 D3D11_FILTER_MIN_MAG_MIP_LINEAR = 0x15, 1510 D3D11_FILTER_ANISOTROPIC = 0x55, 1511 D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80, 1512 D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, 1513 D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, 1514 D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, 1515 D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, 1516 D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, 1517 D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, 1518 D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, 1519 D3D11_FILTER_COMPARISON_ANISOTROPIC = 0xd5 1520 } 1521 1522 1523 alias D3D11_FILTER_TYPE = int; 1524 enum : D3D11_FILTER_TYPE 1525 { 1526 D3D11_FILTER_TYPE_POINT = 0, 1527 D3D11_FILTER_TYPE_LINEAR = 1 1528 } 1529 1530 enum D3D11_FILTER_TYPE_MASK = ( 0x3 ); 1531 enum D3D11_MIN_FILTER_SHIFT = ( 4 ); 1532 enum D3D11_MAG_FILTER_SHIFT = ( 2 ); 1533 enum D3D11_MIP_FILTER_SHIFT = ( 0 ); 1534 enum D3D11_COMPARISON_FILTERING_BIT = ( 0x80 ); 1535 enum D3D11_ANISOTROPIC_FILTERING_BIT = ( 0x40 ); 1536 1537 D3D11_FILTER D3D11_ENCODE_BASIC_FILTER(T0, T1, T2, T3)( T0 min, T1 mag, T2 mip, T3 bComparison ){ 1538 return ( cast( D3D11_FILTER ) ( 1539 ( ( bComparison ) ? D3D11_COMPARISON_FILTERING_BIT : 0 ) | 1540 ( ( ( min ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MIN_FILTER_SHIFT ) | 1541 ( ( ( mag ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MAG_FILTER_SHIFT ) | 1542 ( ( ( mip ) & D3D11_FILTER_TYPE_MASK ) << D3D11_MIP_FILTER_SHIFT ) ) ); 1543 } 1544 1545 D3D11_FILTER D3D11_ENCODE_ANISOTROPIC_FILTER(T)(T bComparison ){ 1546 return ( cast( D3D11_FILTER ) ( 1547 D3D11_ANISOTROPIC_FILTERING_BIT | 1548 D3D11_ENCODE_BASIC_FILTER( D3D11_FILTER_TYPE.D3D11_FILTER_TYPE_LINEAR, 1549 D3D11_FILTER_TYPE.D3D11_FILTER_TYPE_LINEAR, 1550 D3D11_FILTER_TYPE.D3D11_FILTER_TYPE_LINEAR, 1551 bComparison ))); 1552 } 1553 1554 1555 D3D11_FILTER_TYPE D3D11_DECODE_MAG_FILTER(T)( d3d11Filter ){ 1556 return ( cast( D3D11_FILTER_TYPE ) 1557 ( ( ( d3d11Filter ) >> D3D11_MAG_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) ) ; 1558 } 1559 1560 1561 D3D11_FILTER_TYPE D3D11_DECODE_MIN_FILTER(T)(T d3d11Filter ){ 1562 return ( cast( D3D11_FILTER_TYPE ) 1563 ( ( ( d3d11Filter ) >> D3D11_MIN_FILTER_SHIFT ) & D3D11_FILTER_TYPE_MASK ) ); 1564 } 1565 1566 bool D3D11_DECODE_IS_COMPARISON_FILTER(T)(T d3d11Filter ){ 1567 return cast(bool)( ( d3d11Filter ) & D3D11_COMPARISON_FILTERING_BIT ); 1568 } 1569 bool D3D11_DECODE_IS_ANISOTROPIC_FILTER(T)(T d3d11Filter ){ 1570 return cast(bool)( ( ( d3d11Filter ) & D3D11_ANISOTROPIC_FILTERING_BIT ) && 1571 ( D3D11_FILTER_TYPE.D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIN_FILTER( d3d11Filter ) ) && 1572 ( D3D11_FILTER_TYPE.D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MAG_FILTER( d3d11Filter ) ) && 1573 ( D3D11_FILTER_TYPE.D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIP_FILTER( d3d11Filter ) ) ); 1574 } 1575 1576 1577 alias D3D11_TEXTURE_ADDRESS_MODE = int; 1578 enum : D3D11_TEXTURE_ADDRESS_MODE 1579 { 1580 D3D11_TEXTURE_ADDRESS_WRAP = 1, 1581 D3D11_TEXTURE_ADDRESS_MIRROR = 2, 1582 D3D11_TEXTURE_ADDRESS_CLAMP = 3, 1583 D3D11_TEXTURE_ADDRESS_BORDER = 4, 1584 D3D11_TEXTURE_ADDRESS_MIRROR_ONCE = 5 1585 } 1586 1587 struct D3D11_SAMPLER_DESC 1588 { 1589 D3D11_FILTER Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR; 1590 D3D11_TEXTURE_ADDRESS_MODE AddressU = D3D11_TEXTURE_ADDRESS_CLAMP; 1591 D3D11_TEXTURE_ADDRESS_MODE AddressV = D3D11_TEXTURE_ADDRESS_CLAMP; 1592 D3D11_TEXTURE_ADDRESS_MODE AddressW = D3D11_TEXTURE_ADDRESS_CLAMP; 1593 FLOAT MipLODBias = 0; 1594 UINT MaxAnisotropy = 1; 1595 D3D11_COMPARISON_FUNC ComparisonFunc = D3D11_COMPARISON_NEVER; 1596 FLOAT[ 4 ] BorderColor = [1.0f, 1.0f, 1.0f, 1.0f]; 1597 FLOAT MinLOD = -3.402823466e+38F; 1598 FLOAT MaxLOD = 3.402823466e+38F; 1599 } 1600 1601 1602 mixin( uuid!( ID3D11SamplerState, "da6fea51-564c-4487-9810-f0d0f9b4e3a5") ); 1603 interface ID3D11SamplerState : ID3D11DeviceChild 1604 { 1605 extern(Windows): 1606 void GetDesc( 1607 D3D11_SAMPLER_DESC* pDesc); 1608 } 1609 1610 1611 alias D3D11_FORMAT_SUPPORT = int; 1612 enum : D3D11_FORMAT_SUPPORT 1613 { 1614 D3D11_FORMAT_SUPPORT_BUFFER = 0x1, 1615 D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x2, 1616 D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x4, 1617 D3D11_FORMAT_SUPPORT_SO_BUFFER = 0x8, 1618 D3D11_FORMAT_SUPPORT_TEXTURE1D = 0x10, 1619 D3D11_FORMAT_SUPPORT_TEXTURE2D = 0x20, 1620 D3D11_FORMAT_SUPPORT_TEXTURE3D = 0x40, 1621 D3D11_FORMAT_SUPPORT_TEXTURECUBE = 0x80, 1622 D3D11_FORMAT_SUPPORT_SHADER_LOAD = 0x100, 1623 D3D11_FORMAT_SUPPORT_SHADER_SAMPLE = 0x200, 1624 D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x400, 1625 D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x800, 1626 D3D11_FORMAT_SUPPORT_MIP = 0x1000, 1627 D3D11_FORMAT_SUPPORT_MIP_AUTOGEN = 0x2000, 1628 D3D11_FORMAT_SUPPORT_RENDER_TARGET = 0x4000, 1629 D3D11_FORMAT_SUPPORT_BLENDABLE = 0x8000, 1630 D3D11_FORMAT_SUPPORT_DEPTH_STENCIL = 0x10000, 1631 D3D11_FORMAT_SUPPORT_CPU_LOCKABLE = 0x20000, 1632 D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x40000, 1633 D3D11_FORMAT_SUPPORT_DISPLAY = 0x80000, 1634 D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x100000, 1635 D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x200000, 1636 D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x400000, 1637 D3D11_FORMAT_SUPPORT_SHADER_GATHER = 0x800000, 1638 D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST = 0x1000000, 1639 D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000, 1640 D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON = 0x4000000 1641 } 1642 1643 1644 alias D3D11_FORMAT_SUPPORT2 = int; 1645 enum : D3D11_FORMAT_SUPPORT2 1646 { 1647 D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1, 1648 D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2, 1649 D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4, 1650 D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8, 1651 D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10, 1652 D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20, 1653 D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40, 1654 D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80 1655 } 1656 1657 1658 mixin( uuid!(ID3D11Asynchronous, "4b35d0cd-1e15-4258-9c98-1b1333f6dd3b") ); 1659 interface ID3D11Asynchronous : ID3D11DeviceChild 1660 { 1661 extern(Windows): 1662 UINT GetDataSize(); 1663 } 1664 1665 1666 alias D3D11_ASYNC_GETDATA_FLAG = int; 1667 enum : D3D11_ASYNC_GETDATA_FLAG 1668 { 1669 D3D11_ASYNC_GETDATA_DONOTFLUSH = 0x1 1670 } 1671 1672 1673 alias D3D11_QUERY = int; 1674 enum : D3D11_QUERY 1675 { 1676 D3D11_QUERY_EVENT = 0, 1677 D3D11_QUERY_OCCLUSION = ( D3D11_QUERY_EVENT + 1 ) , 1678 D3D11_QUERY_TIMESTAMP = ( D3D11_QUERY_OCCLUSION + 1 ) , 1679 D3D11_QUERY_TIMESTAMP_DISJOINT = ( D3D11_QUERY_TIMESTAMP + 1 ) , 1680 D3D11_QUERY_PIPELINE_STATISTICS = ( D3D11_QUERY_TIMESTAMP_DISJOINT + 1 ) , 1681 D3D11_QUERY_OCCLUSION_PREDICATE = ( D3D11_QUERY_PIPELINE_STATISTICS + 1 ) , 1682 D3D11_QUERY_SO_STATISTICS = ( D3D11_QUERY_OCCLUSION_PREDICATE + 1 ) , 1683 D3D11_QUERY_SO_OVERFLOW_PREDICATE = ( D3D11_QUERY_SO_STATISTICS + 1 ) , 1684 D3D11_QUERY_SO_STATISTICS_STREAM0 = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE + 1 ) , 1685 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 = ( D3D11_QUERY_SO_STATISTICS_STREAM0 + 1 ) , 1686 D3D11_QUERY_SO_STATISTICS_STREAM1 = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 + 1 ) , 1687 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 = ( D3D11_QUERY_SO_STATISTICS_STREAM1 + 1 ) , 1688 D3D11_QUERY_SO_STATISTICS_STREAM2 = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 + 1 ) , 1689 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 = ( D3D11_QUERY_SO_STATISTICS_STREAM2 + 1 ) , 1690 D3D11_QUERY_SO_STATISTICS_STREAM3 = ( D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 + 1 ) , 1691 D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3 = ( D3D11_QUERY_SO_STATISTICS_STREAM3 + 1 ) 1692 } 1693 1694 1695 alias D3D11_QUERY_MISC_FLAG = int; 1696 enum : D3D11_QUERY_MISC_FLAG 1697 { 1698 D3D11_QUERY_MISC_PREDICATEHINT = 0x1 1699 } 1700 1701 struct D3D11_QUERY_DESC 1702 { 1703 D3D11_QUERY Query; 1704 UINT MiscFlags; 1705 } 1706 1707 1708 mixin( uuid!(ID3D11Query, "d6c00747-87b7-425e-b84d-44d108560afd") ); 1709 interface ID3D11Query : ID3D11Asynchronous 1710 { 1711 extern(Windows): 1712 void GetDesc( 1713 D3D11_QUERY_DESC* pDesc); 1714 } 1715 1716 1717 mixin( uuid!(ID3D11Predicate, "9eb576dd-9f77-4d86-81aa-8bab5fe490e2") ); 1718 interface ID3D11Predicate : ID3D11Query 1719 { 1720 extern(Windows): 1721 } 1722 1723 1724 struct D3D11_QUERY_DATA_TIMESTAMP_DISJOINT 1725 { 1726 UINT64 Frequency; 1727 BOOL Disjoint; 1728 } 1729 1730 struct D3D11_QUERY_DATA_PIPELINE_STATISTICS 1731 { 1732 UINT64 IAVertices; 1733 UINT64 IAPrimitives; 1734 UINT64 VSInvocations; 1735 UINT64 GSInvocations; 1736 UINT64 GSPrimitives; 1737 UINT64 CInvocations; 1738 UINT64 CPrimitives; 1739 UINT64 PSInvocations; 1740 UINT64 HSInvocations; 1741 UINT64 DSInvocations; 1742 UINT64 CSInvocations; 1743 } 1744 1745 struct D3D11_QUERY_DATA_SO_STATISTICS 1746 { 1747 UINT64 NumPrimitivesWritten; 1748 UINT64 PrimitivesStorageNeeded; 1749 } 1750 1751 1752 alias D3D11_COUNTER = int; 1753 enum : D3D11_COUNTER 1754 { 1755 D3D11_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000 1756 } 1757 1758 1759 alias D3D11_COUNTER_TYPE = int; 1760 enum : D3D11_COUNTER_TYPE 1761 { 1762 D3D11_COUNTER_TYPE_FLOAT32 = 0, 1763 D3D11_COUNTER_TYPE_UINT16 = ( D3D11_COUNTER_TYPE_FLOAT32 + 1 ) , 1764 D3D11_COUNTER_TYPE_UINT32 = ( D3D11_COUNTER_TYPE_UINT16 + 1 ) , 1765 D3D11_COUNTER_TYPE_UINT64 = ( D3D11_COUNTER_TYPE_UINT32 + 1 ) 1766 } 1767 1768 struct D3D11_COUNTER_DESC 1769 { 1770 D3D11_COUNTER Counter; 1771 UINT MiscFlags; 1772 } 1773 1774 1775 struct D3D11_COUNTER_INFO 1776 { 1777 D3D11_COUNTER LastDeviceDependentCounter; 1778 UINT NumSimultaneousCounters; 1779 UINT8 NumDetectableParallelUnits; 1780 } 1781 1782 1783 mixin( uuid!(ID3D11Counter, "6e8c49fb-a371-4770-b440-29086022b741") ); 1784 interface ID3D11Counter : ID3D11Asynchronous 1785 { 1786 extern(Windows): 1787 void GetDesc( 1788 D3D11_COUNTER_DESC* pDesc); 1789 } 1790 1791 1792 alias D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS = int; 1793 enum : D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS 1794 { 1795 D3D11_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff, 1796 D3D11_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe 1797 } 1798 1799 1800 alias D3D11_DEVICE_CONTEXT_TYPE = int; 1801 enum : D3D11_DEVICE_CONTEXT_TYPE 1802 { 1803 D3D11_DEVICE_CONTEXT_IMMEDIATE = 0, 1804 D3D11_DEVICE_CONTEXT_DEFERRED = ( D3D11_DEVICE_CONTEXT_IMMEDIATE + 1 ) 1805 } 1806 1807 struct D3D11_CLASS_INSTANCE_DESC 1808 { 1809 UINT InstanceId; 1810 UINT InstanceIndex; 1811 UINT TypeId; 1812 UINT ConstantBuffer; 1813 UINT BaseConstantBufferOffset; 1814 UINT BaseTexture; 1815 UINT BaseSampler; 1816 BOOL Created; 1817 } 1818 1819 1820 mixin( uuid!(ID3D11ClassInstance, "a6cd7faa-b0b7-4a2f-9436-8662a65797cb") ); 1821 interface ID3D11ClassInstance : ID3D11DeviceChild 1822 { 1823 extern(Windows): 1824 void GetClassLinkage( 1825 ID3D11ClassLinkage* ppLinkage); 1826 1827 void GetDesc( 1828 D3D11_CLASS_INSTANCE_DESC* pDesc); 1829 1830 void GetInstanceName( 1831 LPSTR pInstanceName, 1832 SIZE_T* pBufferLength); 1833 1834 void GetTypeName( 1835 LPSTR pTypeName, 1836 SIZE_T* pBufferLength); 1837 } 1838 1839 1840 mixin( uuid!(ID3D11ClassLinkage, "ddf57cba-9543-46e4-a12b-f207a0fe7fed") ); 1841 interface ID3D11ClassLinkage : ID3D11DeviceChild 1842 { 1843 extern(Windows): 1844 HRESULT GetClassInstance( 1845 LPCSTR pClassInstanceName, 1846 UINT InstanceIndex, 1847 ID3D11ClassInstance* ppInstance); 1848 1849 HRESULT CreateClassInstance( 1850 LPCSTR pClassTypeName, 1851 UINT ConstantBufferOffset, 1852 UINT ConstantVectorOffset, 1853 UINT TextureOffset, 1854 UINT SamplerOffset, 1855 ID3D11ClassInstance* ppInstance); 1856 } 1857 1858 1859 mixin( uuid!(ID3D11CommandList, "a24bc4d1-769e-43f7-8013-98ff566c18e2") ); 1860 interface ID3D11CommandList : ID3D11DeviceChild 1861 { 1862 extern(Windows): 1863 UINT GetContextFlags(); 1864 } 1865 1866 1867 alias D3D11_FEATURE = int; 1868 enum : D3D11_FEATURE 1869 { 1870 D3D11_FEATURE_THREADING = 0, 1871 D3D11_FEATURE_DOUBLES = ( D3D11_FEATURE_THREADING + 1 ) , 1872 D3D11_FEATURE_FORMAT_SUPPORT = ( D3D11_FEATURE_DOUBLES + 1 ) , 1873 D3D11_FEATURE_FORMAT_SUPPORT2 = ( D3D11_FEATURE_FORMAT_SUPPORT + 1 ) , 1874 D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS = ( D3D11_FEATURE_FORMAT_SUPPORT2 + 1 ) 1875 } 1876 1877 struct D3D11_FEATURE_DATA_THREADING 1878 { 1879 BOOL DriverConcurrentCreates; 1880 BOOL DriverCommandLists; 1881 } 1882 1883 struct D3D11_FEATURE_DATA_DOUBLES 1884 { 1885 BOOL DoublePrecisionFloatShaderOps; 1886 } 1887 1888 struct D3D11_FEATURE_DATA_FORMAT_SUPPORT 1889 { 1890 DXGI_FORMAT InFormat; 1891 UINT OutFormatSupport; 1892 } 1893 1894 struct D3D11_FEATURE_DATA_FORMAT_SUPPORT2 1895 { 1896 DXGI_FORMAT InFormat; 1897 UINT OutFormatSupport2; 1898 } 1899 1900 struct D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS 1901 { 1902 BOOL ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x; 1903 } 1904 1905 1906 mixin( uuid!(ID3D11DeviceContext, "c0bfa96c-e089-44fb-8eaf-26f8796190da") ); 1907 interface ID3D11DeviceContext : ID3D11DeviceChild 1908 { 1909 extern(Windows): 1910 void VSSetConstantBuffers( 1911 UINT StartSlot, 1912 UINT NumBuffers, 1913 const(ID3D11Buffer)* ppConstantBuffers); 1914 1915 void PSSetShaderResources( 1916 UINT StartSlot, 1917 UINT NumViews, 1918 const(ID3D11ShaderResourceView)* ppShaderResourceViews); 1919 1920 void PSSetShader( 1921 ID3D11PixelShader pPixelShader, 1922 const(ID3D11ClassInstance)* ppClassInstances, 1923 UINT NumClassInstances); 1924 1925 void PSSetSamplers( 1926 UINT StartSlot, 1927 UINT NumSamplers, 1928 const(ID3D11SamplerState)* ppSamplers); 1929 1930 void VSSetShader( 1931 ID3D11VertexShader pVertexShader, 1932 const(ID3D11ClassInstance)* ppClassInstances, 1933 UINT NumClassInstances); 1934 1935 void DrawIndexed( 1936 UINT IndexCount, 1937 UINT StartIndexLocation, 1938 INT BaseVertexLocation); 1939 1940 void Draw( 1941 UINT VertexCount, 1942 UINT StartVertexLocation); 1943 1944 HRESULT Map( 1945 ID3D11Resource pResource, 1946 UINT Subresource, 1947 D3D11_MAP MapType, 1948 UINT MapFlags, 1949 D3D11_MAPPED_SUBRESOURCE* pMappedResource); 1950 1951 void Unmap( 1952 ID3D11Resource pResource, 1953 UINT Subresource); 1954 1955 void PSSetConstantBuffers( 1956 UINT StartSlot, 1957 UINT NumBuffers, 1958 const(ID3D11Buffer)* ppConstantBuffers); 1959 1960 void IASetInputLayout( 1961 ID3D11InputLayout pInputLayout); 1962 1963 void IASetVertexBuffers( 1964 UINT StartSlot, 1965 UINT NumBuffers, 1966 const(ID3D11Buffer)* ppVertexBuffers, 1967 const(UINT)* pStrides, 1968 const(UINT)* pOffsets); 1969 1970 void IASetIndexBuffer( 1971 ID3D11Buffer pIndexBuffer, 1972 DXGI_FORMAT Format, 1973 UINT Offset); 1974 1975 void DrawIndexedInstanced( 1976 UINT IndexCountPerInstance, 1977 UINT InstanceCount, 1978 UINT StartIndexLocation, 1979 INT BaseVertexLocation, 1980 UINT StartInstanceLocation); 1981 1982 void DrawInstanced( 1983 UINT VertexCountPerInstance, 1984 UINT InstanceCount, 1985 UINT StartVertexLocation, 1986 UINT StartInstanceLocation); 1987 1988 void GSSetConstantBuffers( 1989 UINT StartSlot, 1990 UINT NumBuffers, 1991 const(ID3D11Buffer)* ppConstantBuffers); 1992 1993 void GSSetShader( 1994 ID3D11GeometryShader pShader, 1995 const(ID3D11ClassInstance)* ppClassInstances, 1996 UINT NumClassInstances); 1997 1998 void IASetPrimitiveTopology( 1999 D3D11_PRIMITIVE_TOPOLOGY Topology); 2000 2001 void VSSetShaderResources( 2002 UINT StartSlot, 2003 UINT NumViews, 2004 const(ID3D11ShaderResourceView)* ppShaderResourceViews); 2005 2006 void VSSetSamplers( 2007 UINT StartSlot, 2008 UINT NumSamplers, 2009 const(ID3D11SamplerState)* ppSamplers); 2010 2011 void Begin( 2012 ID3D11Asynchronous pAsync); 2013 2014 void End( 2015 ID3D11Asynchronous pAsync); 2016 2017 HRESULT GetData( 2018 ID3D11Asynchronous pAsync, 2019 void* pData, 2020 UINT DataSize, 2021 UINT GetDataFlags); 2022 2023 void SetPredication( 2024 ID3D11Predicate pPredicate, 2025 BOOL PredicateValue); 2026 2027 void GSSetShaderResources( 2028 UINT StartSlot, 2029 UINT NumViews, 2030 const(ID3D11ShaderResourceView)* ppShaderResourceViews); 2031 2032 void GSSetSamplers( 2033 UINT StartSlot, 2034 UINT NumSamplers, 2035 const(ID3D11SamplerState)* ppSamplers); 2036 2037 void OMSetRenderTargets( 2038 UINT NumViews, 2039 const(ID3D11RenderTargetView)* ppRenderTargetViews, 2040 ID3D11DepthStencilView pDepthStencilView); 2041 2042 void OMSetRenderTargetsAndUnorderedAccessViews( 2043 UINT NumRTVs, 2044 const(ID3D11RenderTargetView)* ppRenderTargetViews, 2045 ID3D11DepthStencilView pDepthStencilView, 2046 UINT UAVStartSlot, 2047 UINT NumUAVs, 2048 const(ID3D11UnorderedAccessView)* ppUnorderedAccessViews, 2049 const(UINT)* pUAVInitialCounts); 2050 2051 void OMSetBlendState( 2052 ID3D11BlendState pBlendState, 2053 FLOAT* BlendFactor, //FLOAT[ 4 ] BlendFactor 2054 UINT SampleMask); 2055 2056 void OMSetDepthStencilState( 2057 ID3D11DepthStencilState pDepthStencilState, 2058 UINT StencilRef); 2059 2060 void SOSetTargets( 2061 UINT NumBuffers, 2062 const(ID3D11Buffer)* ppSOTargets, 2063 const(UINT)* pOffsets); 2064 2065 void DrawAuto(); 2066 2067 void DrawIndexedInstancedIndirect( 2068 ID3D11Buffer pBufferForArgs, 2069 UINT AlignedByteOffsetForArgs); 2070 2071 void DrawInstancedIndirect( 2072 ID3D11Buffer pBufferForArgs, 2073 UINT AlignedByteOffsetForArgs); 2074 2075 void Dispatch( 2076 UINT ThreadGroupCountX, 2077 UINT ThreadGroupCountY, 2078 UINT ThreadGroupCountZ); 2079 2080 void DispatchIndirect( 2081 ID3D11Buffer pBufferForArgs, 2082 UINT AlignedByteOffsetForArgs); 2083 2084 void RSSetState( 2085 ID3D11RasterizerState pRasterizerState); 2086 2087 void RSSetViewports( 2088 UINT NumViewports, 2089 const(D3D11_VIEWPORT)* pViewports); 2090 2091 void RSSetScissorRects( 2092 UINT NumRects, 2093 const(D3D11_RECT)* pRects); 2094 2095 void CopySubresourceRegion( 2096 ID3D11Resource pDstResource, 2097 UINT DstSubresource, 2098 UINT DstX, 2099 UINT DstY, 2100 UINT DstZ, 2101 ID3D11Resource pSrcResource, 2102 UINT SrcSubresource, 2103 const(D3D11_BOX)* pSrcBox); 2104 2105 void CopyResource( 2106 ID3D11Resource pDstResource, 2107 ID3D11Resource pSrcResource); 2108 2109 void UpdateSubresource( 2110 ID3D11Resource pDstResource, 2111 UINT DstSubresource, 2112 const(D3D11_BOX)* pDstBox, 2113 const void* pSrcData, 2114 UINT SrcRowPitch, 2115 UINT SrcDepthPitch); 2116 2117 void CopyStructureCount( 2118 ID3D11Buffer pDstBuffer, 2119 UINT DstAlignedByteOffset, 2120 ID3D11UnorderedAccessView pSrcView); 2121 2122 void ClearRenderTargetView( 2123 ID3D11RenderTargetView pRenderTargetView, 2124 FLOAT* ColorRGBA); //FLOAT[ 4 ] ColorRGBA); 2125 2126 void ClearUnorderedAccessViewUint( 2127 ID3D11UnorderedAccessView pUnorderedAccessView, 2128 UINT* Values); //UINT[ 4 ] Values); 2129 2130 void ClearUnorderedAccessViewFloat( 2131 ID3D11UnorderedAccessView pUnorderedAccessView, 2132 FLOAT* Values); //FLOAT[ 4 ] Values); 2133 2134 void ClearDepthStencilView( 2135 ID3D11DepthStencilView pDepthStencilView, 2136 UINT ClearFlags, 2137 FLOAT Depth, 2138 UINT8 Stencil); 2139 2140 void GenerateMips( 2141 ID3D11ShaderResourceView pShaderResourceView); 2142 2143 void SetResourceMinLOD( 2144 ID3D11Resource pResource, 2145 FLOAT MinLOD); 2146 2147 FLOAT GetResourceMinLOD( 2148 ID3D11Resource pResource); 2149 2150 void ResolveSubresource( 2151 ID3D11Resource pDstResource, 2152 UINT DstSubresource, 2153 ID3D11Resource pSrcResource, 2154 UINT SrcSubresource, 2155 DXGI_FORMAT Format); 2156 2157 void ExecuteCommandList( 2158 ID3D11CommandList pCommandList, 2159 BOOL RestoreContextState); 2160 2161 void HSSetShaderResources( 2162 UINT StartSlot, 2163 UINT NumViews, 2164 const(ID3D11ShaderResourceView)* ppShaderResourceViews); 2165 2166 void HSSetShader( 2167 ID3D11HullShader pHullShader, 2168 const(ID3D11ClassInstance)* ppClassInstances, 2169 UINT NumClassInstances); 2170 2171 void HSSetSamplers( 2172 UINT StartSlot, 2173 UINT NumSamplers, 2174 const(ID3D11SamplerState)* ppSamplers); 2175 2176 void HSSetConstantBuffers( 2177 UINT StartSlot, 2178 UINT NumBuffers, 2179 const(ID3D11Buffer)* ppConstantBuffers); 2180 2181 void DSSetShaderResources( 2182 UINT StartSlot, 2183 UINT NumViews, 2184 const(ID3D11ShaderResourceView)* ppShaderResourceViews); 2185 2186 void DSSetShader( 2187 ID3D11DomainShader pDomainShader, 2188 const(ID3D11ClassInstance)* ppClassInstances, 2189 UINT NumClassInstances); 2190 2191 void DSSetSamplers( 2192 UINT StartSlot, 2193 UINT NumSamplers, 2194 const(ID3D11SamplerState)* ppSamplers); 2195 2196 void DSSetConstantBuffers( 2197 UINT StartSlot, 2198 UINT NumBuffers, 2199 const(ID3D11Buffer)* ppConstantBuffers); 2200 2201 void CSSetShaderResources( 2202 UINT StartSlot, 2203 UINT NumViews, 2204 const(ID3D11ShaderResourceView)* ppShaderResourceViews); 2205 2206 void CSSetUnorderedAccessViews( 2207 UINT StartSlot, 2208 UINT NumUAVs, 2209 const(ID3D11UnorderedAccessView)* ppUnorderedAccessViews, 2210 const(UINT)* pUAVInitialCounts); 2211 2212 void CSSetShader( 2213 ID3D11ComputeShader pComputeShader, 2214 const(ID3D11ClassInstance)* ppClassInstances, 2215 UINT NumClassInstances); 2216 2217 void CSSetSamplers( 2218 UINT StartSlot, 2219 UINT NumSamplers, 2220 const(ID3D11SamplerState)* ppSamplers); 2221 2222 void CSSetConstantBuffers( 2223 UINT StartSlot, 2224 UINT NumBuffers, 2225 const(ID3D11Buffer)* ppConstantBuffers); 2226 2227 void VSGetConstantBuffers( 2228 UINT StartSlot, 2229 UINT NumBuffers, 2230 ID3D11Buffer* ppConstantBuffers); 2231 2232 void PSGetShaderResources( 2233 UINT StartSlot, 2234 UINT NumViews, 2235 ID3D11ShaderResourceView* ppShaderResourceViews); 2236 2237 void PSGetShader( 2238 ID3D11PixelShader* ppPixelShader, 2239 const(ID3D11ClassInstance)* ppClassInstances, 2240 UINT* pNumClassInstances); 2241 2242 void PSGetSamplers( 2243 UINT StartSlot, 2244 UINT NumSamplers, 2245 ID3D11SamplerState* ppSamplers); 2246 2247 void VSGetShader( 2248 ID3D11VertexShader* ppVertexShader, 2249 const(ID3D11ClassInstance)* ppClassInstances, 2250 UINT* pNumClassInstances); 2251 2252 void PSGetConstantBuffers( 2253 UINT StartSlot, 2254 UINT NumBuffers, 2255 ID3D11Buffer* ppConstantBuffers); 2256 2257 void IAGetInputLayout( 2258 ID3D11InputLayout* ppInputLayout); 2259 2260 void IAGetVertexBuffers( 2261 UINT StartSlot, 2262 UINT NumBuffers, 2263 ID3D11Buffer* ppVertexBuffers, 2264 UINT* pStrides, 2265 UINT* pOffsets); 2266 2267 void IAGetIndexBuffer( 2268 ID3D11Buffer* pIndexBuffer, 2269 DXGI_FORMAT* Format, 2270 UINT* Offset); 2271 2272 void GSGetConstantBuffers( 2273 UINT StartSlot, 2274 UINT NumBuffers, 2275 ID3D11Buffer* ppConstantBuffers); 2276 2277 void GSGetShader( 2278 ID3D11GeometryShader* ppGeometryShader, 2279 const(ID3D11ClassInstance)* ppClassInstances, 2280 UINT* pNumClassInstances); 2281 2282 void IAGetPrimitiveTopology( 2283 D3D11_PRIMITIVE_TOPOLOGY* pTopology); 2284 2285 void VSGetShaderResources( 2286 UINT StartSlot, 2287 UINT NumViews, 2288 ID3D11ShaderResourceView* ppShaderResourceViews); 2289 2290 void VSGetSamplers( 2291 UINT StartSlot, 2292 UINT NumSamplers, 2293 ID3D11SamplerState* ppSamplers); 2294 2295 void GetPredication( 2296 ID3D11Predicate* ppPredicate, 2297 BOOL* pPredicateValue); 2298 2299 void GSGetShaderResources( 2300 UINT StartSlot, 2301 UINT NumViews, 2302 ID3D11ShaderResourceView* ppShaderResourceViews); 2303 2304 void GSGetSamplers( 2305 UINT StartSlot, 2306 UINT NumSamplers, 2307 ID3D11SamplerState* ppSamplers); 2308 2309 void OMGetRenderTargets( 2310 UINT NumViews, 2311 ID3D11RenderTargetView* ppRenderTargetViews, 2312 ID3D11DepthStencilView* ppDepthStencilView); 2313 2314 void OMGetRenderTargetsAndUnorderedAccessViews( 2315 UINT NumRTVs, 2316 ID3D11RenderTargetView* ppRenderTargetViews, 2317 ID3D11DepthStencilView* ppDepthStencilView, 2318 UINT UAVStartSlot, 2319 UINT NumUAVs, 2320 ID3D11UnorderedAccessView* ppUnorderedAccessViews); 2321 2322 void OMGetBlendState( 2323 ID3D11BlendState* ppBlendState, 2324 FLOAT* BlendFactor, //FLOAT[ 4 ] BlendFactor, 2325 UINT* pSampleMask); 2326 2327 void OMGetDepthStencilState( 2328 ID3D11DepthStencilState* ppDepthStencilState, 2329 UINT* pStencilRef); 2330 2331 void SOGetTargets( 2332 UINT NumBuffers, 2333 ID3D11Buffer* ppSOTargets); 2334 2335 void RSGetState( 2336 ID3D11RasterizerState* ppRasterizerState); 2337 2338 void RSGetViewports( 2339 UINT* pNumViewports, 2340 D3D11_VIEWPORT* pViewports); 2341 2342 void RSGetScissorRects( 2343 UINT* pNumRects, 2344 D3D11_RECT* pRects); 2345 2346 void HSGetShaderResources( 2347 UINT StartSlot, 2348 UINT NumViews, 2349 ID3D11ShaderResourceView* ppShaderResourceViews); 2350 2351 void HSGetShader( 2352 ID3D11HullShader* ppHullShader, 2353 ID3D11ClassInstance* ppClassInstances, 2354 UINT* pNumClassInstances); 2355 2356 void HSGetSamplers( 2357 UINT StartSlot, 2358 UINT NumSamplers, 2359 ID3D11SamplerState* ppSamplers); 2360 2361 void HSGetConstantBuffers( 2362 UINT StartSlot, 2363 UINT NumBuffers, 2364 ID3D11Buffer* ppConstantBuffers); 2365 2366 void DSGetShaderResources( 2367 UINT StartSlot, 2368 UINT NumViews, 2369 ID3D11ShaderResourceView* ppShaderResourceViews); 2370 2371 void DSGetShader( 2372 ID3D11DomainShader* ppDomainShader, 2373 ID3D11ClassInstance* ppClassInstances, 2374 UINT* pNumClassInstances); 2375 2376 void DSGetSamplers( 2377 UINT StartSlot, 2378 UINT NumSamplers, 2379 ID3D11SamplerState* ppSamplers); 2380 2381 void DSGetConstantBuffers( 2382 UINT StartSlot, 2383 UINT NumBuffers, 2384 ID3D11Buffer* ppConstantBuffers); 2385 2386 void CSGetShaderResources( 2387 UINT StartSlot, 2388 UINT NumViews, 2389 ID3D11ShaderResourceView* ppShaderResourceViews); 2390 2391 void CSGetUnorderedAccessViews( 2392 UINT StartSlot, 2393 UINT NumUAVs, 2394 ID3D11UnorderedAccessView* ppUnorderedAccessViews); 2395 2396 void CSGetShader( 2397 ID3D11ComputeShader* ppComputeShader, 2398 ID3D11ClassInstance* ppClassInstances, 2399 UINT* pNumClassInstances); 2400 2401 void CSGetSamplers( 2402 UINT StartSlot, 2403 UINT NumSamplers, 2404 ID3D11SamplerState* ppSamplers); 2405 2406 void CSGetConstantBuffers( 2407 UINT StartSlot, 2408 UINT NumBuffers, 2409 ID3D11Buffer* ppConstantBuffers); 2410 2411 void ClearState(); 2412 2413 void Flush(); 2414 2415 D3D11_DEVICE_CONTEXT_TYPE GetType(); 2416 2417 UINT GetContextFlags(); 2418 2419 HRESULT FinishCommandList( 2420 BOOL RestoreDeferredContextState, 2421 ID3D11CommandList* ppCommandList); 2422 } 2423 2424 2425 mixin( uuid!(ID3D11Device, "db6f6ddb-ac77-4e88-8253-819df9bbf140") ); 2426 interface ID3D11Device : IUnknown 2427 { 2428 extern(Windows): 2429 HRESULT CreateBuffer( 2430 const(D3D11_BUFFER_DESC)* pDesc, 2431 const(D3D11_SUBRESOURCE_DATA)* pInitialData, 2432 ID3D11Buffer* ppBuffer); 2433 2434 HRESULT CreateTexture1D( 2435 const(D3D11_TEXTURE1D_DESC)* pDesc, 2436 const(D3D11_SUBRESOURCE_DATA)* pInitialData, 2437 ID3D11Texture1D* ppTexture1D); 2438 2439 HRESULT CreateTexture2D( 2440 const(D3D11_TEXTURE2D_DESC)* pDesc, 2441 const(D3D11_SUBRESOURCE_DATA)* pInitialData, 2442 ID3D11Texture2D* ppTexture2D); 2443 2444 HRESULT CreateTexture3D( 2445 const(D3D11_TEXTURE3D_DESC)* pDesc, 2446 const(D3D11_SUBRESOURCE_DATA)* pInitialData, 2447 ID3D11Texture3D* ppTexture3D); 2448 2449 HRESULT CreateShaderResourceView( 2450 ID3D11Resource pResource, 2451 const(D3D11_SHADER_RESOURCE_VIEW_DESC)* pDesc, 2452 ID3D11ShaderResourceView* ppSRView); 2453 2454 HRESULT CreateUnorderedAccessView( 2455 ID3D11Resource pResource, 2456 const(D3D11_UNORDERED_ACCESS_VIEW_DESC)* pDesc, 2457 ID3D11UnorderedAccessView* ppUAView); 2458 2459 HRESULT CreateRenderTargetView( 2460 ID3D11Resource pResource, 2461 const(D3D11_RENDER_TARGET_VIEW_DESC)* pDesc, 2462 ID3D11RenderTargetView* ppRTView); 2463 2464 HRESULT CreateDepthStencilView( 2465 ID3D11Resource pResource, 2466 const(D3D11_DEPTH_STENCIL_VIEW_DESC)* pDesc, 2467 ID3D11DepthStencilView* ppDepthStencilView); 2468 2469 HRESULT CreateInputLayout( 2470 const(D3D11_INPUT_ELEMENT_DESC)* pInputElementDescs, 2471 UINT NumElements, 2472 const void* pShaderBytecodeWithInputSignature, 2473 SIZE_T BytecodeLength, 2474 ID3D11InputLayout* ppInputLayout); 2475 2476 HRESULT CreateVertexShader( 2477 const void* pShaderBytecode, 2478 SIZE_T BytecodeLength, 2479 ID3D11ClassLinkage pClassLinkage, 2480 ID3D11VertexShader* ppVertexShader); 2481 2482 HRESULT CreateGeometryShader( 2483 const void* pShaderBytecode, 2484 SIZE_T BytecodeLength, 2485 ID3D11ClassLinkage pClassLinkage, 2486 ID3D11GeometryShader* ppGeometryShader); 2487 2488 HRESULT CreateGeometryShaderWithStreamOutput( 2489 const void* pShaderBytecode, 2490 SIZE_T BytecodeLength, 2491 const(D3D11_SO_DECLARATION_ENTRY)* pSODeclaration, 2492 UINT NumEntries, 2493 const(UINT)* pBufferStrides, 2494 UINT NumStrides, 2495 UINT RasterizedStream, 2496 ID3D11ClassLinkage pClassLinkage, 2497 ID3D11GeometryShader* ppGeometryShader); 2498 2499 HRESULT CreatePixelShader( 2500 const void* pShaderBytecode, 2501 SIZE_T BytecodeLength, 2502 ID3D11ClassLinkage pClassLinkage, 2503 ID3D11PixelShader* ppPixelShader); 2504 2505 HRESULT CreateHullShader( 2506 const void* pShaderBytecode, 2507 SIZE_T BytecodeLength, 2508 ID3D11ClassLinkage pClassLinkage, 2509 ID3D11HullShader* ppHullShader); 2510 2511 HRESULT CreateDomainShader( 2512 const void* pShaderBytecode, 2513 SIZE_T BytecodeLength, 2514 ID3D11ClassLinkage pClassLinkage, 2515 ID3D11DomainShader* ppDomainShader); 2516 2517 HRESULT CreateComputeShader( 2518 const void* pShaderBytecode, 2519 SIZE_T BytecodeLength, 2520 ID3D11ClassLinkage pClassLinkage, 2521 ID3D11ComputeShader* ppComputeShader); 2522 2523 HRESULT CreateClassLinkage( 2524 ID3D11ClassLinkage* ppLinkage); 2525 2526 HRESULT CreateBlendState( 2527 const(D3D11_BLEND_DESC)* pBlendStateDesc, 2528 ID3D11BlendState* ppBlendState); 2529 2530 HRESULT CreateDepthStencilState( 2531 const(D3D11_DEPTH_STENCIL_DESC)* pDepthStencilDesc, 2532 ID3D11DepthStencilState* ppDepthStencilState); 2533 2534 HRESULT CreateRasterizerState( 2535 const(D3D11_RASTERIZER_DESC)* pRasterizerDesc, 2536 ID3D11RasterizerState* ppRasterizerState); 2537 2538 HRESULT CreateSamplerState( 2539 const(D3D11_SAMPLER_DESC)* pSamplerDesc, 2540 ID3D11SamplerState* ppSamplerState); 2541 2542 HRESULT CreateQuery( 2543 const(D3D11_QUERY_DESC)* pQueryDesc, 2544 ID3D11Query* ppQuery); 2545 2546 HRESULT CreatePredicate( 2547 const(D3D11_QUERY_DESC)* pPredicateDesc, 2548 ID3D11Predicate* ppPredicate); 2549 2550 HRESULT CreateCounter( 2551 const(D3D11_COUNTER_DESC)* pCounterDesc, 2552 ID3D11Counter* ppCounter); 2553 2554 HRESULT CreateDeferredContext( 2555 UINT ContextFlags, 2556 ID3D11DeviceContext* ppDeferredContext); 2557 2558 HRESULT OpenSharedResource( 2559 HANDLE hResource, 2560 REFIID ReturnedInterface, 2561 void** ppResource); 2562 2563 HRESULT CheckFormatSupport( 2564 DXGI_FORMAT Format, 2565 UINT* pFormatSupport); 2566 2567 HRESULT CheckMultisampleQualityLevels( 2568 DXGI_FORMAT Format, 2569 UINT SampleCount, 2570 UINT* pNumQualityLevels); 2571 2572 void CheckCounterInfo( 2573 D3D11_COUNTER_INFO *pCounterInfo); 2574 2575 HRESULT CheckCounter( 2576 const(D3D11_COUNTER_DESC)* pDesc, 2577 D3D11_COUNTER_TYPE* pType, 2578 UINT* pActiveCounters, 2579 LPSTR szName, 2580 UINT* pNameLength, 2581 LPSTR szUnits, 2582 UINT* pUnitsLength, 2583 LPSTR szDescription, 2584 UINT* pDescriptionLength); 2585 2586 HRESULT CheckFeatureSupport( 2587 D3D11_FEATURE Feature, 2588 void* pFeatureSupportData, 2589 UINT FeatureSupportDataSize); 2590 2591 HRESULT GetPrivateData( 2592 REFGUID guid, 2593 UINT* pDataSize, 2594 void* pData); 2595 2596 HRESULT SetPrivateData( 2597 REFGUID guid, 2598 UINT DataSize, 2599 const void* pData); 2600 2601 HRESULT SetPrivateDataInterface( 2602 REFGUID guid, 2603 const IUnknown pData); 2604 2605 D3D_FEATURE_LEVEL GetFeatureLevel(); 2606 2607 UINT GetCreationFlags(); 2608 2609 HRESULT GetDeviceRemovedReason(); 2610 2611 void GetImmediateContext( 2612 ID3D11DeviceContext* ppImmediateContext); 2613 2614 HRESULT SetExceptionMode( 2615 UINT RaiseFlags); 2616 2617 UINT GetExceptionMode(); 2618 } 2619 2620 alias D3D11_CREATE_DEVICE_FLAG = int; 2621 enum : D3D11_CREATE_DEVICE_FLAG 2622 { 2623 D3D11_CREATE_DEVICE_SINGLETHREADED = 0x1, 2624 D3D11_CREATE_DEVICE_DEBUG = 0x2, 2625 D3D11_CREATE_DEVICE_SWITCH_TO_REF = 0x4, 2626 D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8, 2627 D3D11_CREATE_DEVICE_BGRA_SUPPORT = 0x20 2628 } 2629 2630 enum D3D11_SDK_VERSION = ( 7 ); 2631 2632 /////////////////////////////////////////////////////////////////////////// 2633 // D3D11CreateDevice 2634 // ------------------ 2635 // 2636 // pAdapter 2637 // If NULL, D3D11CreateDevice will choose the primary adapter and 2638 // create a new instance from a temporarily created IDXGIFactory. 2639 // If non-NULL, D3D11CreateDevice will register the appropriate 2640 // device, if necessary (via IDXGIAdapter::RegisterDrver), before 2641 // creating the device. 2642 // DriverType 2643 // Specifies the driver type to be created: hardware, reference or 2644 // null. 2645 // Software 2646 // HMODULE of a DLL implementing a software rasterizer. Must be NULL for 2647 // non-Software driver types. 2648 // Flags 2649 // Any of those documented for D3D11CreateDeviceAndSwapChain. 2650 // pFeatureLevels 2651 // Any of those documented for D3D11CreateDeviceAndSwapChain. 2652 // FeatureLevels 2653 // Size of feature levels array. 2654 // SDKVersion 2655 // SDK version. Use the D3D11_SDK_VERSION macro. 2656 // ppDevice 2657 // Pointer to returned interface. May be NULL. 2658 // pFeatureLevel 2659 // Pointer to returned feature level. May be NULL. 2660 // ppImmediateContext 2661 // Pointer to returned interface. May be NULL. 2662 // 2663 // Return Values 2664 // Any of those documented for 2665 // CreateDXGIFactory1 2666 // IDXGIFactory::EnumAdapters 2667 // IDXGIAdapter::RegisterDriver 2668 // D3D11CreateDevice 2669 // 2670 /////////////////////////////////////////////////////////////////////////// 2671 extern (Windows) nothrow 2672 HRESULT D3D11CreateDevice(IDXGIAdapter pAdapter, 2673 D3D_DRIVER_TYPE DriverType, 2674 HMODULE Software, 2675 UINT Flags, 2676 const(D3D_FEATURE_LEVEL)* pFeatureLevels, 2677 UINT FeatureLevels, 2678 UINT SDKVersion, 2679 ID3D11Device *ppDevice, 2680 D3D_FEATURE_LEVEL *pFeatureLevel, 2681 ID3D11DeviceContext *ppImmediateContext); 2682 2683 2684 alias PFN_D3D11_CREATE_DEVICE = extern (Windows) nothrow HRESULT function(IDXGIAdapter pAdapter, 2685 D3D_DRIVER_TYPE DriverType, 2686 HMODULE Software, 2687 UINT Flags, 2688 const(D3D_FEATURE_LEVEL)* pFeatureLevels, 2689 UINT FeatureLevels, 2690 UINT SDKVersion, 2691 ID3D11Device *ppDevice, 2692 D3D_FEATURE_LEVEL *pFeatureLevel, 2693 ID3D11DeviceContext *ppImmediateContext); 2694 2695 /////////////////////////////////////////////////////////////////////////// 2696 // D3D11CreateDeviceAndSwapChain 2697 // ------------------------------ 2698 // 2699 // ppAdapter 2700 // If NULL, D3D11CreateDevice will choose the primary adapter and 2701 // create a new instance from a temporarily created IDXGIFactory. 2702 // If non-NULL, D3D11CreateDevice will register the appropriate 2703 // device, if necessary (via IDXGIAdapter::RegisterDrver), before 2704 // creating the device. 2705 // DriverType 2706 // Specifies the driver type to be created: hardware, reference or 2707 // null. 2708 // Software 2709 // HMODULE of a DLL implementing a software rasterizer. Must be NULL for 2710 // non-Software driver types. 2711 // Flags 2712 // Any of those documented for D3D11CreateDevice. 2713 // pFeatureLevels 2714 // Array of any of the following: 2715 // D3D_FEATURE_LEVEL_11_0 2716 // D3D_FEATURE_LEVEL_10_1 2717 // D3D_FEATURE_LEVEL_10_0 2718 // D3D_FEATURE_LEVEL_9_3 2719 // D3D_FEATURE_LEVEL_9_2 2720 // D3D_FEATURE_LEVEL_9_1 2721 // Order indicates sequence in which instantiation will be attempted. If 2722 // NULL, then the implied order is the same as previously listed (i.e. 2723 // prefer most features available). 2724 // FeatureLevels 2725 // Size of feature levels array. 2726 // SDKVersion 2727 // SDK version. Use the D3D11_SDK_VERSION macro. 2728 // pSwapChainDesc 2729 // Swap chain description, may be NULL. 2730 // ppSwapChain 2731 // Pointer to returned interface. May be NULL. 2732 // ppDevice 2733 // Pointer to returned interface. May be NULL. 2734 // pFeatureLevel 2735 // Pointer to returned feature level. May be NULL. 2736 // ppImmediateContext 2737 // Pointer to returned interface. May be NULL. 2738 // 2739 // Return Values 2740 // Any of those documented for 2741 // CreateDXGIFactory1 2742 // IDXGIFactory::EnumAdapters 2743 // IDXGIAdapter::RegisterDriver 2744 // D3D11CreateDevice 2745 // IDXGIFactory::CreateSwapChain 2746 // 2747 /////////////////////////////////////////////////////////////////////////// 2748 2749 2750 extern(Windows) nothrow 2751 HRESULT D3D11CreateDeviceAndSwapChain( 2752 IDXGIAdapter pAdapter, 2753 D3D_DRIVER_TYPE DriverType, 2754 HMODULE Software, 2755 UINT Flags, 2756 const(D3D_FEATURE_LEVEL)* pFeatureLevels, 2757 UINT FeatureLevels, 2758 UINT SDKVersion, 2759 const(DXGI_SWAP_CHAIN_DESC)* pSwapChainDesc, 2760 IDXGISwapChain* ppSwapChain, 2761 ID3D11Device* ppDevice, 2762 D3D_FEATURE_LEVEL* pFeatureLevel, 2763 ID3D11DeviceContext* ppImmediateContext); 2764 2765 alias PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN = extern(Windows) nothrow HRESULT function( 2766 IDXGIAdapter pAdapter, 2767 D3D_DRIVER_TYPE DriverType, 2768 HMODULE Software, 2769 UINT Flags, 2770 const(D3D_FEATURE_LEVEL)* pFeatureLevels, 2771 UINT FeatureLevels, 2772 UINT SDKVersion, 2773 const(DXGI_SWAP_CHAIN_DESC)* pSwapChainDesc, 2774 IDXGISwapChain* ppSwapChain, 2775 ID3D11Device* ppDevice, 2776 D3D_FEATURE_LEVEL* pFeatureLevel, 2777 ID3D11DeviceContext* ppImmediateContext);