1 /// Format description module 2 module gfx.graal.format; 3 4 // module generated by formatgen.py 5 6 /// numeric format of texel channels 7 enum NumFormat 8 { 9 uNorm, 10 sNorm, 11 uScaled, 12 sScaled, 13 uInt, 14 sInt, 15 uFloat, 16 sFloat, 17 sRgb, 18 } 19 20 /// description of a format 21 struct FormatDesc 22 { 23 SurfaceType surfaceType; 24 NumFormat numFormat; 25 bool packed; 26 } 27 28 /// get the description of a format 29 FormatDesc formatDesc(in Format fmt) pure { 30 return fmtDescs[cast(uint)fmt]; 31 } 32 33 /// Format properties 34 struct FormatProperties { 35 FormatFeatures linearTiling; 36 FormatFeatures optimalTiling; 37 FormatFeatures buffer; 38 } 39 40 /// Format features 41 enum FormatFeatures { 42 sampledImage = 0x0001, 43 storageImage = 0x0002, 44 storageImageAtomic = 0x0004, 45 uniformTexelBuffer = 0x0008, 46 storageTexelBuffer = 0x0010, 47 storageTexelBufferAtomic = 0x0020, 48 vertexBuffer = 0x0040, 49 colorAttachment = 0x0080, 50 colorAttachmentBlend = 0x0100, 51 depthStencilAttachment = 0x0200, 52 blitSrc = 0x0400, 53 blitDst = 0x0800, 54 sampledImageFilterLinear = 0x1000, 55 56 framebuffer = 0x0380, 57 blit = 0x0c00, 58 } 59 60 61 /// Describes the components of a surface 62 enum SurfaceType { 63 R4_G4, 64 R4_G4_B4_A4, 65 B4_G4_R4_A4, 66 R5_G6_B5, 67 B5_G6_R5, 68 R5_G5_B5_A1, 69 B5_G5_R5_A1, 70 A1_R5_G5_B5, 71 R8, 72 R8_G8, 73 R8_G8_B8, 74 B8_G8_R8, 75 R8_G8_B8_A8, 76 B8_G8_R8_A8, 77 A8_B8_G8_R8, 78 A2_R10_G10_B10, 79 A2_B10_G10_R10, 80 R16, 81 R16_G16, 82 R16_G16_B16, 83 R16_G16_B16_A16, 84 R32, 85 R32_G32, 86 R32_G32_B32, 87 R32_G32_B32_A32, 88 R64, 89 R64_G64, 90 R64_G64_B64, 91 R64_G64_B64_A64, 92 B10_G11_R11, 93 E5_B9_G9_R9, 94 D16, 95 X8_D24, 96 D32, 97 S8, 98 D16_S8, 99 D24_S8, 100 D32_S8, 101 } 102 103 /// The format of an Image. 104 enum Format { 105 undefined = 0, 106 rg4_uNorm = 1, 107 rgba4_uNorm = 2, 108 bgra4_uNorm = 3, 109 r5g6b5_uNorm = 4, 110 b5g6r5_uNorm = 5, 111 r5g5b5a1_uNorm = 6, 112 b5g5r5a1_uNorm = 7, 113 a1r5g5b5_uNorm = 8, 114 r8_uNorm = 9, 115 r8_sNorm = 10, 116 r8_uScaled = 11, 117 r8_sScaled = 12, 118 r8_uInt = 13, 119 r8_sInt = 14, 120 r8_sRgb = 15, 121 rg8_uNorm = 16, 122 rg8_sNorm = 17, 123 rg8_uScaled = 18, 124 rg8_sScaled = 19, 125 rg8_uInt = 20, 126 rg8_sInt = 21, 127 rg8_sRgb = 22, 128 rgb8_uNorm = 23, 129 rgb8_sNorm = 24, 130 rgb8_uScaled = 25, 131 rgb8_sScaled = 26, 132 rgb8_uInt = 27, 133 rgb8_sInt = 28, 134 rgb8_sRgb = 29, 135 bgr8_uNorm = 30, 136 bgr8_sNorm = 31, 137 bgr8_uScaled = 32, 138 bgr8_sScaled = 33, 139 bgr8_uInt = 34, 140 bgr8_sInt = 35, 141 bgr8_sRgb = 36, 142 rgba8_uNorm = 37, 143 rgba8_sNorm = 38, 144 rgba8_uScaled = 39, 145 rgba8_sScaled = 40, 146 rgba8_uInt = 41, 147 rgba8_sInt = 42, 148 rgba8_sRgb = 43, 149 bgra8_uNorm = 44, 150 bgra8_sNorm = 45, 151 bgra8_uScaled = 46, 152 bgra8_sScaled = 47, 153 bgra8_uInt = 48, 154 bgra8_sInt = 49, 155 bgra8_sRgb = 50, 156 abgr8_uNorm = 51, 157 abgr8_sNorm = 52, 158 abgr8_uScaled = 53, 159 abgr8_sScaled = 54, 160 abgr8_uInt = 55, 161 abgr8_sInt = 56, 162 abgr8_sRgb = 57, 163 a2r10g10b10_uNorm = 58, 164 a2r10g10b10_sNorm = 59, 165 a2r10g10b10_uScaled = 60, 166 a2r10g10b10_sScaled = 61, 167 a2r10g10b10_uInt = 62, 168 a2r10g10b10_sInt = 63, 169 a2b10g10r10_uNorm = 64, 170 a2b10g10r10_sNorm = 65, 171 a2b10g10r10_uScaled = 66, 172 a2b10g10r10_sScaled = 67, 173 a2b10g10r10_uInt = 68, 174 a2b10g10r10_sInt = 69, 175 r16_uNorm = 70, 176 r16_sNorm = 71, 177 r16_uScaled = 72, 178 r16_sScaled = 73, 179 r16_uInt = 74, 180 r16_sInt = 75, 181 r16_sFloat = 76, 182 rg16_uNorm = 77, 183 rg16_sNorm = 78, 184 rg16_uScaled = 79, 185 rg16_sScaled = 80, 186 rg16_uInt = 81, 187 rg16_sInt = 82, 188 rg16_sFloat = 83, 189 rgb16_uNorm = 84, 190 rgb16_sNorm = 85, 191 rgb16_uScaled = 86, 192 rgb16_sScaled = 87, 193 rgb16_uInt = 88, 194 rgb16_sInt = 89, 195 rgb16_sFloat = 90, 196 rgba16_uNorm = 91, 197 rgba16_sNorm = 92, 198 rgba16_uScaled = 93, 199 rgba16_sScaled = 94, 200 rgba16_uInt = 95, 201 rgba16_sInt = 96, 202 rgba16_sFloat = 97, 203 r32_uInt = 98, 204 r32_sInt = 99, 205 r32_sFloat = 100, 206 rg32_uInt = 101, 207 rg32_sInt = 102, 208 rg32_sFloat = 103, 209 rgb32_uInt = 104, 210 rgb32_sInt = 105, 211 rgb32_sFloat = 106, 212 rgba32_uInt = 107, 213 rgba32_sInt = 108, 214 rgba32_sFloat = 109, 215 r64_uInt = 110, 216 r64_sInt = 111, 217 r64_sFloat = 112, 218 rg64_uInt = 113, 219 rg64_sInt = 114, 220 rg64_sFloat = 115, 221 rgb64_uInt = 116, 222 rgb64_sInt = 117, 223 rgb64_sFloat = 118, 224 rgba64_uInt = 119, 225 rgba64_sInt = 120, 226 rgba64_sFloat = 121, 227 b10g11r11_uFloat = 122, 228 ebgr9_uFloat = 123, 229 d16_uNorm = 124, 230 x8d24_uNorm = 125, 231 d32_sFloat = 126, 232 s8_uInt = 127, 233 d16s8_uNorm = 128, 234 d24s8_uNorm = 129, 235 d32s8_sFloat = 130, 236 } 237 238 /// Get the totalBits of an image surface. 239 @property uint totalBits (in SurfaceType st) pure { 240 switch(st) { 241 case SurfaceType.R4_G4: return 8; 242 case SurfaceType.R4_G4_B4_A4: return 16; 243 case SurfaceType.B4_G4_R4_A4: return 16; 244 case SurfaceType.R5_G6_B5: return 16; 245 case SurfaceType.B5_G6_R5: return 16; 246 case SurfaceType.R5_G5_B5_A1: return 16; 247 case SurfaceType.B5_G5_R5_A1: return 16; 248 case SurfaceType.A1_R5_G5_B5: return 16; 249 case SurfaceType.R8: return 8; 250 case SurfaceType.R8_G8: return 16; 251 case SurfaceType.R8_G8_B8: return 24; 252 case SurfaceType.B8_G8_R8: return 24; 253 case SurfaceType.R8_G8_B8_A8: return 32; 254 case SurfaceType.B8_G8_R8_A8: return 32; 255 case SurfaceType.A8_B8_G8_R8: return 32; 256 case SurfaceType.A2_R10_G10_B10: return 32; 257 case SurfaceType.A2_B10_G10_R10: return 32; 258 case SurfaceType.R16: return 16; 259 case SurfaceType.R16_G16: return 32; 260 case SurfaceType.R16_G16_B16: return 48; 261 case SurfaceType.R16_G16_B16_A16: return 64; 262 case SurfaceType.R32: return 32; 263 case SurfaceType.R32_G32: return 64; 264 case SurfaceType.R32_G32_B32: return 96; 265 case SurfaceType.R32_G32_B32_A32: return 128; 266 case SurfaceType.R64: return 64; 267 case SurfaceType.R64_G64: return 128; 268 case SurfaceType.R64_G64_B64: return 192; 269 case SurfaceType.R64_G64_B64_A64: return 256; 270 case SurfaceType.B10_G11_R11: return 32; 271 case SurfaceType.E5_B9_G9_R9: return 32; 272 case SurfaceType.D16: return 16; 273 case SurfaceType.X8_D24: return 32; 274 case SurfaceType.D32: return 32; 275 case SurfaceType.S8: return 8; 276 case SurfaceType.D16_S8: return 24; 277 case SurfaceType.D24_S8: return 32; 278 case SurfaceType.D32_S8: return 40; 279 default: return 0; 280 } 281 } 282 283 /// Get the numComponents of an image surface. 284 @property uint numComponents (in SurfaceType st) pure { 285 switch(st) { 286 case SurfaceType.R4_G4: return 2; 287 case SurfaceType.R4_G4_B4_A4: return 4; 288 case SurfaceType.B4_G4_R4_A4: return 4; 289 case SurfaceType.R5_G6_B5: return 3; 290 case SurfaceType.B5_G6_R5: return 3; 291 case SurfaceType.R5_G5_B5_A1: return 4; 292 case SurfaceType.B5_G5_R5_A1: return 4; 293 case SurfaceType.A1_R5_G5_B5: return 4; 294 case SurfaceType.R8: return 1; 295 case SurfaceType.R8_G8: return 2; 296 case SurfaceType.R8_G8_B8: return 3; 297 case SurfaceType.B8_G8_R8: return 3; 298 case SurfaceType.R8_G8_B8_A8: return 4; 299 case SurfaceType.B8_G8_R8_A8: return 4; 300 case SurfaceType.A8_B8_G8_R8: return 4; 301 case SurfaceType.A2_R10_G10_B10: return 4; 302 case SurfaceType.A2_B10_G10_R10: return 4; 303 case SurfaceType.R16: return 1; 304 case SurfaceType.R16_G16: return 2; 305 case SurfaceType.R16_G16_B16: return 3; 306 case SurfaceType.R16_G16_B16_A16: return 4; 307 case SurfaceType.R32: return 1; 308 case SurfaceType.R32_G32: return 2; 309 case SurfaceType.R32_G32_B32: return 3; 310 case SurfaceType.R32_G32_B32_A32: return 4; 311 case SurfaceType.R64: return 1; 312 case SurfaceType.R64_G64: return 2; 313 case SurfaceType.R64_G64_B64: return 3; 314 case SurfaceType.R64_G64_B64_A64: return 4; 315 case SurfaceType.B10_G11_R11: return 3; 316 case SurfaceType.E5_B9_G9_R9: return 4; 317 case SurfaceType.D16: return 1; 318 case SurfaceType.X8_D24: return 2; 319 case SurfaceType.D32: return 1; 320 case SurfaceType.S8: return 1; 321 case SurfaceType.D16_S8: return 2; 322 case SurfaceType.D24_S8: return 2; 323 case SurfaceType.D32_S8: return 2; 324 default: return 0; 325 } 326 } 327 328 /// Get the colorBits of an image surface. 329 @property uint colorBits (in SurfaceType st) pure { 330 switch(st) { 331 case SurfaceType.R4_G4: return 8; 332 case SurfaceType.R4_G4_B4_A4: return 16; 333 case SurfaceType.B4_G4_R4_A4: return 16; 334 case SurfaceType.R5_G6_B5: return 16; 335 case SurfaceType.B5_G6_R5: return 16; 336 case SurfaceType.R5_G5_B5_A1: return 16; 337 case SurfaceType.B5_G5_R5_A1: return 16; 338 case SurfaceType.A1_R5_G5_B5: return 16; 339 case SurfaceType.R8: return 8; 340 case SurfaceType.R8_G8: return 16; 341 case SurfaceType.R8_G8_B8: return 24; 342 case SurfaceType.B8_G8_R8: return 24; 343 case SurfaceType.R8_G8_B8_A8: return 32; 344 case SurfaceType.B8_G8_R8_A8: return 32; 345 case SurfaceType.A8_B8_G8_R8: return 32; 346 case SurfaceType.A2_R10_G10_B10: return 32; 347 case SurfaceType.A2_B10_G10_R10: return 32; 348 case SurfaceType.R16: return 16; 349 case SurfaceType.R16_G16: return 32; 350 case SurfaceType.R16_G16_B16: return 48; 351 case SurfaceType.R16_G16_B16_A16: return 64; 352 case SurfaceType.R32: return 32; 353 case SurfaceType.R32_G32: return 64; 354 case SurfaceType.R32_G32_B32: return 96; 355 case SurfaceType.R32_G32_B32_A32: return 128; 356 case SurfaceType.R64: return 64; 357 case SurfaceType.R64_G64: return 128; 358 case SurfaceType.R64_G64_B64: return 192; 359 case SurfaceType.R64_G64_B64_A64: return 256; 360 case SurfaceType.B10_G11_R11: return 32; 361 case SurfaceType.E5_B9_G9_R9: return 32; 362 default: return 0; 363 } 364 } 365 366 /// Get the redBits of an image surface. 367 @property uint redBits (in SurfaceType st) pure { 368 switch(st) { 369 case SurfaceType.R4_G4: return 4; 370 case SurfaceType.R4_G4_B4_A4: return 4; 371 case SurfaceType.B4_G4_R4_A4: return 4; 372 case SurfaceType.R5_G6_B5: return 5; 373 case SurfaceType.B5_G6_R5: return 5; 374 case SurfaceType.R5_G5_B5_A1: return 5; 375 case SurfaceType.B5_G5_R5_A1: return 5; 376 case SurfaceType.A1_R5_G5_B5: return 5; 377 case SurfaceType.R8: return 8; 378 case SurfaceType.R8_G8: return 8; 379 case SurfaceType.R8_G8_B8: return 8; 380 case SurfaceType.B8_G8_R8: return 8; 381 case SurfaceType.R8_G8_B8_A8: return 8; 382 case SurfaceType.B8_G8_R8_A8: return 8; 383 case SurfaceType.A8_B8_G8_R8: return 8; 384 case SurfaceType.A2_R10_G10_B10: return 10; 385 case SurfaceType.A2_B10_G10_R10: return 10; 386 case SurfaceType.R16: return 16; 387 case SurfaceType.R16_G16: return 16; 388 case SurfaceType.R16_G16_B16: return 16; 389 case SurfaceType.R16_G16_B16_A16: return 16; 390 case SurfaceType.R32: return 32; 391 case SurfaceType.R32_G32: return 32; 392 case SurfaceType.R32_G32_B32: return 32; 393 case SurfaceType.R32_G32_B32_A32: return 32; 394 case SurfaceType.R64: return 64; 395 case SurfaceType.R64_G64: return 64; 396 case SurfaceType.R64_G64_B64: return 64; 397 case SurfaceType.R64_G64_B64_A64: return 64; 398 case SurfaceType.B10_G11_R11: return 11; 399 case SurfaceType.E5_B9_G9_R9: return 9; 400 default: return 0; 401 } 402 } 403 404 /// Get the greenBits of an image surface. 405 @property uint greenBits (in SurfaceType st) pure { 406 switch(st) { 407 case SurfaceType.R4_G4: return 4; 408 case SurfaceType.R4_G4_B4_A4: return 4; 409 case SurfaceType.B4_G4_R4_A4: return 4; 410 case SurfaceType.R5_G6_B5: return 6; 411 case SurfaceType.B5_G6_R5: return 6; 412 case SurfaceType.R5_G5_B5_A1: return 5; 413 case SurfaceType.B5_G5_R5_A1: return 5; 414 case SurfaceType.A1_R5_G5_B5: return 5; 415 case SurfaceType.R8_G8: return 8; 416 case SurfaceType.R8_G8_B8: return 8; 417 case SurfaceType.B8_G8_R8: return 8; 418 case SurfaceType.R8_G8_B8_A8: return 8; 419 case SurfaceType.B8_G8_R8_A8: return 8; 420 case SurfaceType.A8_B8_G8_R8: return 8; 421 case SurfaceType.A2_R10_G10_B10: return 10; 422 case SurfaceType.A2_B10_G10_R10: return 10; 423 case SurfaceType.R16_G16: return 16; 424 case SurfaceType.R16_G16_B16: return 16; 425 case SurfaceType.R16_G16_B16_A16: return 16; 426 case SurfaceType.R32_G32: return 32; 427 case SurfaceType.R32_G32_B32: return 32; 428 case SurfaceType.R32_G32_B32_A32: return 32; 429 case SurfaceType.R64_G64: return 64; 430 case SurfaceType.R64_G64_B64: return 64; 431 case SurfaceType.R64_G64_B64_A64: return 64; 432 case SurfaceType.B10_G11_R11: return 11; 433 case SurfaceType.E5_B9_G9_R9: return 9; 434 default: return 0; 435 } 436 } 437 438 /// Get the blueBits of an image surface. 439 @property uint blueBits (in SurfaceType st) pure { 440 switch(st) { 441 case SurfaceType.R4_G4_B4_A4: return 4; 442 case SurfaceType.B4_G4_R4_A4: return 4; 443 case SurfaceType.R5_G6_B5: return 5; 444 case SurfaceType.B5_G6_R5: return 5; 445 case SurfaceType.R5_G5_B5_A1: return 5; 446 case SurfaceType.B5_G5_R5_A1: return 5; 447 case SurfaceType.A1_R5_G5_B5: return 5; 448 case SurfaceType.R8_G8_B8: return 8; 449 case SurfaceType.B8_G8_R8: return 8; 450 case SurfaceType.R8_G8_B8_A8: return 8; 451 case SurfaceType.B8_G8_R8_A8: return 8; 452 case SurfaceType.A8_B8_G8_R8: return 8; 453 case SurfaceType.A2_R10_G10_B10: return 10; 454 case SurfaceType.A2_B10_G10_R10: return 10; 455 case SurfaceType.R16_G16_B16: return 16; 456 case SurfaceType.R16_G16_B16_A16: return 16; 457 case SurfaceType.R32_G32_B32: return 32; 458 case SurfaceType.R32_G32_B32_A32: return 32; 459 case SurfaceType.R64_G64_B64: return 64; 460 case SurfaceType.R64_G64_B64_A64: return 64; 461 case SurfaceType.B10_G11_R11: return 10; 462 case SurfaceType.E5_B9_G9_R9: return 9; 463 default: return 0; 464 } 465 } 466 467 /// Get the alphaBits of an image surface. 468 @property uint alphaBits (in SurfaceType st) pure { 469 switch(st) { 470 case SurfaceType.R4_G4_B4_A4: return 4; 471 case SurfaceType.B4_G4_R4_A4: return 4; 472 case SurfaceType.R5_G5_B5_A1: return 1; 473 case SurfaceType.B5_G5_R5_A1: return 1; 474 case SurfaceType.A1_R5_G5_B5: return 1; 475 case SurfaceType.R8_G8_B8_A8: return 8; 476 case SurfaceType.B8_G8_R8_A8: return 8; 477 case SurfaceType.A8_B8_G8_R8: return 8; 478 case SurfaceType.A2_R10_G10_B10: return 2; 479 case SurfaceType.A2_B10_G10_R10: return 2; 480 case SurfaceType.R16_G16_B16_A16: return 16; 481 case SurfaceType.R32_G32_B32_A32: return 32; 482 case SurfaceType.R64_G64_B64_A64: return 64; 483 default: return 0; 484 } 485 } 486 487 /// Get the redShift of an image surface. 488 @property uint redShift (in SurfaceType st) pure { 489 switch(st) { 490 case SurfaceType.R4_G4: return 4; 491 case SurfaceType.R4_G4_B4_A4: return 12; 492 case SurfaceType.B4_G4_R4_A4: return 4; 493 case SurfaceType.R5_G6_B5: return 11; 494 case SurfaceType.R5_G5_B5_A1: return 11; 495 case SurfaceType.B5_G5_R5_A1: return 1; 496 case SurfaceType.A1_R5_G5_B5: return 10; 497 case SurfaceType.R8_G8: return 8; 498 case SurfaceType.R8_G8_B8: return 16; 499 case SurfaceType.R8_G8_B8_A8: return 24; 500 case SurfaceType.B8_G8_R8_A8: return 8; 501 case SurfaceType.A2_R10_G10_B10: return 20; 502 case SurfaceType.R16_G16: return 16; 503 case SurfaceType.R16_G16_B16: return 32; 504 case SurfaceType.R16_G16_B16_A16: return 48; 505 case SurfaceType.R32_G32: return 32; 506 case SurfaceType.R32_G32_B32: return 64; 507 case SurfaceType.R32_G32_B32_A32: return 96; 508 case SurfaceType.R64_G64: return 64; 509 case SurfaceType.R64_G64_B64: return 128; 510 case SurfaceType.R64_G64_B64_A64: return 192; 511 default: return 0; 512 } 513 } 514 515 /// Get the greenShift of an image surface. 516 @property uint greenShift (in SurfaceType st) pure { 517 switch(st) { 518 case SurfaceType.R4_G4_B4_A4: return 8; 519 case SurfaceType.B4_G4_R4_A4: return 8; 520 case SurfaceType.R5_G6_B5: return 5; 521 case SurfaceType.B5_G6_R5: return 5; 522 case SurfaceType.R5_G5_B5_A1: return 6; 523 case SurfaceType.B5_G5_R5_A1: return 6; 524 case SurfaceType.A1_R5_G5_B5: return 5; 525 case SurfaceType.R8_G8_B8: return 8; 526 case SurfaceType.B8_G8_R8: return 8; 527 case SurfaceType.R8_G8_B8_A8: return 16; 528 case SurfaceType.B8_G8_R8_A8: return 16; 529 case SurfaceType.A8_B8_G8_R8: return 8; 530 case SurfaceType.A2_R10_G10_B10: return 10; 531 case SurfaceType.A2_B10_G10_R10: return 10; 532 case SurfaceType.R16_G16_B16: return 16; 533 case SurfaceType.R16_G16_B16_A16: return 32; 534 case SurfaceType.R32_G32_B32: return 32; 535 case SurfaceType.R32_G32_B32_A32: return 64; 536 case SurfaceType.R64_G64_B64: return 64; 537 case SurfaceType.R64_G64_B64_A64: return 128; 538 case SurfaceType.B10_G11_R11: return 11; 539 case SurfaceType.E5_B9_G9_R9: return 9; 540 default: return 0; 541 } 542 } 543 544 /// Get the blueShift of an image surface. 545 @property uint blueShift (in SurfaceType st) pure { 546 switch(st) { 547 case SurfaceType.R4_G4_B4_A4: return 4; 548 case SurfaceType.B4_G4_R4_A4: return 12; 549 case SurfaceType.B5_G6_R5: return 11; 550 case SurfaceType.R5_G5_B5_A1: return 1; 551 case SurfaceType.B5_G5_R5_A1: return 11; 552 case SurfaceType.B8_G8_R8: return 16; 553 case SurfaceType.R8_G8_B8_A8: return 8; 554 case SurfaceType.B8_G8_R8_A8: return 24; 555 case SurfaceType.A8_B8_G8_R8: return 16; 556 case SurfaceType.A2_B10_G10_R10: return 20; 557 case SurfaceType.R16_G16_B16_A16: return 16; 558 case SurfaceType.R32_G32_B32_A32: return 32; 559 case SurfaceType.R64_G64_B64_A64: return 64; 560 case SurfaceType.B10_G11_R11: return 22; 561 case SurfaceType.E5_B9_G9_R9: return 18; 562 default: return 0; 563 } 564 } 565 566 /// Get the alphaShift of an image surface. 567 @property uint alphaShift (in SurfaceType st) pure { 568 switch(st) { 569 case SurfaceType.A1_R5_G5_B5: return 15; 570 case SurfaceType.A8_B8_G8_R8: return 24; 571 case SurfaceType.A2_R10_G10_B10: return 30; 572 case SurfaceType.A2_B10_G10_R10: return 30; 573 default: return 0; 574 } 575 } 576 577 /// Get the sharedExpBits of an image surface. 578 @property uint sharedExpBits (in SurfaceType st) pure { 579 switch(st) { 580 case SurfaceType.E5_B9_G9_R9: return 5; 581 default: return 0; 582 } 583 } 584 585 /// Get the depthBits of an image surface. 586 @property uint depthBits (in SurfaceType st) pure { 587 switch(st) { 588 case SurfaceType.D16: return 16; 589 case SurfaceType.X8_D24: return 24; 590 case SurfaceType.D32: return 32; 591 case SurfaceType.D16_S8: return 16; 592 case SurfaceType.D24_S8: return 24; 593 case SurfaceType.D32_S8: return 32; 594 default: return 0; 595 } 596 } 597 598 /// Get the stencilBits of an image surface. 599 @property uint stencilBits (in SurfaceType st) pure { 600 switch(st) { 601 case SurfaceType.S8: return 8; 602 case SurfaceType.D16_S8: return 8; 603 case SurfaceType.D24_S8: return 8; 604 case SurfaceType.D32_S8: return 8; 605 default: return 0; 606 } 607 } 608 609 /// Static descriptor of SurfaceType.R4_G4. 610 struct R4_G4 { 611 enum totalBits = 8; 612 enum numComponents = 2; 613 enum redBits = 4; 614 enum greenBits = 4; 615 enum blueBits = 0; 616 enum alphaBits = 0; 617 enum sharedExpBits = 0; 618 enum depthBits = 0; 619 enum stencilBits = 0; 620 621 import std.meta : AliasSeq; 622 alias numFormats = AliasSeq!( 623 NumFormat.uNorm 624 ); 625 } 626 627 /// Static descriptor of SurfaceType.R4_G4_B4_A4. 628 struct R4_G4_B4_A4 { 629 enum totalBits = 16; 630 enum numComponents = 4; 631 enum redBits = 4; 632 enum greenBits = 4; 633 enum blueBits = 4; 634 enum alphaBits = 4; 635 enum sharedExpBits = 0; 636 enum depthBits = 0; 637 enum stencilBits = 0; 638 639 import std.meta : AliasSeq; 640 alias numFormats = AliasSeq!( 641 NumFormat.uNorm 642 ); 643 } 644 645 /// Static descriptor of SurfaceType.B4_G4_R4_A4. 646 struct B4_G4_R4_A4 { 647 enum totalBits = 16; 648 enum numComponents = 4; 649 enum redBits = 4; 650 enum greenBits = 4; 651 enum blueBits = 4; 652 enum alphaBits = 4; 653 enum sharedExpBits = 0; 654 enum depthBits = 0; 655 enum stencilBits = 0; 656 657 import std.meta : AliasSeq; 658 alias numFormats = AliasSeq!( 659 NumFormat.uNorm 660 ); 661 } 662 663 /// Static descriptor of SurfaceType.R5_G6_B5. 664 struct R5_G6_B5 { 665 enum totalBits = 16; 666 enum numComponents = 3; 667 enum redBits = 5; 668 enum greenBits = 6; 669 enum blueBits = 5; 670 enum alphaBits = 0; 671 enum sharedExpBits = 0; 672 enum depthBits = 0; 673 enum stencilBits = 0; 674 675 import std.meta : AliasSeq; 676 alias numFormats = AliasSeq!( 677 NumFormat.uNorm 678 ); 679 } 680 681 /// Static descriptor of SurfaceType.B5_G6_R5. 682 struct B5_G6_R5 { 683 enum totalBits = 16; 684 enum numComponents = 3; 685 enum redBits = 5; 686 enum greenBits = 6; 687 enum blueBits = 5; 688 enum alphaBits = 0; 689 enum sharedExpBits = 0; 690 enum depthBits = 0; 691 enum stencilBits = 0; 692 693 import std.meta : AliasSeq; 694 alias numFormats = AliasSeq!( 695 NumFormat.uNorm 696 ); 697 } 698 699 /// Static descriptor of SurfaceType.R5_G5_B5_A1. 700 struct R5_G5_B5_A1 { 701 enum totalBits = 16; 702 enum numComponents = 4; 703 enum redBits = 5; 704 enum greenBits = 5; 705 enum blueBits = 5; 706 enum alphaBits = 1; 707 enum sharedExpBits = 0; 708 enum depthBits = 0; 709 enum stencilBits = 0; 710 711 import std.meta : AliasSeq; 712 alias numFormats = AliasSeq!( 713 NumFormat.uNorm 714 ); 715 } 716 717 /// Static descriptor of SurfaceType.B5_G5_R5_A1. 718 struct B5_G5_R5_A1 { 719 enum totalBits = 16; 720 enum numComponents = 4; 721 enum redBits = 5; 722 enum greenBits = 5; 723 enum blueBits = 5; 724 enum alphaBits = 1; 725 enum sharedExpBits = 0; 726 enum depthBits = 0; 727 enum stencilBits = 0; 728 729 import std.meta : AliasSeq; 730 alias numFormats = AliasSeq!( 731 NumFormat.uNorm 732 ); 733 } 734 735 /// Static descriptor of SurfaceType.A1_R5_G5_B5. 736 struct A1_R5_G5_B5 { 737 enum totalBits = 16; 738 enum numComponents = 4; 739 enum redBits = 5; 740 enum greenBits = 5; 741 enum blueBits = 5; 742 enum alphaBits = 1; 743 enum sharedExpBits = 0; 744 enum depthBits = 0; 745 enum stencilBits = 0; 746 747 import std.meta : AliasSeq; 748 alias numFormats = AliasSeq!( 749 NumFormat.uNorm 750 ); 751 } 752 753 /// Static descriptor of SurfaceType.R8. 754 struct R8 { 755 enum totalBits = 8; 756 enum numComponents = 1; 757 enum redBits = 8; 758 enum greenBits = 0; 759 enum blueBits = 0; 760 enum alphaBits = 0; 761 enum sharedExpBits = 0; 762 enum depthBits = 0; 763 enum stencilBits = 0; 764 765 import std.meta : AliasSeq; 766 alias numFormats = AliasSeq!( 767 NumFormat.uNorm, NumFormat.sNorm, NumFormat.uScaled, NumFormat.sScaled, NumFormat.uInt, NumFormat.sInt, NumFormat.sRgb 768 ); 769 } 770 771 /// Static descriptor of SurfaceType.R8_G8. 772 struct R8_G8 { 773 enum totalBits = 16; 774 enum numComponents = 2; 775 enum redBits = 8; 776 enum greenBits = 8; 777 enum blueBits = 0; 778 enum alphaBits = 0; 779 enum sharedExpBits = 0; 780 enum depthBits = 0; 781 enum stencilBits = 0; 782 783 import std.meta : AliasSeq; 784 alias numFormats = AliasSeq!( 785 NumFormat.uNorm, NumFormat.sNorm, NumFormat.uScaled, NumFormat.sScaled, NumFormat.uInt, NumFormat.sInt, NumFormat.sRgb 786 ); 787 } 788 789 /// Static descriptor of SurfaceType.R8_G8_B8. 790 struct R8_G8_B8 { 791 enum totalBits = 24; 792 enum numComponents = 3; 793 enum redBits = 8; 794 enum greenBits = 8; 795 enum blueBits = 8; 796 enum alphaBits = 0; 797 enum sharedExpBits = 0; 798 enum depthBits = 0; 799 enum stencilBits = 0; 800 801 import std.meta : AliasSeq; 802 alias numFormats = AliasSeq!( 803 NumFormat.uNorm, NumFormat.sNorm, NumFormat.uScaled, NumFormat.sScaled, NumFormat.uInt, NumFormat.sInt, NumFormat.sRgb 804 ); 805 } 806 807 /// Static descriptor of SurfaceType.B8_G8_R8. 808 struct B8_G8_R8 { 809 enum totalBits = 24; 810 enum numComponents = 3; 811 enum redBits = 8; 812 enum greenBits = 8; 813 enum blueBits = 8; 814 enum alphaBits = 0; 815 enum sharedExpBits = 0; 816 enum depthBits = 0; 817 enum stencilBits = 0; 818 819 import std.meta : AliasSeq; 820 alias numFormats = AliasSeq!( 821 NumFormat.uNorm, NumFormat.sNorm, NumFormat.uScaled, NumFormat.sScaled, NumFormat.uInt, NumFormat.sInt, NumFormat.sRgb 822 ); 823 } 824 825 /// Static descriptor of SurfaceType.R8_G8_B8_A8. 826 struct R8_G8_B8_A8 { 827 enum totalBits = 32; 828 enum numComponents = 4; 829 enum redBits = 8; 830 enum greenBits = 8; 831 enum blueBits = 8; 832 enum alphaBits = 8; 833 enum sharedExpBits = 0; 834 enum depthBits = 0; 835 enum stencilBits = 0; 836 837 import std.meta : AliasSeq; 838 alias numFormats = AliasSeq!( 839 NumFormat.uNorm, NumFormat.sNorm, NumFormat.uScaled, NumFormat.sScaled, NumFormat.uInt, NumFormat.sInt, NumFormat.sRgb 840 ); 841 } 842 843 /// Static descriptor of SurfaceType.B8_G8_R8_A8. 844 struct B8_G8_R8_A8 { 845 enum totalBits = 32; 846 enum numComponents = 4; 847 enum redBits = 8; 848 enum greenBits = 8; 849 enum blueBits = 8; 850 enum alphaBits = 8; 851 enum sharedExpBits = 0; 852 enum depthBits = 0; 853 enum stencilBits = 0; 854 855 import std.meta : AliasSeq; 856 alias numFormats = AliasSeq!( 857 NumFormat.uNorm, NumFormat.sNorm, NumFormat.uScaled, NumFormat.sScaled, NumFormat.uInt, NumFormat.sInt, NumFormat.sRgb 858 ); 859 } 860 861 /// Static descriptor of SurfaceType.A8_B8_G8_R8. 862 struct A8_B8_G8_R8 { 863 enum totalBits = 32; 864 enum numComponents = 4; 865 enum redBits = 8; 866 enum greenBits = 8; 867 enum blueBits = 8; 868 enum alphaBits = 8; 869 enum sharedExpBits = 0; 870 enum depthBits = 0; 871 enum stencilBits = 0; 872 873 import std.meta : AliasSeq; 874 alias numFormats = AliasSeq!( 875 NumFormat.uNorm, NumFormat.sNorm, NumFormat.uScaled, NumFormat.sScaled, NumFormat.uInt, NumFormat.sInt, NumFormat.sRgb 876 ); 877 } 878 879 /// Static descriptor of SurfaceType.A2_R10_G10_B10. 880 struct A2_R10_G10_B10 { 881 enum totalBits = 32; 882 enum numComponents = 4; 883 enum redBits = 10; 884 enum greenBits = 10; 885 enum blueBits = 10; 886 enum alphaBits = 2; 887 enum sharedExpBits = 0; 888 enum depthBits = 0; 889 enum stencilBits = 0; 890 891 import std.meta : AliasSeq; 892 alias numFormats = AliasSeq!( 893 NumFormat.uNorm, NumFormat.sNorm, NumFormat.uScaled, NumFormat.sScaled, NumFormat.uInt, NumFormat.sInt 894 ); 895 } 896 897 /// Static descriptor of SurfaceType.A2_B10_G10_R10. 898 struct A2_B10_G10_R10 { 899 enum totalBits = 32; 900 enum numComponents = 4; 901 enum redBits = 10; 902 enum greenBits = 10; 903 enum blueBits = 10; 904 enum alphaBits = 2; 905 enum sharedExpBits = 0; 906 enum depthBits = 0; 907 enum stencilBits = 0; 908 909 import std.meta : AliasSeq; 910 alias numFormats = AliasSeq!( 911 NumFormat.uNorm, NumFormat.sNorm, NumFormat.uScaled, NumFormat.sScaled, NumFormat.uInt, NumFormat.sInt 912 ); 913 } 914 915 /// Static descriptor of SurfaceType.R16. 916 struct R16 { 917 enum totalBits = 16; 918 enum numComponents = 1; 919 enum redBits = 16; 920 enum greenBits = 0; 921 enum blueBits = 0; 922 enum alphaBits = 0; 923 enum sharedExpBits = 0; 924 enum depthBits = 0; 925 enum stencilBits = 0; 926 927 import std.meta : AliasSeq; 928 alias numFormats = AliasSeq!( 929 NumFormat.uNorm, NumFormat.sNorm, NumFormat.uScaled, NumFormat.sScaled, NumFormat.uInt, NumFormat.sInt, NumFormat.sFloat 930 ); 931 } 932 933 /// Static descriptor of SurfaceType.R16_G16. 934 struct R16_G16 { 935 enum totalBits = 32; 936 enum numComponents = 2; 937 enum redBits = 16; 938 enum greenBits = 16; 939 enum blueBits = 0; 940 enum alphaBits = 0; 941 enum sharedExpBits = 0; 942 enum depthBits = 0; 943 enum stencilBits = 0; 944 945 import std.meta : AliasSeq; 946 alias numFormats = AliasSeq!( 947 NumFormat.uNorm, NumFormat.sNorm, NumFormat.uScaled, NumFormat.sScaled, NumFormat.uInt, NumFormat.sInt, NumFormat.sFloat 948 ); 949 } 950 951 /// Static descriptor of SurfaceType.R16_G16_B16. 952 struct R16_G16_B16 { 953 enum totalBits = 48; 954 enum numComponents = 3; 955 enum redBits = 16; 956 enum greenBits = 16; 957 enum blueBits = 16; 958 enum alphaBits = 0; 959 enum sharedExpBits = 0; 960 enum depthBits = 0; 961 enum stencilBits = 0; 962 963 import std.meta : AliasSeq; 964 alias numFormats = AliasSeq!( 965 NumFormat.uNorm, NumFormat.sNorm, NumFormat.uScaled, NumFormat.sScaled, NumFormat.uInt, NumFormat.sInt, NumFormat.sFloat 966 ); 967 } 968 969 /// Static descriptor of SurfaceType.R16_G16_B16_A16. 970 struct R16_G16_B16_A16 { 971 enum totalBits = 64; 972 enum numComponents = 4; 973 enum redBits = 16; 974 enum greenBits = 16; 975 enum blueBits = 16; 976 enum alphaBits = 16; 977 enum sharedExpBits = 0; 978 enum depthBits = 0; 979 enum stencilBits = 0; 980 981 import std.meta : AliasSeq; 982 alias numFormats = AliasSeq!( 983 NumFormat.uNorm, NumFormat.sNorm, NumFormat.uScaled, NumFormat.sScaled, NumFormat.uInt, NumFormat.sInt, NumFormat.sFloat 984 ); 985 } 986 987 /// Static descriptor of SurfaceType.R32. 988 struct R32 { 989 enum totalBits = 32; 990 enum numComponents = 1; 991 enum redBits = 32; 992 enum greenBits = 0; 993 enum blueBits = 0; 994 enum alphaBits = 0; 995 enum sharedExpBits = 0; 996 enum depthBits = 0; 997 enum stencilBits = 0; 998 999 import std.meta : AliasSeq; 1000 alias numFormats = AliasSeq!( 1001 NumFormat.uInt, NumFormat.sInt, NumFormat.sFloat 1002 ); 1003 } 1004 1005 /// Static descriptor of SurfaceType.R32_G32. 1006 struct R32_G32 { 1007 enum totalBits = 64; 1008 enum numComponents = 2; 1009 enum redBits = 32; 1010 enum greenBits = 32; 1011 enum blueBits = 0; 1012 enum alphaBits = 0; 1013 enum sharedExpBits = 0; 1014 enum depthBits = 0; 1015 enum stencilBits = 0; 1016 1017 import std.meta : AliasSeq; 1018 alias numFormats = AliasSeq!( 1019 NumFormat.uInt, NumFormat.sInt, NumFormat.sFloat 1020 ); 1021 } 1022 1023 /// Static descriptor of SurfaceType.R32_G32_B32. 1024 struct R32_G32_B32 { 1025 enum totalBits = 96; 1026 enum numComponents = 3; 1027 enum redBits = 32; 1028 enum greenBits = 32; 1029 enum blueBits = 32; 1030 enum alphaBits = 0; 1031 enum sharedExpBits = 0; 1032 enum depthBits = 0; 1033 enum stencilBits = 0; 1034 1035 import std.meta : AliasSeq; 1036 alias numFormats = AliasSeq!( 1037 NumFormat.uInt, NumFormat.sInt, NumFormat.sFloat 1038 ); 1039 } 1040 1041 /// Static descriptor of SurfaceType.R32_G32_B32_A32. 1042 struct R32_G32_B32_A32 { 1043 enum totalBits = 128; 1044 enum numComponents = 4; 1045 enum redBits = 32; 1046 enum greenBits = 32; 1047 enum blueBits = 32; 1048 enum alphaBits = 32; 1049 enum sharedExpBits = 0; 1050 enum depthBits = 0; 1051 enum stencilBits = 0; 1052 1053 import std.meta : AliasSeq; 1054 alias numFormats = AliasSeq!( 1055 NumFormat.uInt, NumFormat.sInt, NumFormat.sFloat 1056 ); 1057 } 1058 1059 /// Static descriptor of SurfaceType.R64. 1060 struct R64 { 1061 enum totalBits = 64; 1062 enum numComponents = 1; 1063 enum redBits = 64; 1064 enum greenBits = 0; 1065 enum blueBits = 0; 1066 enum alphaBits = 0; 1067 enum sharedExpBits = 0; 1068 enum depthBits = 0; 1069 enum stencilBits = 0; 1070 1071 import std.meta : AliasSeq; 1072 alias numFormats = AliasSeq!( 1073 NumFormat.uInt, NumFormat.sInt, NumFormat.sFloat 1074 ); 1075 } 1076 1077 /// Static descriptor of SurfaceType.R64_G64. 1078 struct R64_G64 { 1079 enum totalBits = 128; 1080 enum numComponents = 2; 1081 enum redBits = 64; 1082 enum greenBits = 64; 1083 enum blueBits = 0; 1084 enum alphaBits = 0; 1085 enum sharedExpBits = 0; 1086 enum depthBits = 0; 1087 enum stencilBits = 0; 1088 1089 import std.meta : AliasSeq; 1090 alias numFormats = AliasSeq!( 1091 NumFormat.uInt, NumFormat.sInt, NumFormat.sFloat 1092 ); 1093 } 1094 1095 /// Static descriptor of SurfaceType.R64_G64_B64. 1096 struct R64_G64_B64 { 1097 enum totalBits = 192; 1098 enum numComponents = 3; 1099 enum redBits = 64; 1100 enum greenBits = 64; 1101 enum blueBits = 64; 1102 enum alphaBits = 0; 1103 enum sharedExpBits = 0; 1104 enum depthBits = 0; 1105 enum stencilBits = 0; 1106 1107 import std.meta : AliasSeq; 1108 alias numFormats = AliasSeq!( 1109 NumFormat.uInt, NumFormat.sInt, NumFormat.sFloat 1110 ); 1111 } 1112 1113 /// Static descriptor of SurfaceType.R64_G64_B64_A64. 1114 struct R64_G64_B64_A64 { 1115 enum totalBits = 256; 1116 enum numComponents = 4; 1117 enum redBits = 64; 1118 enum greenBits = 64; 1119 enum blueBits = 64; 1120 enum alphaBits = 64; 1121 enum sharedExpBits = 0; 1122 enum depthBits = 0; 1123 enum stencilBits = 0; 1124 1125 import std.meta : AliasSeq; 1126 alias numFormats = AliasSeq!( 1127 NumFormat.uInt, NumFormat.sInt, NumFormat.sFloat 1128 ); 1129 } 1130 1131 /// Static descriptor of SurfaceType.B10_G11_R11. 1132 struct B10_G11_R11 { 1133 enum totalBits = 32; 1134 enum numComponents = 3; 1135 enum redBits = 11; 1136 enum greenBits = 11; 1137 enum blueBits = 10; 1138 enum alphaBits = 0; 1139 enum sharedExpBits = 0; 1140 enum depthBits = 0; 1141 enum stencilBits = 0; 1142 1143 import std.meta : AliasSeq; 1144 alias numFormats = AliasSeq!( 1145 NumFormat.uFloat 1146 ); 1147 } 1148 1149 /// Static descriptor of SurfaceType.E5_B9_G9_R9. 1150 struct E5_B9_G9_R9 { 1151 enum totalBits = 32; 1152 enum numComponents = 4; 1153 enum redBits = 9; 1154 enum greenBits = 9; 1155 enum blueBits = 9; 1156 enum alphaBits = 0; 1157 enum sharedExpBits = 5; 1158 enum depthBits = 0; 1159 enum stencilBits = 0; 1160 1161 import std.meta : AliasSeq; 1162 alias numFormats = AliasSeq!( 1163 NumFormat.uFloat 1164 ); 1165 } 1166 1167 /// Static descriptor of SurfaceType.D16. 1168 struct D16 { 1169 enum totalBits = 16; 1170 enum numComponents = 1; 1171 enum redBits = 0; 1172 enum greenBits = 0; 1173 enum blueBits = 0; 1174 enum alphaBits = 0; 1175 enum sharedExpBits = 0; 1176 enum depthBits = 16; 1177 enum stencilBits = 0; 1178 1179 import std.meta : AliasSeq; 1180 alias numFormats = AliasSeq!( 1181 NumFormat.uNorm 1182 ); 1183 } 1184 1185 /// Static descriptor of SurfaceType.X8_D24. 1186 struct X8_D24 { 1187 enum totalBits = 32; 1188 enum numComponents = 2; 1189 enum redBits = 0; 1190 enum greenBits = 0; 1191 enum blueBits = 0; 1192 enum alphaBits = 0; 1193 enum sharedExpBits = 0; 1194 enum depthBits = 24; 1195 enum stencilBits = 0; 1196 1197 import std.meta : AliasSeq; 1198 alias numFormats = AliasSeq!( 1199 NumFormat.uNorm 1200 ); 1201 } 1202 1203 /// Static descriptor of SurfaceType.D32. 1204 struct D32 { 1205 enum totalBits = 32; 1206 enum numComponents = 1; 1207 enum redBits = 0; 1208 enum greenBits = 0; 1209 enum blueBits = 0; 1210 enum alphaBits = 0; 1211 enum sharedExpBits = 0; 1212 enum depthBits = 32; 1213 enum stencilBits = 0; 1214 1215 import std.meta : AliasSeq; 1216 alias numFormats = AliasSeq!( 1217 NumFormat.sFloat 1218 ); 1219 } 1220 1221 /// Static descriptor of SurfaceType.S8. 1222 struct S8 { 1223 enum totalBits = 8; 1224 enum numComponents = 1; 1225 enum redBits = 0; 1226 enum greenBits = 0; 1227 enum blueBits = 0; 1228 enum alphaBits = 0; 1229 enum sharedExpBits = 0; 1230 enum depthBits = 0; 1231 enum stencilBits = 8; 1232 1233 import std.meta : AliasSeq; 1234 alias numFormats = AliasSeq!( 1235 NumFormat.uInt 1236 ); 1237 } 1238 1239 /// Static descriptor of SurfaceType.D16_S8. 1240 struct D16_S8 { 1241 enum totalBits = 24; 1242 enum numComponents = 2; 1243 enum redBits = 0; 1244 enum greenBits = 0; 1245 enum blueBits = 0; 1246 enum alphaBits = 0; 1247 enum sharedExpBits = 0; 1248 enum depthBits = 16; 1249 enum stencilBits = 8; 1250 1251 import std.meta : AliasSeq; 1252 alias numFormats = AliasSeq!( 1253 NumFormat.uNorm 1254 ); 1255 } 1256 1257 /// Static descriptor of SurfaceType.D24_S8. 1258 struct D24_S8 { 1259 enum totalBits = 32; 1260 enum numComponents = 2; 1261 enum redBits = 0; 1262 enum greenBits = 0; 1263 enum blueBits = 0; 1264 enum alphaBits = 0; 1265 enum sharedExpBits = 0; 1266 enum depthBits = 24; 1267 enum stencilBits = 8; 1268 1269 import std.meta : AliasSeq; 1270 alias numFormats = AliasSeq!( 1271 NumFormat.uNorm 1272 ); 1273 } 1274 1275 /// Static descriptor of SurfaceType.D32_S8. 1276 struct D32_S8 { 1277 enum totalBits = 40; 1278 enum numComponents = 2; 1279 enum redBits = 0; 1280 enum greenBits = 0; 1281 enum blueBits = 0; 1282 enum alphaBits = 0; 1283 enum sharedExpBits = 0; 1284 enum depthBits = 32; 1285 enum stencilBits = 8; 1286 1287 import std.meta : AliasSeq; 1288 alias numFormats = AliasSeq!( 1289 NumFormat.sFloat 1290 ); 1291 } 1292 1293 /// Static descriptor of Format.rg4_uNorm 1294 struct Rg4_uNorm { 1295 alias SurfType = R4_G4; 1296 enum surfType = SurfaceType.R4_G4; 1297 enum numFormat = NumFormat.uNorm; 1298 enum packed = true; 1299 } 1300 1301 /// Static descriptor of Format.rgba4_uNorm 1302 struct Rgba4_uNorm { 1303 alias SurfType = R4_G4_B4_A4; 1304 enum surfType = SurfaceType.R4_G4_B4_A4; 1305 enum numFormat = NumFormat.uNorm; 1306 enum packed = true; 1307 } 1308 1309 /// Static descriptor of Format.bgra4_uNorm 1310 struct Bgra4_uNorm { 1311 alias SurfType = B4_G4_R4_A4; 1312 enum surfType = SurfaceType.B4_G4_R4_A4; 1313 enum numFormat = NumFormat.uNorm; 1314 enum packed = true; 1315 } 1316 1317 /// Static descriptor of Format.r5g6b5_uNorm 1318 struct R5g6b5_uNorm { 1319 alias SurfType = R5_G6_B5; 1320 enum surfType = SurfaceType.R5_G6_B5; 1321 enum numFormat = NumFormat.uNorm; 1322 enum packed = true; 1323 } 1324 1325 /// Static descriptor of Format.b5g6r5_uNorm 1326 struct B5g6r5_uNorm { 1327 alias SurfType = B5_G6_R5; 1328 enum surfType = SurfaceType.B5_G6_R5; 1329 enum numFormat = NumFormat.uNorm; 1330 enum packed = true; 1331 } 1332 1333 /// Static descriptor of Format.r5g5b5a1_uNorm 1334 struct R5g5b5a1_uNorm { 1335 alias SurfType = R5_G5_B5_A1; 1336 enum surfType = SurfaceType.R5_G5_B5_A1; 1337 enum numFormat = NumFormat.uNorm; 1338 enum packed = true; 1339 } 1340 1341 /// Static descriptor of Format.b5g5r5a1_uNorm 1342 struct B5g5r5a1_uNorm { 1343 alias SurfType = B5_G5_R5_A1; 1344 enum surfType = SurfaceType.B5_G5_R5_A1; 1345 enum numFormat = NumFormat.uNorm; 1346 enum packed = true; 1347 } 1348 1349 /// Static descriptor of Format.a1r5g5b5_uNorm 1350 struct A1r5g5b5_uNorm { 1351 alias SurfType = A1_R5_G5_B5; 1352 enum surfType = SurfaceType.A1_R5_G5_B5; 1353 enum numFormat = NumFormat.uNorm; 1354 enum packed = true; 1355 } 1356 1357 /// Static descriptor of Format.r8_uNorm 1358 struct R8_uNorm { 1359 alias SurfType = R8; 1360 enum surfType = SurfaceType.R8; 1361 enum numFormat = NumFormat.uNorm; 1362 enum packed = false; 1363 } 1364 1365 /// Static descriptor of Format.r8_sNorm 1366 struct R8_sNorm { 1367 alias SurfType = R8; 1368 enum surfType = SurfaceType.R8; 1369 enum numFormat = NumFormat.sNorm; 1370 enum packed = false; 1371 } 1372 1373 /// Static descriptor of Format.r8_uScaled 1374 struct R8_uScaled { 1375 alias SurfType = R8; 1376 enum surfType = SurfaceType.R8; 1377 enum numFormat = NumFormat.uScaled; 1378 enum packed = false; 1379 } 1380 1381 /// Static descriptor of Format.r8_sScaled 1382 struct R8_sScaled { 1383 alias SurfType = R8; 1384 enum surfType = SurfaceType.R8; 1385 enum numFormat = NumFormat.sScaled; 1386 enum packed = false; 1387 } 1388 1389 /// Static descriptor of Format.r8_uInt 1390 struct R8_uInt { 1391 alias SurfType = R8; 1392 enum surfType = SurfaceType.R8; 1393 enum numFormat = NumFormat.uInt; 1394 enum packed = false; 1395 } 1396 1397 /// Static descriptor of Format.r8_sInt 1398 struct R8_sInt { 1399 alias SurfType = R8; 1400 enum surfType = SurfaceType.R8; 1401 enum numFormat = NumFormat.sInt; 1402 enum packed = false; 1403 } 1404 1405 /// Static descriptor of Format.r8_sRgb 1406 struct R8_sRgb { 1407 alias SurfType = R8; 1408 enum surfType = SurfaceType.R8; 1409 enum numFormat = NumFormat.sRgb; 1410 enum packed = false; 1411 } 1412 1413 /// Static descriptor of Format.rg8_uNorm 1414 struct Rg8_uNorm { 1415 alias SurfType = R8_G8; 1416 enum surfType = SurfaceType.R8_G8; 1417 enum numFormat = NumFormat.uNorm; 1418 enum packed = false; 1419 } 1420 1421 /// Static descriptor of Format.rg8_sNorm 1422 struct Rg8_sNorm { 1423 alias SurfType = R8_G8; 1424 enum surfType = SurfaceType.R8_G8; 1425 enum numFormat = NumFormat.sNorm; 1426 enum packed = false; 1427 } 1428 1429 /// Static descriptor of Format.rg8_uScaled 1430 struct Rg8_uScaled { 1431 alias SurfType = R8_G8; 1432 enum surfType = SurfaceType.R8_G8; 1433 enum numFormat = NumFormat.uScaled; 1434 enum packed = false; 1435 } 1436 1437 /// Static descriptor of Format.rg8_sScaled 1438 struct Rg8_sScaled { 1439 alias SurfType = R8_G8; 1440 enum surfType = SurfaceType.R8_G8; 1441 enum numFormat = NumFormat.sScaled; 1442 enum packed = false; 1443 } 1444 1445 /// Static descriptor of Format.rg8_uInt 1446 struct Rg8_uInt { 1447 alias SurfType = R8_G8; 1448 enum surfType = SurfaceType.R8_G8; 1449 enum numFormat = NumFormat.uInt; 1450 enum packed = false; 1451 } 1452 1453 /// Static descriptor of Format.rg8_sInt 1454 struct Rg8_sInt { 1455 alias SurfType = R8_G8; 1456 enum surfType = SurfaceType.R8_G8; 1457 enum numFormat = NumFormat.sInt; 1458 enum packed = false; 1459 } 1460 1461 /// Static descriptor of Format.rg8_sRgb 1462 struct Rg8_sRgb { 1463 alias SurfType = R8_G8; 1464 enum surfType = SurfaceType.R8_G8; 1465 enum numFormat = NumFormat.sRgb; 1466 enum packed = false; 1467 } 1468 1469 /// Static descriptor of Format.rgb8_uNorm 1470 struct Rgb8_uNorm { 1471 alias SurfType = R8_G8_B8; 1472 enum surfType = SurfaceType.R8_G8_B8; 1473 enum numFormat = NumFormat.uNorm; 1474 enum packed = false; 1475 } 1476 1477 /// Static descriptor of Format.rgb8_sNorm 1478 struct Rgb8_sNorm { 1479 alias SurfType = R8_G8_B8; 1480 enum surfType = SurfaceType.R8_G8_B8; 1481 enum numFormat = NumFormat.sNorm; 1482 enum packed = false; 1483 } 1484 1485 /// Static descriptor of Format.rgb8_uScaled 1486 struct Rgb8_uScaled { 1487 alias SurfType = R8_G8_B8; 1488 enum surfType = SurfaceType.R8_G8_B8; 1489 enum numFormat = NumFormat.uScaled; 1490 enum packed = false; 1491 } 1492 1493 /// Static descriptor of Format.rgb8_sScaled 1494 struct Rgb8_sScaled { 1495 alias SurfType = R8_G8_B8; 1496 enum surfType = SurfaceType.R8_G8_B8; 1497 enum numFormat = NumFormat.sScaled; 1498 enum packed = false; 1499 } 1500 1501 /// Static descriptor of Format.rgb8_uInt 1502 struct Rgb8_uInt { 1503 alias SurfType = R8_G8_B8; 1504 enum surfType = SurfaceType.R8_G8_B8; 1505 enum numFormat = NumFormat.uInt; 1506 enum packed = false; 1507 } 1508 1509 /// Static descriptor of Format.rgb8_sInt 1510 struct Rgb8_sInt { 1511 alias SurfType = R8_G8_B8; 1512 enum surfType = SurfaceType.R8_G8_B8; 1513 enum numFormat = NumFormat.sInt; 1514 enum packed = false; 1515 } 1516 1517 /// Static descriptor of Format.rgb8_sRgb 1518 struct Rgb8_sRgb { 1519 alias SurfType = R8_G8_B8; 1520 enum surfType = SurfaceType.R8_G8_B8; 1521 enum numFormat = NumFormat.sRgb; 1522 enum packed = false; 1523 } 1524 1525 /// Static descriptor of Format.bgr8_uNorm 1526 struct Bgr8_uNorm { 1527 alias SurfType = B8_G8_R8; 1528 enum surfType = SurfaceType.B8_G8_R8; 1529 enum numFormat = NumFormat.uNorm; 1530 enum packed = false; 1531 } 1532 1533 /// Static descriptor of Format.bgr8_sNorm 1534 struct Bgr8_sNorm { 1535 alias SurfType = B8_G8_R8; 1536 enum surfType = SurfaceType.B8_G8_R8; 1537 enum numFormat = NumFormat.sNorm; 1538 enum packed = false; 1539 } 1540 1541 /// Static descriptor of Format.bgr8_uScaled 1542 struct Bgr8_uScaled { 1543 alias SurfType = B8_G8_R8; 1544 enum surfType = SurfaceType.B8_G8_R8; 1545 enum numFormat = NumFormat.uScaled; 1546 enum packed = false; 1547 } 1548 1549 /// Static descriptor of Format.bgr8_sScaled 1550 struct Bgr8_sScaled { 1551 alias SurfType = B8_G8_R8; 1552 enum surfType = SurfaceType.B8_G8_R8; 1553 enum numFormat = NumFormat.sScaled; 1554 enum packed = false; 1555 } 1556 1557 /// Static descriptor of Format.bgr8_uInt 1558 struct Bgr8_uInt { 1559 alias SurfType = B8_G8_R8; 1560 enum surfType = SurfaceType.B8_G8_R8; 1561 enum numFormat = NumFormat.uInt; 1562 enum packed = false; 1563 } 1564 1565 /// Static descriptor of Format.bgr8_sInt 1566 struct Bgr8_sInt { 1567 alias SurfType = B8_G8_R8; 1568 enum surfType = SurfaceType.B8_G8_R8; 1569 enum numFormat = NumFormat.sInt; 1570 enum packed = false; 1571 } 1572 1573 /// Static descriptor of Format.bgr8_sRgb 1574 struct Bgr8_sRgb { 1575 alias SurfType = B8_G8_R8; 1576 enum surfType = SurfaceType.B8_G8_R8; 1577 enum numFormat = NumFormat.sRgb; 1578 enum packed = false; 1579 } 1580 1581 /// Static descriptor of Format.rgba8_uNorm 1582 struct Rgba8_uNorm { 1583 alias SurfType = R8_G8_B8_A8; 1584 enum surfType = SurfaceType.R8_G8_B8_A8; 1585 enum numFormat = NumFormat.uNorm; 1586 enum packed = false; 1587 } 1588 1589 /// Static descriptor of Format.rgba8_sNorm 1590 struct Rgba8_sNorm { 1591 alias SurfType = R8_G8_B8_A8; 1592 enum surfType = SurfaceType.R8_G8_B8_A8; 1593 enum numFormat = NumFormat.sNorm; 1594 enum packed = false; 1595 } 1596 1597 /// Static descriptor of Format.rgba8_uScaled 1598 struct Rgba8_uScaled { 1599 alias SurfType = R8_G8_B8_A8; 1600 enum surfType = SurfaceType.R8_G8_B8_A8; 1601 enum numFormat = NumFormat.uScaled; 1602 enum packed = false; 1603 } 1604 1605 /// Static descriptor of Format.rgba8_sScaled 1606 struct Rgba8_sScaled { 1607 alias SurfType = R8_G8_B8_A8; 1608 enum surfType = SurfaceType.R8_G8_B8_A8; 1609 enum numFormat = NumFormat.sScaled; 1610 enum packed = false; 1611 } 1612 1613 /// Static descriptor of Format.rgba8_uInt 1614 struct Rgba8_uInt { 1615 alias SurfType = R8_G8_B8_A8; 1616 enum surfType = SurfaceType.R8_G8_B8_A8; 1617 enum numFormat = NumFormat.uInt; 1618 enum packed = false; 1619 } 1620 1621 /// Static descriptor of Format.rgba8_sInt 1622 struct Rgba8_sInt { 1623 alias SurfType = R8_G8_B8_A8; 1624 enum surfType = SurfaceType.R8_G8_B8_A8; 1625 enum numFormat = NumFormat.sInt; 1626 enum packed = false; 1627 } 1628 1629 /// Static descriptor of Format.rgba8_sRgb 1630 struct Rgba8_sRgb { 1631 alias SurfType = R8_G8_B8_A8; 1632 enum surfType = SurfaceType.R8_G8_B8_A8; 1633 enum numFormat = NumFormat.sRgb; 1634 enum packed = false; 1635 } 1636 1637 /// Static descriptor of Format.bgra8_uNorm 1638 struct Bgra8_uNorm { 1639 alias SurfType = B8_G8_R8_A8; 1640 enum surfType = SurfaceType.B8_G8_R8_A8; 1641 enum numFormat = NumFormat.uNorm; 1642 enum packed = false; 1643 } 1644 1645 /// Static descriptor of Format.bgra8_sNorm 1646 struct Bgra8_sNorm { 1647 alias SurfType = B8_G8_R8_A8; 1648 enum surfType = SurfaceType.B8_G8_R8_A8; 1649 enum numFormat = NumFormat.sNorm; 1650 enum packed = false; 1651 } 1652 1653 /// Static descriptor of Format.bgra8_uScaled 1654 struct Bgra8_uScaled { 1655 alias SurfType = B8_G8_R8_A8; 1656 enum surfType = SurfaceType.B8_G8_R8_A8; 1657 enum numFormat = NumFormat.uScaled; 1658 enum packed = false; 1659 } 1660 1661 /// Static descriptor of Format.bgra8_sScaled 1662 struct Bgra8_sScaled { 1663 alias SurfType = B8_G8_R8_A8; 1664 enum surfType = SurfaceType.B8_G8_R8_A8; 1665 enum numFormat = NumFormat.sScaled; 1666 enum packed = false; 1667 } 1668 1669 /// Static descriptor of Format.bgra8_uInt 1670 struct Bgra8_uInt { 1671 alias SurfType = B8_G8_R8_A8; 1672 enum surfType = SurfaceType.B8_G8_R8_A8; 1673 enum numFormat = NumFormat.uInt; 1674 enum packed = false; 1675 } 1676 1677 /// Static descriptor of Format.bgra8_sInt 1678 struct Bgra8_sInt { 1679 alias SurfType = B8_G8_R8_A8; 1680 enum surfType = SurfaceType.B8_G8_R8_A8; 1681 enum numFormat = NumFormat.sInt; 1682 enum packed = false; 1683 } 1684 1685 /// Static descriptor of Format.bgra8_sRgb 1686 struct Bgra8_sRgb { 1687 alias SurfType = B8_G8_R8_A8; 1688 enum surfType = SurfaceType.B8_G8_R8_A8; 1689 enum numFormat = NumFormat.sRgb; 1690 enum packed = false; 1691 } 1692 1693 /// Static descriptor of Format.abgr8_uNorm 1694 struct Abgr8_uNorm { 1695 alias SurfType = A8_B8_G8_R8; 1696 enum surfType = SurfaceType.A8_B8_G8_R8; 1697 enum numFormat = NumFormat.uNorm; 1698 enum packed = true; 1699 } 1700 1701 /// Static descriptor of Format.abgr8_sNorm 1702 struct Abgr8_sNorm { 1703 alias SurfType = A8_B8_G8_R8; 1704 enum surfType = SurfaceType.A8_B8_G8_R8; 1705 enum numFormat = NumFormat.sNorm; 1706 enum packed = true; 1707 } 1708 1709 /// Static descriptor of Format.abgr8_uScaled 1710 struct Abgr8_uScaled { 1711 alias SurfType = A8_B8_G8_R8; 1712 enum surfType = SurfaceType.A8_B8_G8_R8; 1713 enum numFormat = NumFormat.uScaled; 1714 enum packed = true; 1715 } 1716 1717 /// Static descriptor of Format.abgr8_sScaled 1718 struct Abgr8_sScaled { 1719 alias SurfType = A8_B8_G8_R8; 1720 enum surfType = SurfaceType.A8_B8_G8_R8; 1721 enum numFormat = NumFormat.sScaled; 1722 enum packed = true; 1723 } 1724 1725 /// Static descriptor of Format.abgr8_uInt 1726 struct Abgr8_uInt { 1727 alias SurfType = A8_B8_G8_R8; 1728 enum surfType = SurfaceType.A8_B8_G8_R8; 1729 enum numFormat = NumFormat.uInt; 1730 enum packed = true; 1731 } 1732 1733 /// Static descriptor of Format.abgr8_sInt 1734 struct Abgr8_sInt { 1735 alias SurfType = A8_B8_G8_R8; 1736 enum surfType = SurfaceType.A8_B8_G8_R8; 1737 enum numFormat = NumFormat.sInt; 1738 enum packed = true; 1739 } 1740 1741 /// Static descriptor of Format.abgr8_sRgb 1742 struct Abgr8_sRgb { 1743 alias SurfType = A8_B8_G8_R8; 1744 enum surfType = SurfaceType.A8_B8_G8_R8; 1745 enum numFormat = NumFormat.sRgb; 1746 enum packed = true; 1747 } 1748 1749 /// Static descriptor of Format.a2r10g10b10_uNorm 1750 struct A2r10g10b10_uNorm { 1751 alias SurfType = A2_R10_G10_B10; 1752 enum surfType = SurfaceType.A2_R10_G10_B10; 1753 enum numFormat = NumFormat.uNorm; 1754 enum packed = true; 1755 } 1756 1757 /// Static descriptor of Format.a2r10g10b10_sNorm 1758 struct A2r10g10b10_sNorm { 1759 alias SurfType = A2_R10_G10_B10; 1760 enum surfType = SurfaceType.A2_R10_G10_B10; 1761 enum numFormat = NumFormat.sNorm; 1762 enum packed = true; 1763 } 1764 1765 /// Static descriptor of Format.a2r10g10b10_uScaled 1766 struct A2r10g10b10_uScaled { 1767 alias SurfType = A2_R10_G10_B10; 1768 enum surfType = SurfaceType.A2_R10_G10_B10; 1769 enum numFormat = NumFormat.uScaled; 1770 enum packed = true; 1771 } 1772 1773 /// Static descriptor of Format.a2r10g10b10_sScaled 1774 struct A2r10g10b10_sScaled { 1775 alias SurfType = A2_R10_G10_B10; 1776 enum surfType = SurfaceType.A2_R10_G10_B10; 1777 enum numFormat = NumFormat.sScaled; 1778 enum packed = true; 1779 } 1780 1781 /// Static descriptor of Format.a2r10g10b10_uInt 1782 struct A2r10g10b10_uInt { 1783 alias SurfType = A2_R10_G10_B10; 1784 enum surfType = SurfaceType.A2_R10_G10_B10; 1785 enum numFormat = NumFormat.uInt; 1786 enum packed = true; 1787 } 1788 1789 /// Static descriptor of Format.a2r10g10b10_sInt 1790 struct A2r10g10b10_sInt { 1791 alias SurfType = A2_R10_G10_B10; 1792 enum surfType = SurfaceType.A2_R10_G10_B10; 1793 enum numFormat = NumFormat.sInt; 1794 enum packed = true; 1795 } 1796 1797 /// Static descriptor of Format.a2b10g10r10_uNorm 1798 struct A2b10g10r10_uNorm { 1799 alias SurfType = A2_B10_G10_R10; 1800 enum surfType = SurfaceType.A2_B10_G10_R10; 1801 enum numFormat = NumFormat.uNorm; 1802 enum packed = true; 1803 } 1804 1805 /// Static descriptor of Format.a2b10g10r10_sNorm 1806 struct A2b10g10r10_sNorm { 1807 alias SurfType = A2_B10_G10_R10; 1808 enum surfType = SurfaceType.A2_B10_G10_R10; 1809 enum numFormat = NumFormat.sNorm; 1810 enum packed = true; 1811 } 1812 1813 /// Static descriptor of Format.a2b10g10r10_uScaled 1814 struct A2b10g10r10_uScaled { 1815 alias SurfType = A2_B10_G10_R10; 1816 enum surfType = SurfaceType.A2_B10_G10_R10; 1817 enum numFormat = NumFormat.uScaled; 1818 enum packed = true; 1819 } 1820 1821 /// Static descriptor of Format.a2b10g10r10_sScaled 1822 struct A2b10g10r10_sScaled { 1823 alias SurfType = A2_B10_G10_R10; 1824 enum surfType = SurfaceType.A2_B10_G10_R10; 1825 enum numFormat = NumFormat.sScaled; 1826 enum packed = true; 1827 } 1828 1829 /// Static descriptor of Format.a2b10g10r10_uInt 1830 struct A2b10g10r10_uInt { 1831 alias SurfType = A2_B10_G10_R10; 1832 enum surfType = SurfaceType.A2_B10_G10_R10; 1833 enum numFormat = NumFormat.uInt; 1834 enum packed = true; 1835 } 1836 1837 /// Static descriptor of Format.a2b10g10r10_sInt 1838 struct A2b10g10r10_sInt { 1839 alias SurfType = A2_B10_G10_R10; 1840 enum surfType = SurfaceType.A2_B10_G10_R10; 1841 enum numFormat = NumFormat.sInt; 1842 enum packed = true; 1843 } 1844 1845 /// Static descriptor of Format.r16_uNorm 1846 struct R16_uNorm { 1847 alias SurfType = R16; 1848 enum surfType = SurfaceType.R16; 1849 enum numFormat = NumFormat.uNorm; 1850 enum packed = false; 1851 } 1852 1853 /// Static descriptor of Format.r16_sNorm 1854 struct R16_sNorm { 1855 alias SurfType = R16; 1856 enum surfType = SurfaceType.R16; 1857 enum numFormat = NumFormat.sNorm; 1858 enum packed = false; 1859 } 1860 1861 /// Static descriptor of Format.r16_uScaled 1862 struct R16_uScaled { 1863 alias SurfType = R16; 1864 enum surfType = SurfaceType.R16; 1865 enum numFormat = NumFormat.uScaled; 1866 enum packed = false; 1867 } 1868 1869 /// Static descriptor of Format.r16_sScaled 1870 struct R16_sScaled { 1871 alias SurfType = R16; 1872 enum surfType = SurfaceType.R16; 1873 enum numFormat = NumFormat.sScaled; 1874 enum packed = false; 1875 } 1876 1877 /// Static descriptor of Format.r16_uInt 1878 struct R16_uInt { 1879 alias SurfType = R16; 1880 enum surfType = SurfaceType.R16; 1881 enum numFormat = NumFormat.uInt; 1882 enum packed = false; 1883 } 1884 1885 /// Static descriptor of Format.r16_sInt 1886 struct R16_sInt { 1887 alias SurfType = R16; 1888 enum surfType = SurfaceType.R16; 1889 enum numFormat = NumFormat.sInt; 1890 enum packed = false; 1891 } 1892 1893 /// Static descriptor of Format.r16_sFloat 1894 struct R16_sFloat { 1895 alias SurfType = R16; 1896 enum surfType = SurfaceType.R16; 1897 enum numFormat = NumFormat.sFloat; 1898 enum packed = false; 1899 } 1900 1901 /// Static descriptor of Format.rg16_uNorm 1902 struct Rg16_uNorm { 1903 alias SurfType = R16_G16; 1904 enum surfType = SurfaceType.R16_G16; 1905 enum numFormat = NumFormat.uNorm; 1906 enum packed = false; 1907 } 1908 1909 /// Static descriptor of Format.rg16_sNorm 1910 struct Rg16_sNorm { 1911 alias SurfType = R16_G16; 1912 enum surfType = SurfaceType.R16_G16; 1913 enum numFormat = NumFormat.sNorm; 1914 enum packed = false; 1915 } 1916 1917 /// Static descriptor of Format.rg16_uScaled 1918 struct Rg16_uScaled { 1919 alias SurfType = R16_G16; 1920 enum surfType = SurfaceType.R16_G16; 1921 enum numFormat = NumFormat.uScaled; 1922 enum packed = false; 1923 } 1924 1925 /// Static descriptor of Format.rg16_sScaled 1926 struct Rg16_sScaled { 1927 alias SurfType = R16_G16; 1928 enum surfType = SurfaceType.R16_G16; 1929 enum numFormat = NumFormat.sScaled; 1930 enum packed = false; 1931 } 1932 1933 /// Static descriptor of Format.rg16_uInt 1934 struct Rg16_uInt { 1935 alias SurfType = R16_G16; 1936 enum surfType = SurfaceType.R16_G16; 1937 enum numFormat = NumFormat.uInt; 1938 enum packed = false; 1939 } 1940 1941 /// Static descriptor of Format.rg16_sInt 1942 struct Rg16_sInt { 1943 alias SurfType = R16_G16; 1944 enum surfType = SurfaceType.R16_G16; 1945 enum numFormat = NumFormat.sInt; 1946 enum packed = false; 1947 } 1948 1949 /// Static descriptor of Format.rg16_sFloat 1950 struct Rg16_sFloat { 1951 alias SurfType = R16_G16; 1952 enum surfType = SurfaceType.R16_G16; 1953 enum numFormat = NumFormat.sFloat; 1954 enum packed = false; 1955 } 1956 1957 /// Static descriptor of Format.rgb16_uNorm 1958 struct Rgb16_uNorm { 1959 alias SurfType = R16_G16_B16; 1960 enum surfType = SurfaceType.R16_G16_B16; 1961 enum numFormat = NumFormat.uNorm; 1962 enum packed = false; 1963 } 1964 1965 /// Static descriptor of Format.rgb16_sNorm 1966 struct Rgb16_sNorm { 1967 alias SurfType = R16_G16_B16; 1968 enum surfType = SurfaceType.R16_G16_B16; 1969 enum numFormat = NumFormat.sNorm; 1970 enum packed = false; 1971 } 1972 1973 /// Static descriptor of Format.rgb16_uScaled 1974 struct Rgb16_uScaled { 1975 alias SurfType = R16_G16_B16; 1976 enum surfType = SurfaceType.R16_G16_B16; 1977 enum numFormat = NumFormat.uScaled; 1978 enum packed = false; 1979 } 1980 1981 /// Static descriptor of Format.rgb16_sScaled 1982 struct Rgb16_sScaled { 1983 alias SurfType = R16_G16_B16; 1984 enum surfType = SurfaceType.R16_G16_B16; 1985 enum numFormat = NumFormat.sScaled; 1986 enum packed = false; 1987 } 1988 1989 /// Static descriptor of Format.rgb16_uInt 1990 struct Rgb16_uInt { 1991 alias SurfType = R16_G16_B16; 1992 enum surfType = SurfaceType.R16_G16_B16; 1993 enum numFormat = NumFormat.uInt; 1994 enum packed = false; 1995 } 1996 1997 /// Static descriptor of Format.rgb16_sInt 1998 struct Rgb16_sInt { 1999 alias SurfType = R16_G16_B16; 2000 enum surfType = SurfaceType.R16_G16_B16; 2001 enum numFormat = NumFormat.sInt; 2002 enum packed = false; 2003 } 2004 2005 /// Static descriptor of Format.rgb16_sFloat 2006 struct Rgb16_sFloat { 2007 alias SurfType = R16_G16_B16; 2008 enum surfType = SurfaceType.R16_G16_B16; 2009 enum numFormat = NumFormat.sFloat; 2010 enum packed = false; 2011 } 2012 2013 /// Static descriptor of Format.rgba16_uNorm 2014 struct Rgba16_uNorm { 2015 alias SurfType = R16_G16_B16_A16; 2016 enum surfType = SurfaceType.R16_G16_B16_A16; 2017 enum numFormat = NumFormat.uNorm; 2018 enum packed = false; 2019 } 2020 2021 /// Static descriptor of Format.rgba16_sNorm 2022 struct Rgba16_sNorm { 2023 alias SurfType = R16_G16_B16_A16; 2024 enum surfType = SurfaceType.R16_G16_B16_A16; 2025 enum numFormat = NumFormat.sNorm; 2026 enum packed = false; 2027 } 2028 2029 /// Static descriptor of Format.rgba16_uScaled 2030 struct Rgba16_uScaled { 2031 alias SurfType = R16_G16_B16_A16; 2032 enum surfType = SurfaceType.R16_G16_B16_A16; 2033 enum numFormat = NumFormat.uScaled; 2034 enum packed = false; 2035 } 2036 2037 /// Static descriptor of Format.rgba16_sScaled 2038 struct Rgba16_sScaled { 2039 alias SurfType = R16_G16_B16_A16; 2040 enum surfType = SurfaceType.R16_G16_B16_A16; 2041 enum numFormat = NumFormat.sScaled; 2042 enum packed = false; 2043 } 2044 2045 /// Static descriptor of Format.rgba16_uInt 2046 struct Rgba16_uInt { 2047 alias SurfType = R16_G16_B16_A16; 2048 enum surfType = SurfaceType.R16_G16_B16_A16; 2049 enum numFormat = NumFormat.uInt; 2050 enum packed = false; 2051 } 2052 2053 /// Static descriptor of Format.rgba16_sInt 2054 struct Rgba16_sInt { 2055 alias SurfType = R16_G16_B16_A16; 2056 enum surfType = SurfaceType.R16_G16_B16_A16; 2057 enum numFormat = NumFormat.sInt; 2058 enum packed = false; 2059 } 2060 2061 /// Static descriptor of Format.rgba16_sFloat 2062 struct Rgba16_sFloat { 2063 alias SurfType = R16_G16_B16_A16; 2064 enum surfType = SurfaceType.R16_G16_B16_A16; 2065 enum numFormat = NumFormat.sFloat; 2066 enum packed = false; 2067 } 2068 2069 /// Static descriptor of Format.r32_uInt 2070 struct R32_uInt { 2071 alias SurfType = R32; 2072 enum surfType = SurfaceType.R32; 2073 enum numFormat = NumFormat.uInt; 2074 enum packed = false; 2075 } 2076 2077 /// Static descriptor of Format.r32_sInt 2078 struct R32_sInt { 2079 alias SurfType = R32; 2080 enum surfType = SurfaceType.R32; 2081 enum numFormat = NumFormat.sInt; 2082 enum packed = false; 2083 } 2084 2085 /// Static descriptor of Format.r32_sFloat 2086 struct R32_sFloat { 2087 alias SurfType = R32; 2088 enum surfType = SurfaceType.R32; 2089 enum numFormat = NumFormat.sFloat; 2090 enum packed = false; 2091 } 2092 2093 /// Static descriptor of Format.rg32_uInt 2094 struct Rg32_uInt { 2095 alias SurfType = R32_G32; 2096 enum surfType = SurfaceType.R32_G32; 2097 enum numFormat = NumFormat.uInt; 2098 enum packed = false; 2099 } 2100 2101 /// Static descriptor of Format.rg32_sInt 2102 struct Rg32_sInt { 2103 alias SurfType = R32_G32; 2104 enum surfType = SurfaceType.R32_G32; 2105 enum numFormat = NumFormat.sInt; 2106 enum packed = false; 2107 } 2108 2109 /// Static descriptor of Format.rg32_sFloat 2110 struct Rg32_sFloat { 2111 alias SurfType = R32_G32; 2112 enum surfType = SurfaceType.R32_G32; 2113 enum numFormat = NumFormat.sFloat; 2114 enum packed = false; 2115 } 2116 2117 /// Static descriptor of Format.rgb32_uInt 2118 struct Rgb32_uInt { 2119 alias SurfType = R32_G32_B32; 2120 enum surfType = SurfaceType.R32_G32_B32; 2121 enum numFormat = NumFormat.uInt; 2122 enum packed = false; 2123 } 2124 2125 /// Static descriptor of Format.rgb32_sInt 2126 struct Rgb32_sInt { 2127 alias SurfType = R32_G32_B32; 2128 enum surfType = SurfaceType.R32_G32_B32; 2129 enum numFormat = NumFormat.sInt; 2130 enum packed = false; 2131 } 2132 2133 /// Static descriptor of Format.rgb32_sFloat 2134 struct Rgb32_sFloat { 2135 alias SurfType = R32_G32_B32; 2136 enum surfType = SurfaceType.R32_G32_B32; 2137 enum numFormat = NumFormat.sFloat; 2138 enum packed = false; 2139 } 2140 2141 /// Static descriptor of Format.rgba32_uInt 2142 struct Rgba32_uInt { 2143 alias SurfType = R32_G32_B32_A32; 2144 enum surfType = SurfaceType.R32_G32_B32_A32; 2145 enum numFormat = NumFormat.uInt; 2146 enum packed = false; 2147 } 2148 2149 /// Static descriptor of Format.rgba32_sInt 2150 struct Rgba32_sInt { 2151 alias SurfType = R32_G32_B32_A32; 2152 enum surfType = SurfaceType.R32_G32_B32_A32; 2153 enum numFormat = NumFormat.sInt; 2154 enum packed = false; 2155 } 2156 2157 /// Static descriptor of Format.rgba32_sFloat 2158 struct Rgba32_sFloat { 2159 alias SurfType = R32_G32_B32_A32; 2160 enum surfType = SurfaceType.R32_G32_B32_A32; 2161 enum numFormat = NumFormat.sFloat; 2162 enum packed = false; 2163 } 2164 2165 /// Static descriptor of Format.r64_uInt 2166 struct R64_uInt { 2167 alias SurfType = R64; 2168 enum surfType = SurfaceType.R64; 2169 enum numFormat = NumFormat.uInt; 2170 enum packed = false; 2171 } 2172 2173 /// Static descriptor of Format.r64_sInt 2174 struct R64_sInt { 2175 alias SurfType = R64; 2176 enum surfType = SurfaceType.R64; 2177 enum numFormat = NumFormat.sInt; 2178 enum packed = false; 2179 } 2180 2181 /// Static descriptor of Format.r64_sFloat 2182 struct R64_sFloat { 2183 alias SurfType = R64; 2184 enum surfType = SurfaceType.R64; 2185 enum numFormat = NumFormat.sFloat; 2186 enum packed = false; 2187 } 2188 2189 /// Static descriptor of Format.rg64_uInt 2190 struct Rg64_uInt { 2191 alias SurfType = R64_G64; 2192 enum surfType = SurfaceType.R64_G64; 2193 enum numFormat = NumFormat.uInt; 2194 enum packed = false; 2195 } 2196 2197 /// Static descriptor of Format.rg64_sInt 2198 struct Rg64_sInt { 2199 alias SurfType = R64_G64; 2200 enum surfType = SurfaceType.R64_G64; 2201 enum numFormat = NumFormat.sInt; 2202 enum packed = false; 2203 } 2204 2205 /// Static descriptor of Format.rg64_sFloat 2206 struct Rg64_sFloat { 2207 alias SurfType = R64_G64; 2208 enum surfType = SurfaceType.R64_G64; 2209 enum numFormat = NumFormat.sFloat; 2210 enum packed = false; 2211 } 2212 2213 /// Static descriptor of Format.rgb64_uInt 2214 struct Rgb64_uInt { 2215 alias SurfType = R64_G64_B64; 2216 enum surfType = SurfaceType.R64_G64_B64; 2217 enum numFormat = NumFormat.uInt; 2218 enum packed = false; 2219 } 2220 2221 /// Static descriptor of Format.rgb64_sInt 2222 struct Rgb64_sInt { 2223 alias SurfType = R64_G64_B64; 2224 enum surfType = SurfaceType.R64_G64_B64; 2225 enum numFormat = NumFormat.sInt; 2226 enum packed = false; 2227 } 2228 2229 /// Static descriptor of Format.rgb64_sFloat 2230 struct Rgb64_sFloat { 2231 alias SurfType = R64_G64_B64; 2232 enum surfType = SurfaceType.R64_G64_B64; 2233 enum numFormat = NumFormat.sFloat; 2234 enum packed = false; 2235 } 2236 2237 /// Static descriptor of Format.rgba64_uInt 2238 struct Rgba64_uInt { 2239 alias SurfType = R64_G64_B64_A64; 2240 enum surfType = SurfaceType.R64_G64_B64_A64; 2241 enum numFormat = NumFormat.uInt; 2242 enum packed = false; 2243 } 2244 2245 /// Static descriptor of Format.rgba64_sInt 2246 struct Rgba64_sInt { 2247 alias SurfType = R64_G64_B64_A64; 2248 enum surfType = SurfaceType.R64_G64_B64_A64; 2249 enum numFormat = NumFormat.sInt; 2250 enum packed = false; 2251 } 2252 2253 /// Static descriptor of Format.rgba64_sFloat 2254 struct Rgba64_sFloat { 2255 alias SurfType = R64_G64_B64_A64; 2256 enum surfType = SurfaceType.R64_G64_B64_A64; 2257 enum numFormat = NumFormat.sFloat; 2258 enum packed = false; 2259 } 2260 2261 /// Static descriptor of Format.b10g11r11_uFloat 2262 struct B10g11r11_uFloat { 2263 alias SurfType = B10_G11_R11; 2264 enum surfType = SurfaceType.B10_G11_R11; 2265 enum numFormat = NumFormat.uFloat; 2266 enum packed = true; 2267 } 2268 2269 /// Static descriptor of Format.ebgr9_uFloat 2270 struct Ebgr9_uFloat { 2271 alias SurfType = E5_B9_G9_R9; 2272 enum surfType = SurfaceType.E5_B9_G9_R9; 2273 enum numFormat = NumFormat.uFloat; 2274 enum packed = true; 2275 } 2276 2277 /// Static descriptor of Format.d16_uNorm 2278 struct D16_uNorm { 2279 alias SurfType = D16; 2280 enum surfType = SurfaceType.D16; 2281 enum numFormat = NumFormat.uNorm; 2282 enum packed = false; 2283 } 2284 2285 /// Static descriptor of Format.x8d24_uNorm 2286 struct X8d24_uNorm { 2287 alias SurfType = X8_D24; 2288 enum surfType = SurfaceType.X8_D24; 2289 enum numFormat = NumFormat.uNorm; 2290 enum packed = true; 2291 } 2292 2293 /// Static descriptor of Format.d32_sFloat 2294 struct D32_sFloat { 2295 alias SurfType = D32; 2296 enum surfType = SurfaceType.D32; 2297 enum numFormat = NumFormat.sFloat; 2298 enum packed = false; 2299 } 2300 2301 /// Static descriptor of Format.s8_uInt 2302 struct S8_uInt { 2303 alias SurfType = S8; 2304 enum surfType = SurfaceType.S8; 2305 enum numFormat = NumFormat.uInt; 2306 enum packed = false; 2307 } 2308 2309 /// Static descriptor of Format.d16s8_uNorm 2310 struct D16s8_uNorm { 2311 alias SurfType = D16_S8; 2312 enum surfType = SurfaceType.D16_S8; 2313 enum numFormat = NumFormat.uNorm; 2314 enum packed = false; 2315 } 2316 2317 /// Static descriptor of Format.d24s8_uNorm 2318 struct D24s8_uNorm { 2319 alias SurfType = D24_S8; 2320 enum surfType = SurfaceType.D24_S8; 2321 enum numFormat = NumFormat.uNorm; 2322 enum packed = false; 2323 } 2324 2325 /// Static descriptor of Format.d32s8_sFloat 2326 struct D32s8_sFloat { 2327 alias SurfType = D32_S8; 2328 enum surfType = SurfaceType.D32_S8; 2329 enum numFormat = NumFormat.sFloat; 2330 enum packed = false; 2331 } 2332 2333 private immutable(FormatDesc[]) fmtDescs; 2334 2335 shared static this() { 2336 import std.exception : assumeUnique; 2337 fmtDescs = assumeUnique( [ 2338 FormatDesc.init, 2339 FormatDesc(SurfaceType.R4_G4, NumFormat.uNorm, true), 2340 FormatDesc(SurfaceType.R4_G4_B4_A4, NumFormat.uNorm, true), 2341 FormatDesc(SurfaceType.B4_G4_R4_A4, NumFormat.uNorm, true), 2342 FormatDesc(SurfaceType.R5_G6_B5, NumFormat.uNorm, true), 2343 FormatDesc(SurfaceType.B5_G6_R5, NumFormat.uNorm, true), 2344 FormatDesc(SurfaceType.R5_G5_B5_A1, NumFormat.uNorm, true), 2345 FormatDesc(SurfaceType.B5_G5_R5_A1, NumFormat.uNorm, true), 2346 FormatDesc(SurfaceType.A1_R5_G5_B5, NumFormat.uNorm, true), 2347 FormatDesc(SurfaceType.R8, NumFormat.uNorm, false), 2348 FormatDesc(SurfaceType.R8, NumFormat.sNorm, false), 2349 FormatDesc(SurfaceType.R8, NumFormat.uScaled, false), 2350 FormatDesc(SurfaceType.R8, NumFormat.sScaled, false), 2351 FormatDesc(SurfaceType.R8, NumFormat.uInt, false), 2352 FormatDesc(SurfaceType.R8, NumFormat.sInt, false), 2353 FormatDesc(SurfaceType.R8, NumFormat.sRgb, false), 2354 FormatDesc(SurfaceType.R8_G8, NumFormat.uNorm, false), 2355 FormatDesc(SurfaceType.R8_G8, NumFormat.sNorm, false), 2356 FormatDesc(SurfaceType.R8_G8, NumFormat.uScaled, false), 2357 FormatDesc(SurfaceType.R8_G8, NumFormat.sScaled, false), 2358 FormatDesc(SurfaceType.R8_G8, NumFormat.uInt, false), 2359 FormatDesc(SurfaceType.R8_G8, NumFormat.sInt, false), 2360 FormatDesc(SurfaceType.R8_G8, NumFormat.sRgb, false), 2361 FormatDesc(SurfaceType.R8_G8_B8, NumFormat.uNorm, false), 2362 FormatDesc(SurfaceType.R8_G8_B8, NumFormat.sNorm, false), 2363 FormatDesc(SurfaceType.R8_G8_B8, NumFormat.uScaled, false), 2364 FormatDesc(SurfaceType.R8_G8_B8, NumFormat.sScaled, false), 2365 FormatDesc(SurfaceType.R8_G8_B8, NumFormat.uInt, false), 2366 FormatDesc(SurfaceType.R8_G8_B8, NumFormat.sInt, false), 2367 FormatDesc(SurfaceType.R8_G8_B8, NumFormat.sRgb, false), 2368 FormatDesc(SurfaceType.B8_G8_R8, NumFormat.uNorm, false), 2369 FormatDesc(SurfaceType.B8_G8_R8, NumFormat.sNorm, false), 2370 FormatDesc(SurfaceType.B8_G8_R8, NumFormat.uScaled, false), 2371 FormatDesc(SurfaceType.B8_G8_R8, NumFormat.sScaled, false), 2372 FormatDesc(SurfaceType.B8_G8_R8, NumFormat.uInt, false), 2373 FormatDesc(SurfaceType.B8_G8_R8, NumFormat.sInt, false), 2374 FormatDesc(SurfaceType.B8_G8_R8, NumFormat.sRgb, false), 2375 FormatDesc(SurfaceType.R8_G8_B8_A8, NumFormat.uNorm, false), 2376 FormatDesc(SurfaceType.R8_G8_B8_A8, NumFormat.sNorm, false), 2377 FormatDesc(SurfaceType.R8_G8_B8_A8, NumFormat.uScaled, false), 2378 FormatDesc(SurfaceType.R8_G8_B8_A8, NumFormat.sScaled, false), 2379 FormatDesc(SurfaceType.R8_G8_B8_A8, NumFormat.uInt, false), 2380 FormatDesc(SurfaceType.R8_G8_B8_A8, NumFormat.sInt, false), 2381 FormatDesc(SurfaceType.R8_G8_B8_A8, NumFormat.sRgb, false), 2382 FormatDesc(SurfaceType.B8_G8_R8_A8, NumFormat.uNorm, false), 2383 FormatDesc(SurfaceType.B8_G8_R8_A8, NumFormat.sNorm, false), 2384 FormatDesc(SurfaceType.B8_G8_R8_A8, NumFormat.uScaled, false), 2385 FormatDesc(SurfaceType.B8_G8_R8_A8, NumFormat.sScaled, false), 2386 FormatDesc(SurfaceType.B8_G8_R8_A8, NumFormat.uInt, false), 2387 FormatDesc(SurfaceType.B8_G8_R8_A8, NumFormat.sInt, false), 2388 FormatDesc(SurfaceType.B8_G8_R8_A8, NumFormat.sRgb, false), 2389 FormatDesc(SurfaceType.A8_B8_G8_R8, NumFormat.uNorm, true), 2390 FormatDesc(SurfaceType.A8_B8_G8_R8, NumFormat.sNorm, true), 2391 FormatDesc(SurfaceType.A8_B8_G8_R8, NumFormat.uScaled, true), 2392 FormatDesc(SurfaceType.A8_B8_G8_R8, NumFormat.sScaled, true), 2393 FormatDesc(SurfaceType.A8_B8_G8_R8, NumFormat.uInt, true), 2394 FormatDesc(SurfaceType.A8_B8_G8_R8, NumFormat.sInt, true), 2395 FormatDesc(SurfaceType.A8_B8_G8_R8, NumFormat.sRgb, true), 2396 FormatDesc(SurfaceType.A2_R10_G10_B10, NumFormat.uNorm, true), 2397 FormatDesc(SurfaceType.A2_R10_G10_B10, NumFormat.sNorm, true), 2398 FormatDesc(SurfaceType.A2_R10_G10_B10, NumFormat.uScaled, true), 2399 FormatDesc(SurfaceType.A2_R10_G10_B10, NumFormat.sScaled, true), 2400 FormatDesc(SurfaceType.A2_R10_G10_B10, NumFormat.uInt, true), 2401 FormatDesc(SurfaceType.A2_R10_G10_B10, NumFormat.sInt, true), 2402 FormatDesc(SurfaceType.A2_B10_G10_R10, NumFormat.uNorm, true), 2403 FormatDesc(SurfaceType.A2_B10_G10_R10, NumFormat.sNorm, true), 2404 FormatDesc(SurfaceType.A2_B10_G10_R10, NumFormat.uScaled, true), 2405 FormatDesc(SurfaceType.A2_B10_G10_R10, NumFormat.sScaled, true), 2406 FormatDesc(SurfaceType.A2_B10_G10_R10, NumFormat.uInt, true), 2407 FormatDesc(SurfaceType.A2_B10_G10_R10, NumFormat.sInt, true), 2408 FormatDesc(SurfaceType.R16, NumFormat.uNorm, false), 2409 FormatDesc(SurfaceType.R16, NumFormat.sNorm, false), 2410 FormatDesc(SurfaceType.R16, NumFormat.uScaled, false), 2411 FormatDesc(SurfaceType.R16, NumFormat.sScaled, false), 2412 FormatDesc(SurfaceType.R16, NumFormat.uInt, false), 2413 FormatDesc(SurfaceType.R16, NumFormat.sInt, false), 2414 FormatDesc(SurfaceType.R16, NumFormat.sFloat, false), 2415 FormatDesc(SurfaceType.R16_G16, NumFormat.uNorm, false), 2416 FormatDesc(SurfaceType.R16_G16, NumFormat.sNorm, false), 2417 FormatDesc(SurfaceType.R16_G16, NumFormat.uScaled, false), 2418 FormatDesc(SurfaceType.R16_G16, NumFormat.sScaled, false), 2419 FormatDesc(SurfaceType.R16_G16, NumFormat.uInt, false), 2420 FormatDesc(SurfaceType.R16_G16, NumFormat.sInt, false), 2421 FormatDesc(SurfaceType.R16_G16, NumFormat.sFloat, false), 2422 FormatDesc(SurfaceType.R16_G16_B16, NumFormat.uNorm, false), 2423 FormatDesc(SurfaceType.R16_G16_B16, NumFormat.sNorm, false), 2424 FormatDesc(SurfaceType.R16_G16_B16, NumFormat.uScaled, false), 2425 FormatDesc(SurfaceType.R16_G16_B16, NumFormat.sScaled, false), 2426 FormatDesc(SurfaceType.R16_G16_B16, NumFormat.uInt, false), 2427 FormatDesc(SurfaceType.R16_G16_B16, NumFormat.sInt, false), 2428 FormatDesc(SurfaceType.R16_G16_B16, NumFormat.sFloat, false), 2429 FormatDesc(SurfaceType.R16_G16_B16_A16, NumFormat.uNorm, false), 2430 FormatDesc(SurfaceType.R16_G16_B16_A16, NumFormat.sNorm, false), 2431 FormatDesc(SurfaceType.R16_G16_B16_A16, NumFormat.uScaled, false), 2432 FormatDesc(SurfaceType.R16_G16_B16_A16, NumFormat.sScaled, false), 2433 FormatDesc(SurfaceType.R16_G16_B16_A16, NumFormat.uInt, false), 2434 FormatDesc(SurfaceType.R16_G16_B16_A16, NumFormat.sInt, false), 2435 FormatDesc(SurfaceType.R16_G16_B16_A16, NumFormat.sFloat, false), 2436 FormatDesc(SurfaceType.R32, NumFormat.uInt, false), 2437 FormatDesc(SurfaceType.R32, NumFormat.sInt, false), 2438 FormatDesc(SurfaceType.R32, NumFormat.sFloat, false), 2439 FormatDesc(SurfaceType.R32_G32, NumFormat.uInt, false), 2440 FormatDesc(SurfaceType.R32_G32, NumFormat.sInt, false), 2441 FormatDesc(SurfaceType.R32_G32, NumFormat.sFloat, false), 2442 FormatDesc(SurfaceType.R32_G32_B32, NumFormat.uInt, false), 2443 FormatDesc(SurfaceType.R32_G32_B32, NumFormat.sInt, false), 2444 FormatDesc(SurfaceType.R32_G32_B32, NumFormat.sFloat, false), 2445 FormatDesc(SurfaceType.R32_G32_B32_A32, NumFormat.uInt, false), 2446 FormatDesc(SurfaceType.R32_G32_B32_A32, NumFormat.sInt, false), 2447 FormatDesc(SurfaceType.R32_G32_B32_A32, NumFormat.sFloat, false), 2448 FormatDesc(SurfaceType.R64, NumFormat.uInt, false), 2449 FormatDesc(SurfaceType.R64, NumFormat.sInt, false), 2450 FormatDesc(SurfaceType.R64, NumFormat.sFloat, false), 2451 FormatDesc(SurfaceType.R64_G64, NumFormat.uInt, false), 2452 FormatDesc(SurfaceType.R64_G64, NumFormat.sInt, false), 2453 FormatDesc(SurfaceType.R64_G64, NumFormat.sFloat, false), 2454 FormatDesc(SurfaceType.R64_G64_B64, NumFormat.uInt, false), 2455 FormatDesc(SurfaceType.R64_G64_B64, NumFormat.sInt, false), 2456 FormatDesc(SurfaceType.R64_G64_B64, NumFormat.sFloat, false), 2457 FormatDesc(SurfaceType.R64_G64_B64_A64, NumFormat.uInt, false), 2458 FormatDesc(SurfaceType.R64_G64_B64_A64, NumFormat.sInt, false), 2459 FormatDesc(SurfaceType.R64_G64_B64_A64, NumFormat.sFloat, false), 2460 FormatDesc(SurfaceType.B10_G11_R11, NumFormat.uFloat, true), 2461 FormatDesc(SurfaceType.E5_B9_G9_R9, NumFormat.uFloat, true), 2462 FormatDesc(SurfaceType.D16, NumFormat.uNorm, false), 2463 FormatDesc(SurfaceType.X8_D24, NumFormat.uNorm, true), 2464 FormatDesc(SurfaceType.D32, NumFormat.sFloat, false), 2465 FormatDesc(SurfaceType.S8, NumFormat.uInt, false), 2466 FormatDesc(SurfaceType.D16_S8, NumFormat.uNorm, false), 2467 FormatDesc(SurfaceType.D24_S8, NumFormat.uNorm, false), 2468 FormatDesc(SurfaceType.D32_S8, NumFormat.sFloat, false), 2469 ] ); 2470 }