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