1 /**************************************************************************** 2 * Copyright (C) 2016 Intel Corporation. All Rights Reserved. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the "Software"), 6 * to deal in the Software without restriction, including without limitation 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 * and/or sell copies of the Software, and to permit persons to whom the 9 * Software is furnished to do so, subject to the following conditions: 10 * 11 * The above copyright notice and this permission notice (including the next 12 * paragraph) shall be included in all copies or substantial portions of the 13 * Software. 14 * 15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 21 * IN THE SOFTWARE. 22 * 23 * @file format_traits.h 24 * 25 * @brief Format Traits. auto-generated file 26 * 27 * DO NOT EDIT 28 * 29 ******************************************************************************/ 30 #pragma once 31 32 #include "format_types.h" 33 #include "format_utils.h" 34 35 ////////////////////////////////////////////////////////////////////////// 36 /// FormatSwizzle - Component swizzle selects 37 ////////////////////////////////////////////////////////////////////////// 38 template <uint32_t comp0 = 0, uint32_t comp1 = 0, uint32_t comp2 = 0, uint32_t comp3 = 0> 39 struct FormatSwizzle 40 { 41 // Return swizzle select for component. swizzleFormatSwizzle42 INLINE static uint32_t swizzle(uint32_t c) 43 { 44 static const uint32_t s[4] = {comp0, comp1, comp2, comp3}; 45 return s[c]; 46 } 47 }; 48 49 ////////////////////////////////////////////////////////////////////////// 50 /// FormatTraits - Format traits 51 ////////////////////////////////////////////////////////////////////////// 52 template <SWR_FORMAT format> 53 struct FormatTraits : ComponentTraits<SWR_TYPE_UNKNOWN, 0>, FormatSwizzle<0>, Defaults<0, 0, 0, 0> 54 { 55 static const uint32_t bpp{0}; 56 static const uint32_t numComps{0}; 57 static const bool hasAlpha{false}; 58 static const uint32_t alphaComp{0}; 59 60 static const bool isSRGB{false}; 61 static const bool isBC{false}; 62 static const bool isSubsampled{false}; 63 static const uint32_t bcWidth{1}; 64 static const uint32_t bcHeight{1}; 65 }; 66 67 ////////////////////////////////////////////////////////////////////////// 68 /// FormatTraits<R32G32B32A32_FLOAT> - Format traits specialization for R32G32B32A32_FLOAT 69 ////////////////////////////////////////////////////////////////////////// 70 template <> 71 struct FormatTraits<R32G32B32A32_FLOAT> : ComponentTraits<SWR_TYPE_FLOAT, 72 32, 73 SWR_TYPE_FLOAT, 74 32, 75 SWR_TYPE_FLOAT, 76 32, 77 SWR_TYPE_FLOAT, 78 32>, 79 FormatSwizzle<0, 1, 2, 3>, 80 Defaults<0, 0, 0, 0x3f800000> 81 { 82 static const uint32_t bpp{128}; 83 static const uint32_t numComps{4}; 84 static const bool hasAlpha{true}; 85 static const uint32_t alphaComp{3}; 86 static const bool isSRGB{false}; 87 static const bool isBC{false}; 88 static const bool isSubsampled{false}; 89 static const uint32_t bcWidth{1}; 90 static const uint32_t bcHeight{1}; 91 92 typedef Transpose32_32_32_32 TransposeT; 93 typedef Format4<32, 32, 32, 32> FormatT; 94 }; 95 96 ////////////////////////////////////////////////////////////////////////// 97 /// FormatTraits<R32G32B32A32_SINT> - Format traits specialization for R32G32B32A32_SINT 98 ////////////////////////////////////////////////////////////////////////// 99 template <> 100 struct FormatTraits<R32G32B32A32_SINT> 101 : ComponentTraits<SWR_TYPE_SINT, 32, SWR_TYPE_SINT, 32, SWR_TYPE_SINT, 32, SWR_TYPE_SINT, 32>, 102 FormatSwizzle<0, 1, 2, 3>, 103 Defaults<0, 0, 0, 0x1> 104 { 105 static const uint32_t bpp{128}; 106 static const uint32_t numComps{4}; 107 static const bool hasAlpha{true}; 108 static const uint32_t alphaComp{3}; 109 static const bool isSRGB{false}; 110 static const bool isBC{false}; 111 static const bool isSubsampled{false}; 112 static const uint32_t bcWidth{1}; 113 static const uint32_t bcHeight{1}; 114 115 typedef Transpose32_32_32_32 TransposeT; 116 typedef Format4<32, 32, 32, 32> FormatT; 117 }; 118 119 ////////////////////////////////////////////////////////////////////////// 120 /// FormatTraits<R32G32B32A32_UINT> - Format traits specialization for R32G32B32A32_UINT 121 ////////////////////////////////////////////////////////////////////////// 122 template <> 123 struct FormatTraits<R32G32B32A32_UINT> 124 : ComponentTraits<SWR_TYPE_UINT, 32, SWR_TYPE_UINT, 32, SWR_TYPE_UINT, 32, SWR_TYPE_UINT, 32>, 125 FormatSwizzle<0, 1, 2, 3>, 126 Defaults<0, 0, 0, 0x1> 127 { 128 static const uint32_t bpp{128}; 129 static const uint32_t numComps{4}; 130 static const bool hasAlpha{true}; 131 static const uint32_t alphaComp{3}; 132 static const bool isSRGB{false}; 133 static const bool isBC{false}; 134 static const bool isSubsampled{false}; 135 static const uint32_t bcWidth{1}; 136 static const uint32_t bcHeight{1}; 137 138 typedef Transpose32_32_32_32 TransposeT; 139 typedef Format4<32, 32, 32, 32> FormatT; 140 }; 141 142 ////////////////////////////////////////////////////////////////////////// 143 /// FormatTraits<R64G64_FLOAT> - Format traits specialization for R64G64_FLOAT 144 ////////////////////////////////////////////////////////////////////////// 145 template <> 146 struct FormatTraits<R64G64_FLOAT> : ComponentTraits<SWR_TYPE_FLOAT, 64, SWR_TYPE_FLOAT, 64>, 147 FormatSwizzle<0, 1>, 148 Defaults<0, 0, 0, 0x3f800000> 149 { 150 static const uint32_t bpp{128}; 151 static const uint32_t numComps{2}; 152 static const bool hasAlpha{false}; 153 static const uint32_t alphaComp{0}; 154 static const bool isSRGB{false}; 155 static const bool isBC{false}; 156 static const bool isSubsampled{false}; 157 static const uint32_t bcWidth{1}; 158 static const uint32_t bcHeight{1}; 159 160 typedef Transpose64_64 TransposeT; 161 typedef Format2<64, 64> FormatT; 162 }; 163 164 ////////////////////////////////////////////////////////////////////////// 165 /// FormatTraits<R32G32B32X32_FLOAT> - Format traits specialization for R32G32B32X32_FLOAT 166 ////////////////////////////////////////////////////////////////////////// 167 template <> 168 struct FormatTraits<R32G32B32X32_FLOAT> : ComponentTraits<SWR_TYPE_FLOAT, 169 32, 170 SWR_TYPE_FLOAT, 171 32, 172 SWR_TYPE_FLOAT, 173 32, 174 SWR_TYPE_UNUSED, 175 32>, 176 FormatSwizzle<0, 1, 2, 3>, 177 Defaults<0, 0, 0, 0x3f800000> 178 { 179 static const uint32_t bpp{128}; 180 static const uint32_t numComps{3}; 181 static const bool hasAlpha{false}; 182 static const uint32_t alphaComp{0}; 183 static const bool isSRGB{false}; 184 static const bool isBC{false}; 185 static const bool isSubsampled{false}; 186 static const uint32_t bcWidth{1}; 187 static const uint32_t bcHeight{1}; 188 189 typedef Transpose32_32_32_32 TransposeT; 190 typedef Format4<32, 32, 32, 32> FormatT; 191 }; 192 193 ////////////////////////////////////////////////////////////////////////// 194 /// FormatTraits<R32G32B32A32_SSCALED> - Format traits specialization for R32G32B32A32_SSCALED 195 ////////////////////////////////////////////////////////////////////////// 196 template <> 197 struct FormatTraits<R32G32B32A32_SSCALED> : ComponentTraits<SWR_TYPE_SSCALED, 198 32, 199 SWR_TYPE_SSCALED, 200 32, 201 SWR_TYPE_SSCALED, 202 32, 203 SWR_TYPE_SSCALED, 204 32>, 205 FormatSwizzle<0, 1, 2, 3>, 206 Defaults<0, 0, 0, 0x3f800000> 207 { 208 static const uint32_t bpp{128}; 209 static const uint32_t numComps{4}; 210 static const bool hasAlpha{true}; 211 static const uint32_t alphaComp{3}; 212 static const bool isSRGB{false}; 213 static const bool isBC{false}; 214 static const bool isSubsampled{false}; 215 static const uint32_t bcWidth{1}; 216 static const uint32_t bcHeight{1}; 217 218 typedef Transpose32_32_32_32 TransposeT; 219 typedef Format4<32, 32, 32, 32> FormatT; 220 }; 221 222 ////////////////////////////////////////////////////////////////////////// 223 /// FormatTraits<R32G32B32A32_USCALED> - Format traits specialization for R32G32B32A32_USCALED 224 ////////////////////////////////////////////////////////////////////////// 225 template <> 226 struct FormatTraits<R32G32B32A32_USCALED> : ComponentTraits<SWR_TYPE_USCALED, 227 32, 228 SWR_TYPE_USCALED, 229 32, 230 SWR_TYPE_USCALED, 231 32, 232 SWR_TYPE_USCALED, 233 32>, 234 FormatSwizzle<0, 1, 2, 3>, 235 Defaults<0, 0, 0, 0x3f800000> 236 { 237 static const uint32_t bpp{128}; 238 static const uint32_t numComps{4}; 239 static const bool hasAlpha{true}; 240 static const uint32_t alphaComp{3}; 241 static const bool isSRGB{false}; 242 static const bool isBC{false}; 243 static const bool isSubsampled{false}; 244 static const uint32_t bcWidth{1}; 245 static const uint32_t bcHeight{1}; 246 247 typedef Transpose32_32_32_32 TransposeT; 248 typedef Format4<32, 32, 32, 32> FormatT; 249 }; 250 251 ////////////////////////////////////////////////////////////////////////// 252 /// FormatTraits<R32G32B32A32_SFIXED> - Format traits specialization for R32G32B32A32_SFIXED 253 ////////////////////////////////////////////////////////////////////////// 254 template <> 255 struct FormatTraits<R32G32B32A32_SFIXED> : ComponentTraits<SWR_TYPE_SFIXED, 256 32, 257 SWR_TYPE_SFIXED, 258 32, 259 SWR_TYPE_SFIXED, 260 32, 261 SWR_TYPE_SFIXED, 262 32>, 263 FormatSwizzle<0, 1, 2, 3>, 264 Defaults<0, 0, 0, 0x3f800000> 265 { 266 static const uint32_t bpp{128}; 267 static const uint32_t numComps{4}; 268 static const bool hasAlpha{true}; 269 static const uint32_t alphaComp{3}; 270 static const bool isSRGB{false}; 271 static const bool isBC{false}; 272 static const bool isSubsampled{false}; 273 static const uint32_t bcWidth{1}; 274 static const uint32_t bcHeight{1}; 275 276 typedef Transpose32_32_32_32 TransposeT; 277 typedef Format4<32, 32, 32, 32> FormatT; 278 }; 279 280 ////////////////////////////////////////////////////////////////////////// 281 /// FormatTraits<R32G32B32_FLOAT> - Format traits specialization for R32G32B32_FLOAT 282 ////////////////////////////////////////////////////////////////////////// 283 template <> 284 struct FormatTraits<R32G32B32_FLOAT> 285 : ComponentTraits<SWR_TYPE_FLOAT, 32, SWR_TYPE_FLOAT, 32, SWR_TYPE_FLOAT, 32>, 286 FormatSwizzle<0, 1, 2>, 287 Defaults<0, 0, 0, 0x3f800000> 288 { 289 static const uint32_t bpp{96}; 290 static const uint32_t numComps{3}; 291 static const bool hasAlpha{false}; 292 static const uint32_t alphaComp{0}; 293 static const bool isSRGB{false}; 294 static const bool isBC{false}; 295 static const bool isSubsampled{false}; 296 static const uint32_t bcWidth{1}; 297 static const uint32_t bcHeight{1}; 298 299 typedef Transpose32_32_32 TransposeT; 300 typedef Format3<32, 32, 32> FormatT; 301 }; 302 303 ////////////////////////////////////////////////////////////////////////// 304 /// FormatTraits<R32G32B32_SINT> - Format traits specialization for R32G32B32_SINT 305 ////////////////////////////////////////////////////////////////////////// 306 template <> 307 struct FormatTraits<R32G32B32_SINT> 308 : ComponentTraits<SWR_TYPE_SINT, 32, SWR_TYPE_SINT, 32, SWR_TYPE_SINT, 32>, 309 FormatSwizzle<0, 1, 2>, 310 Defaults<0, 0, 0, 0x1> 311 { 312 static const uint32_t bpp{96}; 313 static const uint32_t numComps{3}; 314 static const bool hasAlpha{false}; 315 static const uint32_t alphaComp{0}; 316 static const bool isSRGB{false}; 317 static const bool isBC{false}; 318 static const bool isSubsampled{false}; 319 static const uint32_t bcWidth{1}; 320 static const uint32_t bcHeight{1}; 321 322 typedef Transpose32_32_32 TransposeT; 323 typedef Format3<32, 32, 32> FormatT; 324 }; 325 326 ////////////////////////////////////////////////////////////////////////// 327 /// FormatTraits<R32G32B32_UINT> - Format traits specialization for R32G32B32_UINT 328 ////////////////////////////////////////////////////////////////////////// 329 template <> 330 struct FormatTraits<R32G32B32_UINT> 331 : ComponentTraits<SWR_TYPE_UINT, 32, SWR_TYPE_UINT, 32, SWR_TYPE_UINT, 32>, 332 FormatSwizzle<0, 1, 2>, 333 Defaults<0, 0, 0, 0x1> 334 { 335 static const uint32_t bpp{96}; 336 static const uint32_t numComps{3}; 337 static const bool hasAlpha{false}; 338 static const uint32_t alphaComp{0}; 339 static const bool isSRGB{false}; 340 static const bool isBC{false}; 341 static const bool isSubsampled{false}; 342 static const uint32_t bcWidth{1}; 343 static const uint32_t bcHeight{1}; 344 345 typedef Transpose32_32_32 TransposeT; 346 typedef Format3<32, 32, 32> FormatT; 347 }; 348 349 ////////////////////////////////////////////////////////////////////////// 350 /// FormatTraits<R32G32B32_SSCALED> - Format traits specialization for R32G32B32_SSCALED 351 ////////////////////////////////////////////////////////////////////////// 352 template <> 353 struct FormatTraits<R32G32B32_SSCALED> 354 : ComponentTraits<SWR_TYPE_SSCALED, 32, SWR_TYPE_SSCALED, 32, SWR_TYPE_SSCALED, 32>, 355 FormatSwizzle<0, 1, 2>, 356 Defaults<0, 0, 0, 0x3f800000> 357 { 358 static const uint32_t bpp{96}; 359 static const uint32_t numComps{3}; 360 static const bool hasAlpha{false}; 361 static const uint32_t alphaComp{0}; 362 static const bool isSRGB{false}; 363 static const bool isBC{false}; 364 static const bool isSubsampled{false}; 365 static const uint32_t bcWidth{1}; 366 static const uint32_t bcHeight{1}; 367 368 typedef Transpose32_32_32 TransposeT; 369 typedef Format3<32, 32, 32> FormatT; 370 }; 371 372 ////////////////////////////////////////////////////////////////////////// 373 /// FormatTraits<R32G32B32_USCALED> - Format traits specialization for R32G32B32_USCALED 374 ////////////////////////////////////////////////////////////////////////// 375 template <> 376 struct FormatTraits<R32G32B32_USCALED> 377 : ComponentTraits<SWR_TYPE_USCALED, 32, SWR_TYPE_USCALED, 32, SWR_TYPE_USCALED, 32>, 378 FormatSwizzle<0, 1, 2>, 379 Defaults<0, 0, 0, 0x3f800000> 380 { 381 static const uint32_t bpp{96}; 382 static const uint32_t numComps{3}; 383 static const bool hasAlpha{false}; 384 static const uint32_t alphaComp{0}; 385 static const bool isSRGB{false}; 386 static const bool isBC{false}; 387 static const bool isSubsampled{false}; 388 static const uint32_t bcWidth{1}; 389 static const uint32_t bcHeight{1}; 390 391 typedef Transpose32_32_32 TransposeT; 392 typedef Format3<32, 32, 32> FormatT; 393 }; 394 395 ////////////////////////////////////////////////////////////////////////// 396 /// FormatTraits<R32G32B32_SFIXED> - Format traits specialization for R32G32B32_SFIXED 397 ////////////////////////////////////////////////////////////////////////// 398 template <> 399 struct FormatTraits<R32G32B32_SFIXED> 400 : ComponentTraits<SWR_TYPE_SFIXED, 32, SWR_TYPE_SFIXED, 32, SWR_TYPE_SFIXED, 32>, 401 FormatSwizzle<0, 1, 2>, 402 Defaults<0, 0, 0, 0x3f800000> 403 { 404 static const uint32_t bpp{96}; 405 static const uint32_t numComps{3}; 406 static const bool hasAlpha{false}; 407 static const uint32_t alphaComp{0}; 408 static const bool isSRGB{false}; 409 static const bool isBC{false}; 410 static const bool isSubsampled{false}; 411 static const uint32_t bcWidth{1}; 412 static const uint32_t bcHeight{1}; 413 414 typedef Transpose32_32_32 TransposeT; 415 typedef Format3<32, 32, 32> FormatT; 416 }; 417 418 ////////////////////////////////////////////////////////////////////////// 419 /// FormatTraits<R16G16B16A16_UNORM> - Format traits specialization for R16G16B16A16_UNORM 420 ////////////////////////////////////////////////////////////////////////// 421 template <> 422 struct FormatTraits<R16G16B16A16_UNORM> : ComponentTraits<SWR_TYPE_UNORM, 423 16, 424 SWR_TYPE_UNORM, 425 16, 426 SWR_TYPE_UNORM, 427 16, 428 SWR_TYPE_UNORM, 429 16>, 430 FormatSwizzle<0, 1, 2, 3>, 431 Defaults<0, 0, 0, 0x3f800000> 432 { 433 static const uint32_t bpp{64}; 434 static const uint32_t numComps{4}; 435 static const bool hasAlpha{true}; 436 static const uint32_t alphaComp{3}; 437 static const bool isSRGB{false}; 438 static const bool isBC{false}; 439 static const bool isSubsampled{false}; 440 static const uint32_t bcWidth{1}; 441 static const uint32_t bcHeight{1}; 442 443 typedef Transpose16_16_16_16 TransposeT; 444 typedef Format4<16, 16, 16, 16> FormatT; 445 }; 446 447 ////////////////////////////////////////////////////////////////////////// 448 /// FormatTraits<R16G16B16A16_SNORM> - Format traits specialization for R16G16B16A16_SNORM 449 ////////////////////////////////////////////////////////////////////////// 450 template <> 451 struct FormatTraits<R16G16B16A16_SNORM> : ComponentTraits<SWR_TYPE_SNORM, 452 16, 453 SWR_TYPE_SNORM, 454 16, 455 SWR_TYPE_SNORM, 456 16, 457 SWR_TYPE_SNORM, 458 16>, 459 FormatSwizzle<0, 1, 2, 3>, 460 Defaults<0, 0, 0, 0x3f800000> 461 { 462 static const uint32_t bpp{64}; 463 static const uint32_t numComps{4}; 464 static const bool hasAlpha{true}; 465 static const uint32_t alphaComp{3}; 466 static const bool isSRGB{false}; 467 static const bool isBC{false}; 468 static const bool isSubsampled{false}; 469 static const uint32_t bcWidth{1}; 470 static const uint32_t bcHeight{1}; 471 472 typedef Transpose16_16_16_16 TransposeT; 473 typedef Format4<16, 16, 16, 16> FormatT; 474 }; 475 476 ////////////////////////////////////////////////////////////////////////// 477 /// FormatTraits<R16G16B16A16_SINT> - Format traits specialization for R16G16B16A16_SINT 478 ////////////////////////////////////////////////////////////////////////// 479 template <> 480 struct FormatTraits<R16G16B16A16_SINT> 481 : ComponentTraits<SWR_TYPE_SINT, 16, SWR_TYPE_SINT, 16, SWR_TYPE_SINT, 16, SWR_TYPE_SINT, 16>, 482 FormatSwizzle<0, 1, 2, 3>, 483 Defaults<0, 0, 0, 0x1> 484 { 485 static const uint32_t bpp{64}; 486 static const uint32_t numComps{4}; 487 static const bool hasAlpha{true}; 488 static const uint32_t alphaComp{3}; 489 static const bool isSRGB{false}; 490 static const bool isBC{false}; 491 static const bool isSubsampled{false}; 492 static const uint32_t bcWidth{1}; 493 static const uint32_t bcHeight{1}; 494 495 typedef Transpose16_16_16_16 TransposeT; 496 typedef Format4<16, 16, 16, 16> FormatT; 497 }; 498 499 ////////////////////////////////////////////////////////////////////////// 500 /// FormatTraits<R16G16B16A16_UINT> - Format traits specialization for R16G16B16A16_UINT 501 ////////////////////////////////////////////////////////////////////////// 502 template <> 503 struct FormatTraits<R16G16B16A16_UINT> 504 : ComponentTraits<SWR_TYPE_UINT, 16, SWR_TYPE_UINT, 16, SWR_TYPE_UINT, 16, SWR_TYPE_UINT, 16>, 505 FormatSwizzle<0, 1, 2, 3>, 506 Defaults<0, 0, 0, 0x1> 507 { 508 static const uint32_t bpp{64}; 509 static const uint32_t numComps{4}; 510 static const bool hasAlpha{true}; 511 static const uint32_t alphaComp{3}; 512 static const bool isSRGB{false}; 513 static const bool isBC{false}; 514 static const bool isSubsampled{false}; 515 static const uint32_t bcWidth{1}; 516 static const uint32_t bcHeight{1}; 517 518 typedef Transpose16_16_16_16 TransposeT; 519 typedef Format4<16, 16, 16, 16> FormatT; 520 }; 521 522 ////////////////////////////////////////////////////////////////////////// 523 /// FormatTraits<R16G16B16A16_FLOAT> - Format traits specialization for R16G16B16A16_FLOAT 524 ////////////////////////////////////////////////////////////////////////// 525 template <> 526 struct FormatTraits<R16G16B16A16_FLOAT> : ComponentTraits<SWR_TYPE_FLOAT, 527 16, 528 SWR_TYPE_FLOAT, 529 16, 530 SWR_TYPE_FLOAT, 531 16, 532 SWR_TYPE_FLOAT, 533 16>, 534 FormatSwizzle<0, 1, 2, 3>, 535 Defaults<0, 0, 0, 0x3f800000> 536 { 537 static const uint32_t bpp{64}; 538 static const uint32_t numComps{4}; 539 static const bool hasAlpha{true}; 540 static const uint32_t alphaComp{3}; 541 static const bool isSRGB{false}; 542 static const bool isBC{false}; 543 static const bool isSubsampled{false}; 544 static const uint32_t bcWidth{1}; 545 static const uint32_t bcHeight{1}; 546 547 typedef Transpose16_16_16_16 TransposeT; 548 typedef Format4<16, 16, 16, 16> FormatT; 549 }; 550 551 ////////////////////////////////////////////////////////////////////////// 552 /// FormatTraits<R32G32_FLOAT> - Format traits specialization for R32G32_FLOAT 553 ////////////////////////////////////////////////////////////////////////// 554 template <> 555 struct FormatTraits<R32G32_FLOAT> : ComponentTraits<SWR_TYPE_FLOAT, 32, SWR_TYPE_FLOAT, 32>, 556 FormatSwizzle<0, 1>, 557 Defaults<0, 0, 0, 0x3f800000> 558 { 559 static const uint32_t bpp{64}; 560 static const uint32_t numComps{2}; 561 static const bool hasAlpha{false}; 562 static const uint32_t alphaComp{0}; 563 static const bool isSRGB{false}; 564 static const bool isBC{false}; 565 static const bool isSubsampled{false}; 566 static const uint32_t bcWidth{1}; 567 static const uint32_t bcHeight{1}; 568 569 typedef Transpose32_32 TransposeT; 570 typedef Format2<32, 32> FormatT; 571 }; 572 573 ////////////////////////////////////////////////////////////////////////// 574 /// FormatTraits<R32G32_SINT> - Format traits specialization for R32G32_SINT 575 ////////////////////////////////////////////////////////////////////////// 576 template <> 577 struct FormatTraits<R32G32_SINT> : ComponentTraits<SWR_TYPE_SINT, 32, SWR_TYPE_SINT, 32>, 578 FormatSwizzle<0, 1>, 579 Defaults<0, 0, 0, 0x1> 580 { 581 static const uint32_t bpp{64}; 582 static const uint32_t numComps{2}; 583 static const bool hasAlpha{false}; 584 static const uint32_t alphaComp{0}; 585 static const bool isSRGB{false}; 586 static const bool isBC{false}; 587 static const bool isSubsampled{false}; 588 static const uint32_t bcWidth{1}; 589 static const uint32_t bcHeight{1}; 590 591 typedef Transpose32_32 TransposeT; 592 typedef Format2<32, 32> FormatT; 593 }; 594 595 ////////////////////////////////////////////////////////////////////////// 596 /// FormatTraits<R32G32_UINT> - Format traits specialization for R32G32_UINT 597 ////////////////////////////////////////////////////////////////////////// 598 template <> 599 struct FormatTraits<R32G32_UINT> : ComponentTraits<SWR_TYPE_UINT, 32, SWR_TYPE_UINT, 32>, 600 FormatSwizzle<0, 1>, 601 Defaults<0, 0, 0, 0x1> 602 { 603 static const uint32_t bpp{64}; 604 static const uint32_t numComps{2}; 605 static const bool hasAlpha{false}; 606 static const uint32_t alphaComp{0}; 607 static const bool isSRGB{false}; 608 static const bool isBC{false}; 609 static const bool isSubsampled{false}; 610 static const uint32_t bcWidth{1}; 611 static const uint32_t bcHeight{1}; 612 613 typedef Transpose32_32 TransposeT; 614 typedef Format2<32, 32> FormatT; 615 }; 616 617 ////////////////////////////////////////////////////////////////////////// 618 /// FormatTraits<R32_FLOAT_X8X24_TYPELESS> - Format traits specialization for 619 /// R32_FLOAT_X8X24_TYPELESS 620 ////////////////////////////////////////////////////////////////////////// 621 template <> 622 struct FormatTraits<R32_FLOAT_X8X24_TYPELESS> 623 : ComponentTraits<SWR_TYPE_FLOAT, 32, SWR_TYPE_UNUSED, 32>, 624 FormatSwizzle<0, 1>, 625 Defaults<0, 0, 0, 0x3f800000> 626 { 627 static const uint32_t bpp{64}; 628 static const uint32_t numComps{1}; 629 static const bool hasAlpha{false}; 630 static const uint32_t alphaComp{3}; 631 static const bool isSRGB{false}; 632 static const bool isBC{false}; 633 static const bool isSubsampled{false}; 634 static const uint32_t bcWidth{1}; 635 static const uint32_t bcHeight{1}; 636 637 typedef Transpose32_32 TransposeT; 638 typedef Format2<32, 32> FormatT; 639 }; 640 641 ////////////////////////////////////////////////////////////////////////// 642 /// FormatTraits<X32_TYPELESS_G8X24_UINT> - Format traits specialization for X32_TYPELESS_G8X24_UINT 643 ////////////////////////////////////////////////////////////////////////// 644 template <> 645 struct FormatTraits<X32_TYPELESS_G8X24_UINT> 646 : ComponentTraits<SWR_TYPE_UINT, 32, SWR_TYPE_UNUSED, 32>, 647 FormatSwizzle<0, 1>, 648 Defaults<0, 0, 0, 0x1> 649 { 650 static const uint32_t bpp{64}; 651 static const uint32_t numComps{1}; 652 static const bool hasAlpha{false}; 653 static const uint32_t alphaComp{3}; 654 static const bool isSRGB{false}; 655 static const bool isBC{false}; 656 static const bool isSubsampled{false}; 657 static const uint32_t bcWidth{1}; 658 static const uint32_t bcHeight{1}; 659 660 typedef Transpose32_32 TransposeT; 661 typedef Format2<32, 32> FormatT; 662 }; 663 664 ////////////////////////////////////////////////////////////////////////// 665 /// FormatTraits<L32A32_FLOAT> - Format traits specialization for L32A32_FLOAT 666 ////////////////////////////////////////////////////////////////////////// 667 template <> 668 struct FormatTraits<L32A32_FLOAT> : ComponentTraits<SWR_TYPE_FLOAT, 32, SWR_TYPE_FLOAT, 32>, 669 FormatSwizzle<0, 3>, 670 Defaults<0, 0, 0, 0x3f800000> 671 { 672 static const uint32_t bpp{64}; 673 static const uint32_t numComps{2}; 674 static const bool hasAlpha{true}; 675 static const uint32_t alphaComp{1}; 676 static const bool isSRGB{false}; 677 static const bool isBC{false}; 678 static const bool isSubsampled{false}; 679 static const uint32_t bcWidth{1}; 680 static const uint32_t bcHeight{1}; 681 682 typedef Transpose32_32 TransposeT; 683 typedef Format2<32, 32> FormatT; 684 }; 685 686 ////////////////////////////////////////////////////////////////////////// 687 /// FormatTraits<R64_FLOAT> - Format traits specialization for R64_FLOAT 688 ////////////////////////////////////////////////////////////////////////// 689 template <> 690 struct FormatTraits<R64_FLOAT> 691 : ComponentTraits<SWR_TYPE_FLOAT, 64>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 692 { 693 static const uint32_t bpp{64}; 694 static const uint32_t numComps{1}; 695 static const bool hasAlpha{false}; 696 static const uint32_t alphaComp{0}; 697 static const bool isSRGB{false}; 698 static const bool isBC{false}; 699 static const bool isSubsampled{false}; 700 static const uint32_t bcWidth{1}; 701 static const uint32_t bcHeight{1}; 702 703 typedef TransposeSingleComponent<64> TransposeT; 704 typedef Format1<64> FormatT; 705 }; 706 707 ////////////////////////////////////////////////////////////////////////// 708 /// FormatTraits<R16G16B16X16_UNORM> - Format traits specialization for R16G16B16X16_UNORM 709 ////////////////////////////////////////////////////////////////////////// 710 template <> 711 struct FormatTraits<R16G16B16X16_UNORM> : ComponentTraits<SWR_TYPE_UNORM, 712 16, 713 SWR_TYPE_UNORM, 714 16, 715 SWR_TYPE_UNORM, 716 16, 717 SWR_TYPE_UNUSED, 718 16>, 719 FormatSwizzle<0, 1, 2, 3>, 720 Defaults<0, 0, 0, 0x3f800000> 721 { 722 static const uint32_t bpp{64}; 723 static const uint32_t numComps{3}; 724 static const bool hasAlpha{false}; 725 static const uint32_t alphaComp{0}; 726 static const bool isSRGB{false}; 727 static const bool isBC{false}; 728 static const bool isSubsampled{false}; 729 static const uint32_t bcWidth{1}; 730 static const uint32_t bcHeight{1}; 731 732 typedef Transpose16_16_16_16 TransposeT; 733 typedef Format4<16, 16, 16, 16> FormatT; 734 }; 735 736 ////////////////////////////////////////////////////////////////////////// 737 /// FormatTraits<R16G16B16X16_FLOAT> - Format traits specialization for R16G16B16X16_FLOAT 738 ////////////////////////////////////////////////////////////////////////// 739 template <> 740 struct FormatTraits<R16G16B16X16_FLOAT> : ComponentTraits<SWR_TYPE_FLOAT, 741 16, 742 SWR_TYPE_FLOAT, 743 16, 744 SWR_TYPE_FLOAT, 745 16, 746 SWR_TYPE_UNUSED, 747 16>, 748 FormatSwizzle<0, 1, 2, 3>, 749 Defaults<0, 0, 0, 0x3f800000> 750 { 751 static const uint32_t bpp{64}; 752 static const uint32_t numComps{3}; 753 static const bool hasAlpha{false}; 754 static const uint32_t alphaComp{0}; 755 static const bool isSRGB{false}; 756 static const bool isBC{false}; 757 static const bool isSubsampled{false}; 758 static const uint32_t bcWidth{1}; 759 static const uint32_t bcHeight{1}; 760 761 typedef Transpose16_16_16_16 TransposeT; 762 typedef Format4<16, 16, 16, 16> FormatT; 763 }; 764 765 ////////////////////////////////////////////////////////////////////////// 766 /// FormatTraits<L32X32_FLOAT> - Format traits specialization for L32X32_FLOAT 767 ////////////////////////////////////////////////////////////////////////// 768 template <> 769 struct FormatTraits<L32X32_FLOAT> : ComponentTraits<SWR_TYPE_FLOAT, 32, SWR_TYPE_FLOAT, 32>, 770 FormatSwizzle<0, 3>, 771 Defaults<0, 0, 0, 0x3f800000> 772 { 773 static const uint32_t bpp{64}; 774 static const uint32_t numComps{2}; 775 static const bool hasAlpha{false}; 776 static const uint32_t alphaComp{0}; 777 static const bool isSRGB{false}; 778 static const bool isBC{false}; 779 static const bool isSubsampled{false}; 780 static const uint32_t bcWidth{1}; 781 static const uint32_t bcHeight{1}; 782 783 typedef Transpose32_32 TransposeT; 784 typedef Format2<32, 32> FormatT; 785 }; 786 787 ////////////////////////////////////////////////////////////////////////// 788 /// FormatTraits<I32X32_FLOAT> - Format traits specialization for I32X32_FLOAT 789 ////////////////////////////////////////////////////////////////////////// 790 template <> 791 struct FormatTraits<I32X32_FLOAT> : ComponentTraits<SWR_TYPE_FLOAT, 32, SWR_TYPE_FLOAT, 32>, 792 FormatSwizzle<0, 3>, 793 Defaults<0, 0, 0, 0x3f800000> 794 { 795 static const uint32_t bpp{64}; 796 static const uint32_t numComps{2}; 797 static const bool hasAlpha{false}; 798 static const uint32_t alphaComp{0}; 799 static const bool isSRGB{false}; 800 static const bool isBC{false}; 801 static const bool isSubsampled{false}; 802 static const uint32_t bcWidth{1}; 803 static const uint32_t bcHeight{1}; 804 805 typedef Transpose32_32 TransposeT; 806 typedef Format2<32, 32> FormatT; 807 }; 808 809 ////////////////////////////////////////////////////////////////////////// 810 /// FormatTraits<R16G16B16A16_SSCALED> - Format traits specialization for R16G16B16A16_SSCALED 811 ////////////////////////////////////////////////////////////////////////// 812 template <> 813 struct FormatTraits<R16G16B16A16_SSCALED> : ComponentTraits<SWR_TYPE_SSCALED, 814 16, 815 SWR_TYPE_SSCALED, 816 16, 817 SWR_TYPE_SSCALED, 818 16, 819 SWR_TYPE_SSCALED, 820 16>, 821 FormatSwizzle<0, 1, 2, 3>, 822 Defaults<0, 0, 0, 0x3f800000> 823 { 824 static const uint32_t bpp{64}; 825 static const uint32_t numComps{4}; 826 static const bool hasAlpha{true}; 827 static const uint32_t alphaComp{3}; 828 static const bool isSRGB{false}; 829 static const bool isBC{false}; 830 static const bool isSubsampled{false}; 831 static const uint32_t bcWidth{1}; 832 static const uint32_t bcHeight{1}; 833 834 typedef Transpose16_16_16_16 TransposeT; 835 typedef Format4<16, 16, 16, 16> FormatT; 836 }; 837 838 ////////////////////////////////////////////////////////////////////////// 839 /// FormatTraits<R16G16B16A16_USCALED> - Format traits specialization for R16G16B16A16_USCALED 840 ////////////////////////////////////////////////////////////////////////// 841 template <> 842 struct FormatTraits<R16G16B16A16_USCALED> : ComponentTraits<SWR_TYPE_USCALED, 843 16, 844 SWR_TYPE_USCALED, 845 16, 846 SWR_TYPE_USCALED, 847 16, 848 SWR_TYPE_USCALED, 849 16>, 850 FormatSwizzle<0, 1, 2, 3>, 851 Defaults<0, 0, 0, 0x3f800000> 852 { 853 static const uint32_t bpp{64}; 854 static const uint32_t numComps{4}; 855 static const bool hasAlpha{true}; 856 static const uint32_t alphaComp{3}; 857 static const bool isSRGB{false}; 858 static const bool isBC{false}; 859 static const bool isSubsampled{false}; 860 static const uint32_t bcWidth{1}; 861 static const uint32_t bcHeight{1}; 862 863 typedef Transpose16_16_16_16 TransposeT; 864 typedef Format4<16, 16, 16, 16> FormatT; 865 }; 866 867 ////////////////////////////////////////////////////////////////////////// 868 /// FormatTraits<R32G32_SSCALED> - Format traits specialization for R32G32_SSCALED 869 ////////////////////////////////////////////////////////////////////////// 870 template <> 871 struct FormatTraits<R32G32_SSCALED> : ComponentTraits<SWR_TYPE_SSCALED, 32, SWR_TYPE_SSCALED, 32>, 872 FormatSwizzle<0, 1>, 873 Defaults<0, 0, 0, 0x3f800000> 874 { 875 static const uint32_t bpp{64}; 876 static const uint32_t numComps{2}; 877 static const bool hasAlpha{false}; 878 static const uint32_t alphaComp{0}; 879 static const bool isSRGB{false}; 880 static const bool isBC{false}; 881 static const bool isSubsampled{false}; 882 static const uint32_t bcWidth{1}; 883 static const uint32_t bcHeight{1}; 884 885 typedef Transpose32_32 TransposeT; 886 typedef Format2<32, 32> FormatT; 887 }; 888 889 ////////////////////////////////////////////////////////////////////////// 890 /// FormatTraits<R32G32_USCALED> - Format traits specialization for R32G32_USCALED 891 ////////////////////////////////////////////////////////////////////////// 892 template <> 893 struct FormatTraits<R32G32_USCALED> : ComponentTraits<SWR_TYPE_USCALED, 32, SWR_TYPE_USCALED, 32>, 894 FormatSwizzle<0, 1>, 895 Defaults<0, 0, 0, 0x3f800000> 896 { 897 static const uint32_t bpp{64}; 898 static const uint32_t numComps{2}; 899 static const bool hasAlpha{false}; 900 static const uint32_t alphaComp{0}; 901 static const bool isSRGB{false}; 902 static const bool isBC{false}; 903 static const bool isSubsampled{false}; 904 static const uint32_t bcWidth{1}; 905 static const uint32_t bcHeight{1}; 906 907 typedef Transpose32_32 TransposeT; 908 typedef Format2<32, 32> FormatT; 909 }; 910 911 ////////////////////////////////////////////////////////////////////////// 912 /// FormatTraits<R32G32_SFIXED> - Format traits specialization for R32G32_SFIXED 913 ////////////////////////////////////////////////////////////////////////// 914 template <> 915 struct FormatTraits<R32G32_SFIXED> : ComponentTraits<SWR_TYPE_SFIXED, 32, SWR_TYPE_SFIXED, 32>, 916 FormatSwizzle<0, 1>, 917 Defaults<0, 0, 0, 0x3f800000> 918 { 919 static const uint32_t bpp{64}; 920 static const uint32_t numComps{2}; 921 static const bool hasAlpha{false}; 922 static const uint32_t alphaComp{0}; 923 static const bool isSRGB{false}; 924 static const bool isBC{false}; 925 static const bool isSubsampled{false}; 926 static const uint32_t bcWidth{1}; 927 static const uint32_t bcHeight{1}; 928 929 typedef Transpose32_32 TransposeT; 930 typedef Format2<32, 32> FormatT; 931 }; 932 933 ////////////////////////////////////////////////////////////////////////// 934 /// FormatTraits<B8G8R8A8_UNORM> - Format traits specialization for B8G8R8A8_UNORM 935 ////////////////////////////////////////////////////////////////////////// 936 template <> 937 struct FormatTraits<B8G8R8A8_UNORM> 938 : ComponentTraits<SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8>, 939 FormatSwizzle<2, 1, 0, 3>, 940 Defaults<0, 0, 0, 0x3f800000> 941 { 942 static const uint32_t bpp{32}; 943 static const uint32_t numComps{4}; 944 static const bool hasAlpha{true}; 945 static const uint32_t alphaComp{3}; 946 static const bool isSRGB{false}; 947 static const bool isBC{false}; 948 static const bool isSubsampled{false}; 949 static const uint32_t bcWidth{1}; 950 static const uint32_t bcHeight{1}; 951 952 typedef Transpose8_8_8_8 TransposeT; 953 typedef Format4<8, 8, 8, 8> FormatT; 954 }; 955 956 ////////////////////////////////////////////////////////////////////////// 957 /// FormatTraits<B8G8R8A8_UNORM_SRGB> - Format traits specialization for B8G8R8A8_UNORM_SRGB 958 ////////////////////////////////////////////////////////////////////////// 959 template <> 960 struct FormatTraits<B8G8R8A8_UNORM_SRGB> 961 : ComponentTraits<SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8>, 962 FormatSwizzle<2, 1, 0, 3>, 963 Defaults<0, 0, 0, 0x3f800000> 964 { 965 static const uint32_t bpp{32}; 966 static const uint32_t numComps{4}; 967 static const bool hasAlpha{true}; 968 static const uint32_t alphaComp{3}; 969 static const bool isSRGB{true}; 970 static const bool isBC{false}; 971 static const bool isSubsampled{false}; 972 static const uint32_t bcWidth{1}; 973 static const uint32_t bcHeight{1}; 974 975 typedef Transpose8_8_8_8 TransposeT; 976 typedef Format4<8, 8, 8, 8> FormatT; 977 }; 978 979 ////////////////////////////////////////////////////////////////////////// 980 /// FormatTraits<R10G10B10A2_UNORM> - Format traits specialization for R10G10B10A2_UNORM 981 ////////////////////////////////////////////////////////////////////////// 982 template <> 983 struct FormatTraits<R10G10B10A2_UNORM> : ComponentTraits<SWR_TYPE_UNORM, 984 10, 985 SWR_TYPE_UNORM, 986 10, 987 SWR_TYPE_UNORM, 988 10, 989 SWR_TYPE_UNORM, 990 2>, 991 FormatSwizzle<0, 1, 2, 3>, 992 Defaults<0, 0, 0, 0x3f800000> 993 { 994 static const uint32_t bpp{32}; 995 static const uint32_t numComps{4}; 996 static const bool hasAlpha{true}; 997 static const uint32_t alphaComp{3}; 998 static const bool isSRGB{false}; 999 static const bool isBC{false}; 1000 static const bool isSubsampled{false}; 1001 static const uint32_t bcWidth{1}; 1002 static const uint32_t bcHeight{1}; 1003 1004 typedef Transpose10_10_10_2 TransposeT; 1005 typedef Format4<10, 10, 10, 2> FormatT; 1006 }; 1007 1008 ////////////////////////////////////////////////////////////////////////// 1009 /// FormatTraits<R10G10B10A2_UNORM_SRGB> - Format traits specialization for R10G10B10A2_UNORM_SRGB 1010 ////////////////////////////////////////////////////////////////////////// 1011 template <> 1012 struct FormatTraits<R10G10B10A2_UNORM_SRGB> : ComponentTraits<SWR_TYPE_UNORM, 1013 10, 1014 SWR_TYPE_UNORM, 1015 10, 1016 SWR_TYPE_UNORM, 1017 10, 1018 SWR_TYPE_UNORM, 1019 2>, 1020 FormatSwizzle<0, 1, 2, 3>, 1021 Defaults<0, 0, 0, 0x3f800000> 1022 { 1023 static const uint32_t bpp{32}; 1024 static const uint32_t numComps{4}; 1025 static const bool hasAlpha{true}; 1026 static const uint32_t alphaComp{3}; 1027 static const bool isSRGB{true}; 1028 static const bool isBC{false}; 1029 static const bool isSubsampled{false}; 1030 static const uint32_t bcWidth{1}; 1031 static const uint32_t bcHeight{1}; 1032 1033 typedef Transpose10_10_10_2 TransposeT; 1034 typedef Format4<10, 10, 10, 2> FormatT; 1035 }; 1036 1037 ////////////////////////////////////////////////////////////////////////// 1038 /// FormatTraits<R10G10B10A2_UINT> - Format traits specialization for R10G10B10A2_UINT 1039 ////////////////////////////////////////////////////////////////////////// 1040 template <> 1041 struct FormatTraits<R10G10B10A2_UINT> 1042 : ComponentTraits<SWR_TYPE_UINT, 10, SWR_TYPE_UINT, 10, SWR_TYPE_UINT, 10, SWR_TYPE_UINT, 2>, 1043 FormatSwizzle<0, 1, 2, 3>, 1044 Defaults<0, 0, 0, 0x1> 1045 { 1046 static const uint32_t bpp{32}; 1047 static const uint32_t numComps{4}; 1048 static const bool hasAlpha{true}; 1049 static const uint32_t alphaComp{3}; 1050 static const bool isSRGB{false}; 1051 static const bool isBC{false}; 1052 static const bool isSubsampled{false}; 1053 static const uint32_t bcWidth{1}; 1054 static const uint32_t bcHeight{1}; 1055 1056 typedef Transpose10_10_10_2 TransposeT; 1057 typedef Format4<10, 10, 10, 2> FormatT; 1058 }; 1059 1060 ////////////////////////////////////////////////////////////////////////// 1061 /// FormatTraits<R8G8B8A8_UNORM> - Format traits specialization for R8G8B8A8_UNORM 1062 ////////////////////////////////////////////////////////////////////////// 1063 template <> 1064 struct FormatTraits<R8G8B8A8_UNORM> 1065 : ComponentTraits<SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8>, 1066 FormatSwizzle<0, 1, 2, 3>, 1067 Defaults<0, 0, 0, 0x3f800000> 1068 { 1069 static const uint32_t bpp{32}; 1070 static const uint32_t numComps{4}; 1071 static const bool hasAlpha{true}; 1072 static const uint32_t alphaComp{3}; 1073 static const bool isSRGB{false}; 1074 static const bool isBC{false}; 1075 static const bool isSubsampled{false}; 1076 static const uint32_t bcWidth{1}; 1077 static const uint32_t bcHeight{1}; 1078 1079 typedef Transpose8_8_8_8 TransposeT; 1080 typedef Format4<8, 8, 8, 8> FormatT; 1081 }; 1082 1083 ////////////////////////////////////////////////////////////////////////// 1084 /// FormatTraits<R8G8B8A8_UNORM_SRGB> - Format traits specialization for R8G8B8A8_UNORM_SRGB 1085 ////////////////////////////////////////////////////////////////////////// 1086 template <> 1087 struct FormatTraits<R8G8B8A8_UNORM_SRGB> 1088 : ComponentTraits<SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8>, 1089 FormatSwizzle<0, 1, 2, 3>, 1090 Defaults<0, 0, 0, 0x3f800000> 1091 { 1092 static const uint32_t bpp{32}; 1093 static const uint32_t numComps{4}; 1094 static const bool hasAlpha{true}; 1095 static const uint32_t alphaComp{3}; 1096 static const bool isSRGB{true}; 1097 static const bool isBC{false}; 1098 static const bool isSubsampled{false}; 1099 static const uint32_t bcWidth{1}; 1100 static const uint32_t bcHeight{1}; 1101 1102 typedef Transpose8_8_8_8 TransposeT; 1103 typedef Format4<8, 8, 8, 8> FormatT; 1104 }; 1105 1106 ////////////////////////////////////////////////////////////////////////// 1107 /// FormatTraits<R8G8B8A8_SNORM> - Format traits specialization for R8G8B8A8_SNORM 1108 ////////////////////////////////////////////////////////////////////////// 1109 template <> 1110 struct FormatTraits<R8G8B8A8_SNORM> 1111 : ComponentTraits<SWR_TYPE_SNORM, 8, SWR_TYPE_SNORM, 8, SWR_TYPE_SNORM, 8, SWR_TYPE_SNORM, 8>, 1112 FormatSwizzle<0, 1, 2, 3>, 1113 Defaults<0, 0, 0, 0x3f800000> 1114 { 1115 static const uint32_t bpp{32}; 1116 static const uint32_t numComps{4}; 1117 static const bool hasAlpha{true}; 1118 static const uint32_t alphaComp{3}; 1119 static const bool isSRGB{false}; 1120 static const bool isBC{false}; 1121 static const bool isSubsampled{false}; 1122 static const uint32_t bcWidth{1}; 1123 static const uint32_t bcHeight{1}; 1124 1125 typedef Transpose8_8_8_8 TransposeT; 1126 typedef Format4<8, 8, 8, 8> FormatT; 1127 }; 1128 1129 ////////////////////////////////////////////////////////////////////////// 1130 /// FormatTraits<R8G8B8A8_SINT> - Format traits specialization for R8G8B8A8_SINT 1131 ////////////////////////////////////////////////////////////////////////// 1132 template <> 1133 struct FormatTraits<R8G8B8A8_SINT> 1134 : ComponentTraits<SWR_TYPE_SINT, 8, SWR_TYPE_SINT, 8, SWR_TYPE_SINT, 8, SWR_TYPE_SINT, 8>, 1135 FormatSwizzle<0, 1, 2, 3>, 1136 Defaults<0, 0, 0, 0x1> 1137 { 1138 static const uint32_t bpp{32}; 1139 static const uint32_t numComps{4}; 1140 static const bool hasAlpha{true}; 1141 static const uint32_t alphaComp{3}; 1142 static const bool isSRGB{false}; 1143 static const bool isBC{false}; 1144 static const bool isSubsampled{false}; 1145 static const uint32_t bcWidth{1}; 1146 static const uint32_t bcHeight{1}; 1147 1148 typedef Transpose8_8_8_8 TransposeT; 1149 typedef Format4<8, 8, 8, 8> FormatT; 1150 }; 1151 1152 ////////////////////////////////////////////////////////////////////////// 1153 /// FormatTraits<R8G8B8A8_UINT> - Format traits specialization for R8G8B8A8_UINT 1154 ////////////////////////////////////////////////////////////////////////// 1155 template <> 1156 struct FormatTraits<R8G8B8A8_UINT> 1157 : ComponentTraits<SWR_TYPE_UINT, 8, SWR_TYPE_UINT, 8, SWR_TYPE_UINT, 8, SWR_TYPE_UINT, 8>, 1158 FormatSwizzle<0, 1, 2, 3>, 1159 Defaults<0, 0, 0, 0x1> 1160 { 1161 static const uint32_t bpp{32}; 1162 static const uint32_t numComps{4}; 1163 static const bool hasAlpha{true}; 1164 static const uint32_t alphaComp{3}; 1165 static const bool isSRGB{false}; 1166 static const bool isBC{false}; 1167 static const bool isSubsampled{false}; 1168 static const uint32_t bcWidth{1}; 1169 static const uint32_t bcHeight{1}; 1170 1171 typedef Transpose8_8_8_8 TransposeT; 1172 typedef Format4<8, 8, 8, 8> FormatT; 1173 }; 1174 1175 ////////////////////////////////////////////////////////////////////////// 1176 /// FormatTraits<R16G16_UNORM> - Format traits specialization for R16G16_UNORM 1177 ////////////////////////////////////////////////////////////////////////// 1178 template <> 1179 struct FormatTraits<R16G16_UNORM> : ComponentTraits<SWR_TYPE_UNORM, 16, SWR_TYPE_UNORM, 16>, 1180 FormatSwizzle<0, 1>, 1181 Defaults<0, 0, 0, 0x3f800000> 1182 { 1183 static const uint32_t bpp{32}; 1184 static const uint32_t numComps{2}; 1185 static const bool hasAlpha{false}; 1186 static const uint32_t alphaComp{0}; 1187 static const bool isSRGB{false}; 1188 static const bool isBC{false}; 1189 static const bool isSubsampled{false}; 1190 static const uint32_t bcWidth{1}; 1191 static const uint32_t bcHeight{1}; 1192 1193 typedef Transpose16_16 TransposeT; 1194 typedef Format2<16, 16> FormatT; 1195 }; 1196 1197 ////////////////////////////////////////////////////////////////////////// 1198 /// FormatTraits<R16G16_SNORM> - Format traits specialization for R16G16_SNORM 1199 ////////////////////////////////////////////////////////////////////////// 1200 template <> 1201 struct FormatTraits<R16G16_SNORM> : ComponentTraits<SWR_TYPE_SNORM, 16, SWR_TYPE_SNORM, 16>, 1202 FormatSwizzle<0, 1>, 1203 Defaults<0, 0, 0, 0x3f800000> 1204 { 1205 static const uint32_t bpp{32}; 1206 static const uint32_t numComps{2}; 1207 static const bool hasAlpha{false}; 1208 static const uint32_t alphaComp{0}; 1209 static const bool isSRGB{false}; 1210 static const bool isBC{false}; 1211 static const bool isSubsampled{false}; 1212 static const uint32_t bcWidth{1}; 1213 static const uint32_t bcHeight{1}; 1214 1215 typedef Transpose16_16 TransposeT; 1216 typedef Format2<16, 16> FormatT; 1217 }; 1218 1219 ////////////////////////////////////////////////////////////////////////// 1220 /// FormatTraits<R16G16_SINT> - Format traits specialization for R16G16_SINT 1221 ////////////////////////////////////////////////////////////////////////// 1222 template <> 1223 struct FormatTraits<R16G16_SINT> : ComponentTraits<SWR_TYPE_SINT, 16, SWR_TYPE_SINT, 16>, 1224 FormatSwizzle<0, 1>, 1225 Defaults<0, 0, 0, 0x1> 1226 { 1227 static const uint32_t bpp{32}; 1228 static const uint32_t numComps{2}; 1229 static const bool hasAlpha{false}; 1230 static const uint32_t alphaComp{0}; 1231 static const bool isSRGB{false}; 1232 static const bool isBC{false}; 1233 static const bool isSubsampled{false}; 1234 static const uint32_t bcWidth{1}; 1235 static const uint32_t bcHeight{1}; 1236 1237 typedef Transpose16_16 TransposeT; 1238 typedef Format2<16, 16> FormatT; 1239 }; 1240 1241 ////////////////////////////////////////////////////////////////////////// 1242 /// FormatTraits<R16G16_UINT> - Format traits specialization for R16G16_UINT 1243 ////////////////////////////////////////////////////////////////////////// 1244 template <> 1245 struct FormatTraits<R16G16_UINT> : ComponentTraits<SWR_TYPE_UINT, 16, SWR_TYPE_UINT, 16>, 1246 FormatSwizzle<0, 1>, 1247 Defaults<0, 0, 0, 0x1> 1248 { 1249 static const uint32_t bpp{32}; 1250 static const uint32_t numComps{2}; 1251 static const bool hasAlpha{false}; 1252 static const uint32_t alphaComp{0}; 1253 static const bool isSRGB{false}; 1254 static const bool isBC{false}; 1255 static const bool isSubsampled{false}; 1256 static const uint32_t bcWidth{1}; 1257 static const uint32_t bcHeight{1}; 1258 1259 typedef Transpose16_16 TransposeT; 1260 typedef Format2<16, 16> FormatT; 1261 }; 1262 1263 ////////////////////////////////////////////////////////////////////////// 1264 /// FormatTraits<R16G16_FLOAT> - Format traits specialization for R16G16_FLOAT 1265 ////////////////////////////////////////////////////////////////////////// 1266 template <> 1267 struct FormatTraits<R16G16_FLOAT> : ComponentTraits<SWR_TYPE_FLOAT, 16, SWR_TYPE_FLOAT, 16>, 1268 FormatSwizzle<0, 1>, 1269 Defaults<0, 0, 0, 0x3f800000> 1270 { 1271 static const uint32_t bpp{32}; 1272 static const uint32_t numComps{2}; 1273 static const bool hasAlpha{false}; 1274 static const uint32_t alphaComp{0}; 1275 static const bool isSRGB{false}; 1276 static const bool isBC{false}; 1277 static const bool isSubsampled{false}; 1278 static const uint32_t bcWidth{1}; 1279 static const uint32_t bcHeight{1}; 1280 1281 typedef Transpose16_16 TransposeT; 1282 typedef Format2<16, 16> FormatT; 1283 }; 1284 1285 ////////////////////////////////////////////////////////////////////////// 1286 /// FormatTraits<B10G10R10A2_UNORM> - Format traits specialization for B10G10R10A2_UNORM 1287 ////////////////////////////////////////////////////////////////////////// 1288 template <> 1289 struct FormatTraits<B10G10R10A2_UNORM> : ComponentTraits<SWR_TYPE_UNORM, 1290 10, 1291 SWR_TYPE_UNORM, 1292 10, 1293 SWR_TYPE_UNORM, 1294 10, 1295 SWR_TYPE_UNORM, 1296 2>, 1297 FormatSwizzle<2, 1, 0, 3>, 1298 Defaults<0, 0, 0, 0x3f800000> 1299 { 1300 static const uint32_t bpp{32}; 1301 static const uint32_t numComps{4}; 1302 static const bool hasAlpha{true}; 1303 static const uint32_t alphaComp{3}; 1304 static const bool isSRGB{false}; 1305 static const bool isBC{false}; 1306 static const bool isSubsampled{false}; 1307 static const uint32_t bcWidth{1}; 1308 static const uint32_t bcHeight{1}; 1309 1310 typedef Transpose10_10_10_2 TransposeT; 1311 typedef Format4<10, 10, 10, 2> FormatT; 1312 }; 1313 1314 ////////////////////////////////////////////////////////////////////////// 1315 /// FormatTraits<B10G10R10A2_UNORM_SRGB> - Format traits specialization for B10G10R10A2_UNORM_SRGB 1316 ////////////////////////////////////////////////////////////////////////// 1317 template <> 1318 struct FormatTraits<B10G10R10A2_UNORM_SRGB> : ComponentTraits<SWR_TYPE_UNORM, 1319 10, 1320 SWR_TYPE_UNORM, 1321 10, 1322 SWR_TYPE_UNORM, 1323 10, 1324 SWR_TYPE_UNORM, 1325 2>, 1326 FormatSwizzle<2, 1, 0, 3>, 1327 Defaults<0, 0, 0, 0x3f800000> 1328 { 1329 static const uint32_t bpp{32}; 1330 static const uint32_t numComps{4}; 1331 static const bool hasAlpha{true}; 1332 static const uint32_t alphaComp{3}; 1333 static const bool isSRGB{true}; 1334 static const bool isBC{false}; 1335 static const bool isSubsampled{false}; 1336 static const uint32_t bcWidth{1}; 1337 static const uint32_t bcHeight{1}; 1338 1339 typedef Transpose10_10_10_2 TransposeT; 1340 typedef Format4<10, 10, 10, 2> FormatT; 1341 }; 1342 1343 ////////////////////////////////////////////////////////////////////////// 1344 /// FormatTraits<R11G11B10_FLOAT> - Format traits specialization for R11G11B10_FLOAT 1345 ////////////////////////////////////////////////////////////////////////// 1346 template <> 1347 struct FormatTraits<R11G11B10_FLOAT> 1348 : ComponentTraits<SWR_TYPE_FLOAT, 11, SWR_TYPE_FLOAT, 11, SWR_TYPE_FLOAT, 10>, 1349 FormatSwizzle<0, 1, 2>, 1350 Defaults<0, 0, 0, 0x3f800000> 1351 { 1352 static const uint32_t bpp{32}; 1353 static const uint32_t numComps{3}; 1354 static const bool hasAlpha{false}; 1355 static const uint32_t alphaComp{0}; 1356 static const bool isSRGB{false}; 1357 static const bool isBC{false}; 1358 static const bool isSubsampled{false}; 1359 static const uint32_t bcWidth{1}; 1360 static const uint32_t bcHeight{1}; 1361 1362 typedef Transpose11_11_10 TransposeT; 1363 typedef Format3<11, 11, 10> FormatT; 1364 }; 1365 1366 ////////////////////////////////////////////////////////////////////////// 1367 /// FormatTraits<R10G10B10_FLOAT_A2_UNORM> - Format traits specialization for 1368 /// R10G10B10_FLOAT_A2_UNORM 1369 ////////////////////////////////////////////////////////////////////////// 1370 template <> 1371 struct FormatTraits<R10G10B10_FLOAT_A2_UNORM> : ComponentTraits<SWR_TYPE_FLOAT, 1372 10, 1373 SWR_TYPE_FLOAT, 1374 10, 1375 SWR_TYPE_FLOAT, 1376 10, 1377 SWR_TYPE_UNORM, 1378 2>, 1379 FormatSwizzle<0, 1, 2, 3>, 1380 Defaults<0, 0, 0, 0x3f800000> 1381 { 1382 static const uint32_t bpp{32}; 1383 static const uint32_t numComps{4}; 1384 static const bool hasAlpha{true}; 1385 static const uint32_t alphaComp{3}; 1386 static const bool isSRGB{false}; 1387 static const bool isBC{false}; 1388 static const bool isSubsampled{false}; 1389 static const uint32_t bcWidth{1}; 1390 static const uint32_t bcHeight{1}; 1391 1392 typedef Transpose10_10_10_2 TransposeT; 1393 typedef Format4<10, 10, 10, 2> FormatT; 1394 }; 1395 1396 ////////////////////////////////////////////////////////////////////////// 1397 /// FormatTraits<R32_SINT> - Format traits specialization for R32_SINT 1398 ////////////////////////////////////////////////////////////////////////// 1399 template <> 1400 struct FormatTraits<R32_SINT> 1401 : ComponentTraits<SWR_TYPE_SINT, 32>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x1> 1402 { 1403 static const uint32_t bpp{32}; 1404 static const uint32_t numComps{1}; 1405 static const bool hasAlpha{false}; 1406 static const uint32_t alphaComp{0}; 1407 static const bool isSRGB{false}; 1408 static const bool isBC{false}; 1409 static const bool isSubsampled{false}; 1410 static const uint32_t bcWidth{1}; 1411 static const uint32_t bcHeight{1}; 1412 1413 typedef TransposeSingleComponent<32> TransposeT; 1414 typedef Format1<32> FormatT; 1415 }; 1416 1417 ////////////////////////////////////////////////////////////////////////// 1418 /// FormatTraits<R32_UINT> - Format traits specialization for R32_UINT 1419 ////////////////////////////////////////////////////////////////////////// 1420 template <> 1421 struct FormatTraits<R32_UINT> 1422 : ComponentTraits<SWR_TYPE_UINT, 32>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x1> 1423 { 1424 static const uint32_t bpp{32}; 1425 static const uint32_t numComps{1}; 1426 static const bool hasAlpha{false}; 1427 static const uint32_t alphaComp{0}; 1428 static const bool isSRGB{false}; 1429 static const bool isBC{false}; 1430 static const bool isSubsampled{false}; 1431 static const uint32_t bcWidth{1}; 1432 static const uint32_t bcHeight{1}; 1433 1434 typedef TransposeSingleComponent<32> TransposeT; 1435 typedef Format1<32> FormatT; 1436 }; 1437 1438 ////////////////////////////////////////////////////////////////////////// 1439 /// FormatTraits<R32_FLOAT> - Format traits specialization for R32_FLOAT 1440 ////////////////////////////////////////////////////////////////////////// 1441 template <> 1442 struct FormatTraits<R32_FLOAT> 1443 : ComponentTraits<SWR_TYPE_FLOAT, 32>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 1444 { 1445 static const uint32_t bpp{32}; 1446 static const uint32_t numComps{1}; 1447 static const bool hasAlpha{false}; 1448 static const uint32_t alphaComp{0}; 1449 static const bool isSRGB{false}; 1450 static const bool isBC{false}; 1451 static const bool isSubsampled{false}; 1452 static const uint32_t bcWidth{1}; 1453 static const uint32_t bcHeight{1}; 1454 1455 typedef TransposeSingleComponent<32> TransposeT; 1456 typedef Format1<32> FormatT; 1457 }; 1458 1459 ////////////////////////////////////////////////////////////////////////// 1460 /// FormatTraits<R24_UNORM_X8_TYPELESS> - Format traits specialization for R24_UNORM_X8_TYPELESS 1461 ////////////////////////////////////////////////////////////////////////// 1462 template <> 1463 struct FormatTraits<R24_UNORM_X8_TYPELESS> 1464 : ComponentTraits<SWR_TYPE_UNORM, 24>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 1465 { 1466 static const uint32_t bpp{32}; 1467 static const uint32_t numComps{1}; 1468 static const bool hasAlpha{false}; 1469 static const uint32_t alphaComp{3}; 1470 static const bool isSRGB{false}; 1471 static const bool isBC{false}; 1472 static const bool isSubsampled{false}; 1473 static const uint32_t bcWidth{1}; 1474 static const uint32_t bcHeight{1}; 1475 1476 typedef TransposeSingleComponent<32> TransposeT; 1477 typedef Format1<24> FormatT; 1478 }; 1479 1480 ////////////////////////////////////////////////////////////////////////// 1481 /// FormatTraits<X24_TYPELESS_G8_UINT> - Format traits specialization for X24_TYPELESS_G8_UINT 1482 ////////////////////////////////////////////////////////////////////////// 1483 template <> 1484 struct FormatTraits<X24_TYPELESS_G8_UINT> 1485 : ComponentTraits<SWR_TYPE_UINT, 32>, FormatSwizzle<1>, Defaults<0, 0, 0, 0x1> 1486 { 1487 static const uint32_t bpp{32}; 1488 static const uint32_t numComps{1}; 1489 static const bool hasAlpha{false}; 1490 static const uint32_t alphaComp{3}; 1491 static const bool isSRGB{false}; 1492 static const bool isBC{false}; 1493 static const bool isSubsampled{false}; 1494 static const uint32_t bcWidth{1}; 1495 static const uint32_t bcHeight{1}; 1496 1497 typedef TransposeSingleComponent<32> TransposeT; 1498 typedef Format1<32> FormatT; 1499 }; 1500 1501 ////////////////////////////////////////////////////////////////////////// 1502 /// FormatTraits<L32_UNORM> - Format traits specialization for L32_UNORM 1503 ////////////////////////////////////////////////////////////////////////// 1504 template <> 1505 struct FormatTraits<L32_UNORM> 1506 : ComponentTraits<SWR_TYPE_UNORM, 32>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 1507 { 1508 static const uint32_t bpp{32}; 1509 static const uint32_t numComps{1}; 1510 static const bool hasAlpha{false}; 1511 static const uint32_t alphaComp{0}; 1512 static const bool isSRGB{false}; 1513 static const bool isBC{false}; 1514 static const bool isSubsampled{false}; 1515 static const uint32_t bcWidth{1}; 1516 static const uint32_t bcHeight{1}; 1517 1518 typedef TransposeSingleComponent<32> TransposeT; 1519 typedef Format1<32> FormatT; 1520 }; 1521 1522 ////////////////////////////////////////////////////////////////////////// 1523 /// FormatTraits<L16A16_UNORM> - Format traits specialization for L16A16_UNORM 1524 ////////////////////////////////////////////////////////////////////////// 1525 template <> 1526 struct FormatTraits<L16A16_UNORM> : ComponentTraits<SWR_TYPE_UNORM, 16, SWR_TYPE_UNORM, 16>, 1527 FormatSwizzle<0, 3>, 1528 Defaults<0, 0, 0, 0x3f800000> 1529 { 1530 static const uint32_t bpp{32}; 1531 static const uint32_t numComps{2}; 1532 static const bool hasAlpha{true}; 1533 static const uint32_t alphaComp{1}; 1534 static const bool isSRGB{false}; 1535 static const bool isBC{false}; 1536 static const bool isSubsampled{false}; 1537 static const uint32_t bcWidth{1}; 1538 static const uint32_t bcHeight{1}; 1539 1540 typedef Transpose16_16 TransposeT; 1541 typedef Format2<16, 16> FormatT; 1542 }; 1543 1544 ////////////////////////////////////////////////////////////////////////// 1545 /// FormatTraits<I24X8_UNORM> - Format traits specialization for I24X8_UNORM 1546 ////////////////////////////////////////////////////////////////////////// 1547 template <> 1548 struct FormatTraits<I24X8_UNORM> : ComponentTraits<SWR_TYPE_UNORM, 24, SWR_TYPE_UNORM, 8>, 1549 FormatSwizzle<0, 3>, 1550 Defaults<0, 0, 0, 0x3f800000> 1551 { 1552 static const uint32_t bpp{32}; 1553 static const uint32_t numComps{2}; 1554 static const bool hasAlpha{false}; 1555 static const uint32_t alphaComp{0}; 1556 static const bool isSRGB{false}; 1557 static const bool isBC{false}; 1558 static const bool isSubsampled{false}; 1559 static const uint32_t bcWidth{1}; 1560 static const uint32_t bcHeight{1}; 1561 1562 typedef Transpose24_8 TransposeT; 1563 typedef Format2<24, 8> FormatT; 1564 }; 1565 1566 ////////////////////////////////////////////////////////////////////////// 1567 /// FormatTraits<L24X8_UNORM> - Format traits specialization for L24X8_UNORM 1568 ////////////////////////////////////////////////////////////////////////// 1569 template <> 1570 struct FormatTraits<L24X8_UNORM> : ComponentTraits<SWR_TYPE_UNORM, 24, SWR_TYPE_UNORM, 8>, 1571 FormatSwizzle<0, 3>, 1572 Defaults<0, 0, 0, 0x3f800000> 1573 { 1574 static const uint32_t bpp{32}; 1575 static const uint32_t numComps{2}; 1576 static const bool hasAlpha{false}; 1577 static const uint32_t alphaComp{0}; 1578 static const bool isSRGB{false}; 1579 static const bool isBC{false}; 1580 static const bool isSubsampled{false}; 1581 static const uint32_t bcWidth{1}; 1582 static const uint32_t bcHeight{1}; 1583 1584 typedef Transpose24_8 TransposeT; 1585 typedef Format2<24, 8> FormatT; 1586 }; 1587 1588 ////////////////////////////////////////////////////////////////////////// 1589 /// FormatTraits<I32_FLOAT> - Format traits specialization for I32_FLOAT 1590 ////////////////////////////////////////////////////////////////////////// 1591 template <> 1592 struct FormatTraits<I32_FLOAT> 1593 : ComponentTraits<SWR_TYPE_FLOAT, 32>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 1594 { 1595 static const uint32_t bpp{32}; 1596 static const uint32_t numComps{1}; 1597 static const bool hasAlpha{false}; 1598 static const uint32_t alphaComp{0}; 1599 static const bool isSRGB{false}; 1600 static const bool isBC{false}; 1601 static const bool isSubsampled{false}; 1602 static const uint32_t bcWidth{1}; 1603 static const uint32_t bcHeight{1}; 1604 1605 typedef TransposeSingleComponent<32> TransposeT; 1606 typedef Format1<32> FormatT; 1607 }; 1608 1609 ////////////////////////////////////////////////////////////////////////// 1610 /// FormatTraits<L32_FLOAT> - Format traits specialization for L32_FLOAT 1611 ////////////////////////////////////////////////////////////////////////// 1612 template <> 1613 struct FormatTraits<L32_FLOAT> 1614 : ComponentTraits<SWR_TYPE_FLOAT, 32>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 1615 { 1616 static const uint32_t bpp{32}; 1617 static const uint32_t numComps{1}; 1618 static const bool hasAlpha{false}; 1619 static const uint32_t alphaComp{0}; 1620 static const bool isSRGB{false}; 1621 static const bool isBC{false}; 1622 static const bool isSubsampled{false}; 1623 static const uint32_t bcWidth{1}; 1624 static const uint32_t bcHeight{1}; 1625 1626 typedef TransposeSingleComponent<32> TransposeT; 1627 typedef Format1<32> FormatT; 1628 }; 1629 1630 ////////////////////////////////////////////////////////////////////////// 1631 /// FormatTraits<A32_FLOAT> - Format traits specialization for A32_FLOAT 1632 ////////////////////////////////////////////////////////////////////////// 1633 template <> 1634 struct FormatTraits<A32_FLOAT> 1635 : ComponentTraits<SWR_TYPE_FLOAT, 32>, FormatSwizzle<3>, Defaults<0, 0, 0, 0x3f800000> 1636 { 1637 static const uint32_t bpp{32}; 1638 static const uint32_t numComps{1}; 1639 static const bool hasAlpha{true}; 1640 static const uint32_t alphaComp{0}; 1641 static const bool isSRGB{false}; 1642 static const bool isBC{false}; 1643 static const bool isSubsampled{false}; 1644 static const uint32_t bcWidth{1}; 1645 static const uint32_t bcHeight{1}; 1646 1647 typedef TransposeSingleComponent<32> TransposeT; 1648 typedef Format1<32> FormatT; 1649 }; 1650 1651 ////////////////////////////////////////////////////////////////////////// 1652 /// FormatTraits<B8G8R8X8_UNORM> - Format traits specialization for B8G8R8X8_UNORM 1653 ////////////////////////////////////////////////////////////////////////// 1654 template <> 1655 struct FormatTraits<B8G8R8X8_UNORM> 1656 : ComponentTraits<SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8, SWR_TYPE_UNUSED, 8>, 1657 FormatSwizzle<2, 1, 0, 3>, 1658 Defaults<0, 0, 0, 0x3f800000> 1659 { 1660 static const uint32_t bpp{32}; 1661 static const uint32_t numComps{3}; 1662 static const bool hasAlpha{false}; 1663 static const uint32_t alphaComp{0}; 1664 static const bool isSRGB{false}; 1665 static const bool isBC{false}; 1666 static const bool isSubsampled{false}; 1667 static const uint32_t bcWidth{1}; 1668 static const uint32_t bcHeight{1}; 1669 1670 typedef Transpose8_8_8_8 TransposeT; 1671 typedef Format4<8, 8, 8, 8> FormatT; 1672 }; 1673 1674 ////////////////////////////////////////////////////////////////////////// 1675 /// FormatTraits<B8G8R8X8_UNORM_SRGB> - Format traits specialization for B8G8R8X8_UNORM_SRGB 1676 ////////////////////////////////////////////////////////////////////////// 1677 template <> 1678 struct FormatTraits<B8G8R8X8_UNORM_SRGB> 1679 : ComponentTraits<SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8, SWR_TYPE_UNUSED, 8>, 1680 FormatSwizzle<2, 1, 0, 3>, 1681 Defaults<0, 0, 0, 0x3f800000> 1682 { 1683 static const uint32_t bpp{32}; 1684 static const uint32_t numComps{3}; 1685 static const bool hasAlpha{false}; 1686 static const uint32_t alphaComp{0}; 1687 static const bool isSRGB{true}; 1688 static const bool isBC{false}; 1689 static const bool isSubsampled{false}; 1690 static const uint32_t bcWidth{1}; 1691 static const uint32_t bcHeight{1}; 1692 1693 typedef Transpose8_8_8_8 TransposeT; 1694 typedef Format4<8, 8, 8, 8> FormatT; 1695 }; 1696 1697 ////////////////////////////////////////////////////////////////////////// 1698 /// FormatTraits<R8G8B8X8_UNORM> - Format traits specialization for R8G8B8X8_UNORM 1699 ////////////////////////////////////////////////////////////////////////// 1700 template <> 1701 struct FormatTraits<R8G8B8X8_UNORM> 1702 : ComponentTraits<SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8, SWR_TYPE_UNUSED, 8>, 1703 FormatSwizzle<0, 1, 2, 3>, 1704 Defaults<0, 0, 0, 0x3f800000> 1705 { 1706 static const uint32_t bpp{32}; 1707 static const uint32_t numComps{3}; 1708 static const bool hasAlpha{false}; 1709 static const uint32_t alphaComp{0}; 1710 static const bool isSRGB{false}; 1711 static const bool isBC{false}; 1712 static const bool isSubsampled{false}; 1713 static const uint32_t bcWidth{1}; 1714 static const uint32_t bcHeight{1}; 1715 1716 typedef Transpose8_8_8_8 TransposeT; 1717 typedef Format4<8, 8, 8, 8> FormatT; 1718 }; 1719 1720 ////////////////////////////////////////////////////////////////////////// 1721 /// FormatTraits<R8G8B8X8_UNORM_SRGB> - Format traits specialization for R8G8B8X8_UNORM_SRGB 1722 ////////////////////////////////////////////////////////////////////////// 1723 template <> 1724 struct FormatTraits<R8G8B8X8_UNORM_SRGB> 1725 : ComponentTraits<SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8, SWR_TYPE_UNUSED, 8>, 1726 FormatSwizzle<0, 1, 2, 3>, 1727 Defaults<0, 0, 0, 0x3f800000> 1728 { 1729 static const uint32_t bpp{32}; 1730 static const uint32_t numComps{3}; 1731 static const bool hasAlpha{false}; 1732 static const uint32_t alphaComp{0}; 1733 static const bool isSRGB{true}; 1734 static const bool isBC{false}; 1735 static const bool isSubsampled{false}; 1736 static const uint32_t bcWidth{1}; 1737 static const uint32_t bcHeight{1}; 1738 1739 typedef Transpose8_8_8_8 TransposeT; 1740 typedef Format4<8, 8, 8, 8> FormatT; 1741 }; 1742 1743 ////////////////////////////////////////////////////////////////////////// 1744 /// FormatTraits<R9G9B9E5_SHAREDEXP> - Format traits specialization for R9G9B9E5_SHAREDEXP 1745 ////////////////////////////////////////////////////////////////////////// 1746 template <> 1747 struct FormatTraits<R9G9B9E5_SHAREDEXP> 1748 : ComponentTraits<SWR_TYPE_UINT, 9, SWR_TYPE_UINT, 9, SWR_TYPE_UINT, 9, SWR_TYPE_UINT, 5>, 1749 FormatSwizzle<0, 1, 2, 3>, 1750 Defaults<0, 0, 0, 0x1> 1751 { 1752 static const uint32_t bpp{32}; 1753 static const uint32_t numComps{4}; 1754 static const bool hasAlpha{false}; 1755 static const uint32_t alphaComp{3}; 1756 static const bool isSRGB{false}; 1757 static const bool isBC{false}; 1758 static const bool isSubsampled{false}; 1759 static const uint32_t bcWidth{1}; 1760 static const uint32_t bcHeight{1}; 1761 1762 typedef Transpose9_9_9_5 TransposeT; 1763 typedef Format4<9, 9, 9, 5> FormatT; 1764 }; 1765 1766 ////////////////////////////////////////////////////////////////////////// 1767 /// FormatTraits<B10G10R10X2_UNORM> - Format traits specialization for B10G10R10X2_UNORM 1768 ////////////////////////////////////////////////////////////////////////// 1769 template <> 1770 struct FormatTraits<B10G10R10X2_UNORM> : ComponentTraits<SWR_TYPE_UNORM, 1771 10, 1772 SWR_TYPE_UNORM, 1773 10, 1774 SWR_TYPE_UNORM, 1775 10, 1776 SWR_TYPE_UNUSED, 1777 2>, 1778 FormatSwizzle<2, 1, 0, 3>, 1779 Defaults<0, 0, 0, 0x3f800000> 1780 { 1781 static const uint32_t bpp{32}; 1782 static const uint32_t numComps{3}; 1783 static const bool hasAlpha{false}; 1784 static const uint32_t alphaComp{0}; 1785 static const bool isSRGB{false}; 1786 static const bool isBC{false}; 1787 static const bool isSubsampled{false}; 1788 static const uint32_t bcWidth{1}; 1789 static const uint32_t bcHeight{1}; 1790 1791 typedef Transpose10_10_10_2 TransposeT; 1792 typedef Format4<10, 10, 10, 2> FormatT; 1793 }; 1794 1795 ////////////////////////////////////////////////////////////////////////// 1796 /// FormatTraits<L16A16_FLOAT> - Format traits specialization for L16A16_FLOAT 1797 ////////////////////////////////////////////////////////////////////////// 1798 template <> 1799 struct FormatTraits<L16A16_FLOAT> : ComponentTraits<SWR_TYPE_FLOAT, 16, SWR_TYPE_FLOAT, 16>, 1800 FormatSwizzle<0, 3>, 1801 Defaults<0, 0, 0, 0x3f800000> 1802 { 1803 static const uint32_t bpp{32}; 1804 static const uint32_t numComps{2}; 1805 static const bool hasAlpha{true}; 1806 static const uint32_t alphaComp{1}; 1807 static const bool isSRGB{false}; 1808 static const bool isBC{false}; 1809 static const bool isSubsampled{false}; 1810 static const uint32_t bcWidth{1}; 1811 static const uint32_t bcHeight{1}; 1812 1813 typedef Transpose16_16 TransposeT; 1814 typedef Format2<16, 16> FormatT; 1815 }; 1816 1817 ////////////////////////////////////////////////////////////////////////// 1818 /// FormatTraits<R10G10B10X2_USCALED> - Format traits specialization for R10G10B10X2_USCALED 1819 ////////////////////////////////////////////////////////////////////////// 1820 template <> 1821 struct FormatTraits<R10G10B10X2_USCALED> : ComponentTraits<SWR_TYPE_USCALED, 1822 10, 1823 SWR_TYPE_USCALED, 1824 10, 1825 SWR_TYPE_USCALED, 1826 10, 1827 SWR_TYPE_UNUSED, 1828 2>, 1829 FormatSwizzle<0, 1, 2, 3>, 1830 Defaults<0, 0, 0, 0x3f800000> 1831 { 1832 static const uint32_t bpp{32}; 1833 static const uint32_t numComps{3}; 1834 static const bool hasAlpha{false}; 1835 static const uint32_t alphaComp{0}; 1836 static const bool isSRGB{false}; 1837 static const bool isBC{false}; 1838 static const bool isSubsampled{false}; 1839 static const uint32_t bcWidth{1}; 1840 static const uint32_t bcHeight{1}; 1841 1842 typedef Transpose10_10_10_2 TransposeT; 1843 typedef Format4<10, 10, 10, 2> FormatT; 1844 }; 1845 1846 ////////////////////////////////////////////////////////////////////////// 1847 /// FormatTraits<R8G8B8A8_SSCALED> - Format traits specialization for R8G8B8A8_SSCALED 1848 ////////////////////////////////////////////////////////////////////////// 1849 template <> 1850 struct FormatTraits<R8G8B8A8_SSCALED> : ComponentTraits<SWR_TYPE_SSCALED, 1851 8, 1852 SWR_TYPE_SSCALED, 1853 8, 1854 SWR_TYPE_SSCALED, 1855 8, 1856 SWR_TYPE_SSCALED, 1857 8>, 1858 FormatSwizzle<0, 1, 2, 3>, 1859 Defaults<0, 0, 0, 0x3f800000> 1860 { 1861 static const uint32_t bpp{32}; 1862 static const uint32_t numComps{4}; 1863 static const bool hasAlpha{true}; 1864 static const uint32_t alphaComp{3}; 1865 static const bool isSRGB{false}; 1866 static const bool isBC{false}; 1867 static const bool isSubsampled{false}; 1868 static const uint32_t bcWidth{1}; 1869 static const uint32_t bcHeight{1}; 1870 1871 typedef Transpose8_8_8_8 TransposeT; 1872 typedef Format4<8, 8, 8, 8> FormatT; 1873 }; 1874 1875 ////////////////////////////////////////////////////////////////////////// 1876 /// FormatTraits<R8G8B8A8_USCALED> - Format traits specialization for R8G8B8A8_USCALED 1877 ////////////////////////////////////////////////////////////////////////// 1878 template <> 1879 struct FormatTraits<R8G8B8A8_USCALED> : ComponentTraits<SWR_TYPE_USCALED, 1880 8, 1881 SWR_TYPE_USCALED, 1882 8, 1883 SWR_TYPE_USCALED, 1884 8, 1885 SWR_TYPE_USCALED, 1886 8>, 1887 FormatSwizzle<0, 1, 2, 3>, 1888 Defaults<0, 0, 0, 0x3f800000> 1889 { 1890 static const uint32_t bpp{32}; 1891 static const uint32_t numComps{4}; 1892 static const bool hasAlpha{true}; 1893 static const uint32_t alphaComp{3}; 1894 static const bool isSRGB{false}; 1895 static const bool isBC{false}; 1896 static const bool isSubsampled{false}; 1897 static const uint32_t bcWidth{1}; 1898 static const uint32_t bcHeight{1}; 1899 1900 typedef Transpose8_8_8_8 TransposeT; 1901 typedef Format4<8, 8, 8, 8> FormatT; 1902 }; 1903 1904 ////////////////////////////////////////////////////////////////////////// 1905 /// FormatTraits<R16G16_SSCALED> - Format traits specialization for R16G16_SSCALED 1906 ////////////////////////////////////////////////////////////////////////// 1907 template <> 1908 struct FormatTraits<R16G16_SSCALED> : ComponentTraits<SWR_TYPE_SSCALED, 16, SWR_TYPE_SSCALED, 16>, 1909 FormatSwizzle<0, 1>, 1910 Defaults<0, 0, 0, 0x3f800000> 1911 { 1912 static const uint32_t bpp{32}; 1913 static const uint32_t numComps{2}; 1914 static const bool hasAlpha{false}; 1915 static const uint32_t alphaComp{0}; 1916 static const bool isSRGB{false}; 1917 static const bool isBC{false}; 1918 static const bool isSubsampled{false}; 1919 static const uint32_t bcWidth{1}; 1920 static const uint32_t bcHeight{1}; 1921 1922 typedef Transpose16_16 TransposeT; 1923 typedef Format2<16, 16> FormatT; 1924 }; 1925 1926 ////////////////////////////////////////////////////////////////////////// 1927 /// FormatTraits<R16G16_USCALED> - Format traits specialization for R16G16_USCALED 1928 ////////////////////////////////////////////////////////////////////////// 1929 template <> 1930 struct FormatTraits<R16G16_USCALED> : ComponentTraits<SWR_TYPE_USCALED, 16, SWR_TYPE_USCALED, 16>, 1931 FormatSwizzle<0, 1>, 1932 Defaults<0, 0, 0, 0x3f800000> 1933 { 1934 static const uint32_t bpp{32}; 1935 static const uint32_t numComps{2}; 1936 static const bool hasAlpha{false}; 1937 static const uint32_t alphaComp{0}; 1938 static const bool isSRGB{false}; 1939 static const bool isBC{false}; 1940 static const bool isSubsampled{false}; 1941 static const uint32_t bcWidth{1}; 1942 static const uint32_t bcHeight{1}; 1943 1944 typedef Transpose16_16 TransposeT; 1945 typedef Format2<16, 16> FormatT; 1946 }; 1947 1948 ////////////////////////////////////////////////////////////////////////// 1949 /// FormatTraits<R32_SSCALED> - Format traits specialization for R32_SSCALED 1950 ////////////////////////////////////////////////////////////////////////// 1951 template <> 1952 struct FormatTraits<R32_SSCALED> 1953 : ComponentTraits<SWR_TYPE_SSCALED, 32>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 1954 { 1955 static const uint32_t bpp{32}; 1956 static const uint32_t numComps{1}; 1957 static const bool hasAlpha{false}; 1958 static const uint32_t alphaComp{0}; 1959 static const bool isSRGB{false}; 1960 static const bool isBC{false}; 1961 static const bool isSubsampled{false}; 1962 static const uint32_t bcWidth{1}; 1963 static const uint32_t bcHeight{1}; 1964 1965 typedef TransposeSingleComponent<32> TransposeT; 1966 typedef Format1<32> FormatT; 1967 }; 1968 1969 ////////////////////////////////////////////////////////////////////////// 1970 /// FormatTraits<R32_USCALED> - Format traits specialization for R32_USCALED 1971 ////////////////////////////////////////////////////////////////////////// 1972 template <> 1973 struct FormatTraits<R32_USCALED> 1974 : ComponentTraits<SWR_TYPE_USCALED, 32>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 1975 { 1976 static const uint32_t bpp{32}; 1977 static const uint32_t numComps{1}; 1978 static const bool hasAlpha{false}; 1979 static const uint32_t alphaComp{0}; 1980 static const bool isSRGB{false}; 1981 static const bool isBC{false}; 1982 static const bool isSubsampled{false}; 1983 static const uint32_t bcWidth{1}; 1984 static const uint32_t bcHeight{1}; 1985 1986 typedef TransposeSingleComponent<32> TransposeT; 1987 typedef Format1<32> FormatT; 1988 }; 1989 1990 ////////////////////////////////////////////////////////////////////////// 1991 /// FormatTraits<B5G6R5_UNORM> - Format traits specialization for B5G6R5_UNORM 1992 ////////////////////////////////////////////////////////////////////////// 1993 template <> 1994 struct FormatTraits<B5G6R5_UNORM> 1995 : ComponentTraits<SWR_TYPE_UNORM, 5, SWR_TYPE_UNORM, 6, SWR_TYPE_UNORM, 5>, 1996 FormatSwizzle<2, 1, 0>, 1997 Defaults<0, 0, 0, 0x3f800000> 1998 { 1999 static const uint32_t bpp{16}; 2000 static const uint32_t numComps{3}; 2001 static const bool hasAlpha{false}; 2002 static const uint32_t alphaComp{0}; 2003 static const bool isSRGB{false}; 2004 static const bool isBC{false}; 2005 static const bool isSubsampled{false}; 2006 static const uint32_t bcWidth{1}; 2007 static const uint32_t bcHeight{1}; 2008 2009 typedef Transpose5_6_5 TransposeT; 2010 typedef Format3<5, 6, 5> FormatT; 2011 }; 2012 2013 ////////////////////////////////////////////////////////////////////////// 2014 /// FormatTraits<B5G6R5_UNORM_SRGB> - Format traits specialization for B5G6R5_UNORM_SRGB 2015 ////////////////////////////////////////////////////////////////////////// 2016 template <> 2017 struct FormatTraits<B5G6R5_UNORM_SRGB> 2018 : ComponentTraits<SWR_TYPE_UNORM, 5, SWR_TYPE_UNORM, 6, SWR_TYPE_UNORM, 5>, 2019 FormatSwizzle<2, 1, 0>, 2020 Defaults<0, 0, 0, 0x3f800000> 2021 { 2022 static const uint32_t bpp{16}; 2023 static const uint32_t numComps{3}; 2024 static const bool hasAlpha{false}; 2025 static const uint32_t alphaComp{0}; 2026 static const bool isSRGB{true}; 2027 static const bool isBC{false}; 2028 static const bool isSubsampled{false}; 2029 static const uint32_t bcWidth{1}; 2030 static const uint32_t bcHeight{1}; 2031 2032 typedef Transpose5_6_5 TransposeT; 2033 typedef Format3<5, 6, 5> FormatT; 2034 }; 2035 2036 ////////////////////////////////////////////////////////////////////////// 2037 /// FormatTraits<B5G5R5A1_UNORM> - Format traits specialization for B5G5R5A1_UNORM 2038 ////////////////////////////////////////////////////////////////////////// 2039 template <> 2040 struct FormatTraits<B5G5R5A1_UNORM> 2041 : ComponentTraits<SWR_TYPE_UNORM, 5, SWR_TYPE_UNORM, 5, SWR_TYPE_UNORM, 5, SWR_TYPE_UNORM, 1>, 2042 FormatSwizzle<2, 1, 0, 3>, 2043 Defaults<0, 0, 0, 0x3f800000> 2044 { 2045 static const uint32_t bpp{16}; 2046 static const uint32_t numComps{4}; 2047 static const bool hasAlpha{true}; 2048 static const uint32_t alphaComp{3}; 2049 static const bool isSRGB{false}; 2050 static const bool isBC{false}; 2051 static const bool isSubsampled{false}; 2052 static const uint32_t bcWidth{1}; 2053 static const uint32_t bcHeight{1}; 2054 2055 typedef Transpose5_5_5_1 TransposeT; 2056 typedef Format4<5, 5, 5, 1> FormatT; 2057 }; 2058 2059 ////////////////////////////////////////////////////////////////////////// 2060 /// FormatTraits<B5G5R5A1_UNORM_SRGB> - Format traits specialization for B5G5R5A1_UNORM_SRGB 2061 ////////////////////////////////////////////////////////////////////////// 2062 template <> 2063 struct FormatTraits<B5G5R5A1_UNORM_SRGB> 2064 : ComponentTraits<SWR_TYPE_UNORM, 5, SWR_TYPE_UNORM, 5, SWR_TYPE_UNORM, 5, SWR_TYPE_UNORM, 1>, 2065 FormatSwizzle<2, 1, 0, 3>, 2066 Defaults<0, 0, 0, 0x3f800000> 2067 { 2068 static const uint32_t bpp{16}; 2069 static const uint32_t numComps{4}; 2070 static const bool hasAlpha{true}; 2071 static const uint32_t alphaComp{3}; 2072 static const bool isSRGB{true}; 2073 static const bool isBC{false}; 2074 static const bool isSubsampled{false}; 2075 static const uint32_t bcWidth{1}; 2076 static const uint32_t bcHeight{1}; 2077 2078 typedef Transpose5_5_5_1 TransposeT; 2079 typedef Format4<5, 5, 5, 1> FormatT; 2080 }; 2081 2082 ////////////////////////////////////////////////////////////////////////// 2083 /// FormatTraits<B4G4R4A4_UNORM> - Format traits specialization for B4G4R4A4_UNORM 2084 ////////////////////////////////////////////////////////////////////////// 2085 template <> 2086 struct FormatTraits<B4G4R4A4_UNORM> 2087 : ComponentTraits<SWR_TYPE_UNORM, 4, SWR_TYPE_UNORM, 4, SWR_TYPE_UNORM, 4, SWR_TYPE_UNORM, 4>, 2088 FormatSwizzle<2, 1, 0, 3>, 2089 Defaults<0, 0, 0, 0x3f800000> 2090 { 2091 static const uint32_t bpp{16}; 2092 static const uint32_t numComps{4}; 2093 static const bool hasAlpha{true}; 2094 static const uint32_t alphaComp{3}; 2095 static const bool isSRGB{false}; 2096 static const bool isBC{false}; 2097 static const bool isSubsampled{false}; 2098 static const uint32_t bcWidth{1}; 2099 static const uint32_t bcHeight{1}; 2100 2101 typedef Transpose4_4_4_4 TransposeT; 2102 typedef Format4<4, 4, 4, 4> FormatT; 2103 }; 2104 2105 ////////////////////////////////////////////////////////////////////////// 2106 /// FormatTraits<B4G4R4A4_UNORM_SRGB> - Format traits specialization for B4G4R4A4_UNORM_SRGB 2107 ////////////////////////////////////////////////////////////////////////// 2108 template <> 2109 struct FormatTraits<B4G4R4A4_UNORM_SRGB> 2110 : ComponentTraits<SWR_TYPE_UNORM, 4, SWR_TYPE_UNORM, 4, SWR_TYPE_UNORM, 4, SWR_TYPE_UNORM, 4>, 2111 FormatSwizzle<2, 1, 0, 3>, 2112 Defaults<0, 0, 0, 0x3f800000> 2113 { 2114 static const uint32_t bpp{16}; 2115 static const uint32_t numComps{4}; 2116 static const bool hasAlpha{true}; 2117 static const uint32_t alphaComp{3}; 2118 static const bool isSRGB{true}; 2119 static const bool isBC{false}; 2120 static const bool isSubsampled{false}; 2121 static const uint32_t bcWidth{1}; 2122 static const uint32_t bcHeight{1}; 2123 2124 typedef Transpose4_4_4_4 TransposeT; 2125 typedef Format4<4, 4, 4, 4> FormatT; 2126 }; 2127 2128 ////////////////////////////////////////////////////////////////////////// 2129 /// FormatTraits<R8G8_UNORM> - Format traits specialization for R8G8_UNORM 2130 ////////////////////////////////////////////////////////////////////////// 2131 template <> 2132 struct FormatTraits<R8G8_UNORM> : ComponentTraits<SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8>, 2133 FormatSwizzle<0, 1>, 2134 Defaults<0, 0, 0, 0x3f800000> 2135 { 2136 static const uint32_t bpp{16}; 2137 static const uint32_t numComps{2}; 2138 static const bool hasAlpha{false}; 2139 static const uint32_t alphaComp{0}; 2140 static const bool isSRGB{false}; 2141 static const bool isBC{false}; 2142 static const bool isSubsampled{false}; 2143 static const uint32_t bcWidth{1}; 2144 static const uint32_t bcHeight{1}; 2145 2146 typedef Transpose8_8 TransposeT; 2147 typedef Format2<8, 8> FormatT; 2148 }; 2149 2150 ////////////////////////////////////////////////////////////////////////// 2151 /// FormatTraits<R8G8_SNORM> - Format traits specialization for R8G8_SNORM 2152 ////////////////////////////////////////////////////////////////////////// 2153 template <> 2154 struct FormatTraits<R8G8_SNORM> : ComponentTraits<SWR_TYPE_SNORM, 8, SWR_TYPE_SNORM, 8>, 2155 FormatSwizzle<0, 1>, 2156 Defaults<0, 0, 0, 0x3f800000> 2157 { 2158 static const uint32_t bpp{16}; 2159 static const uint32_t numComps{2}; 2160 static const bool hasAlpha{false}; 2161 static const uint32_t alphaComp{0}; 2162 static const bool isSRGB{false}; 2163 static const bool isBC{false}; 2164 static const bool isSubsampled{false}; 2165 static const uint32_t bcWidth{1}; 2166 static const uint32_t bcHeight{1}; 2167 2168 typedef Transpose8_8 TransposeT; 2169 typedef Format2<8, 8> FormatT; 2170 }; 2171 2172 ////////////////////////////////////////////////////////////////////////// 2173 /// FormatTraits<R8G8_SINT> - Format traits specialization for R8G8_SINT 2174 ////////////////////////////////////////////////////////////////////////// 2175 template <> 2176 struct FormatTraits<R8G8_SINT> : ComponentTraits<SWR_TYPE_SINT, 8, SWR_TYPE_SINT, 8>, 2177 FormatSwizzle<0, 1>, 2178 Defaults<0, 0, 0, 0x1> 2179 { 2180 static const uint32_t bpp{16}; 2181 static const uint32_t numComps{2}; 2182 static const bool hasAlpha{false}; 2183 static const uint32_t alphaComp{0}; 2184 static const bool isSRGB{false}; 2185 static const bool isBC{false}; 2186 static const bool isSubsampled{false}; 2187 static const uint32_t bcWidth{1}; 2188 static const uint32_t bcHeight{1}; 2189 2190 typedef Transpose8_8 TransposeT; 2191 typedef Format2<8, 8> FormatT; 2192 }; 2193 2194 ////////////////////////////////////////////////////////////////////////// 2195 /// FormatTraits<R8G8_UINT> - Format traits specialization for R8G8_UINT 2196 ////////////////////////////////////////////////////////////////////////// 2197 template <> 2198 struct FormatTraits<R8G8_UINT> : ComponentTraits<SWR_TYPE_UINT, 8, SWR_TYPE_UINT, 8>, 2199 FormatSwizzle<0, 1>, 2200 Defaults<0, 0, 0, 0x1> 2201 { 2202 static const uint32_t bpp{16}; 2203 static const uint32_t numComps{2}; 2204 static const bool hasAlpha{false}; 2205 static const uint32_t alphaComp{0}; 2206 static const bool isSRGB{false}; 2207 static const bool isBC{false}; 2208 static const bool isSubsampled{false}; 2209 static const uint32_t bcWidth{1}; 2210 static const uint32_t bcHeight{1}; 2211 2212 typedef Transpose8_8 TransposeT; 2213 typedef Format2<8, 8> FormatT; 2214 }; 2215 2216 ////////////////////////////////////////////////////////////////////////// 2217 /// FormatTraits<R16_UNORM> - Format traits specialization for R16_UNORM 2218 ////////////////////////////////////////////////////////////////////////// 2219 template <> 2220 struct FormatTraits<R16_UNORM> 2221 : ComponentTraits<SWR_TYPE_UNORM, 16>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 2222 { 2223 static const uint32_t bpp{16}; 2224 static const uint32_t numComps{1}; 2225 static const bool hasAlpha{false}; 2226 static const uint32_t alphaComp{0}; 2227 static const bool isSRGB{false}; 2228 static const bool isBC{false}; 2229 static const bool isSubsampled{false}; 2230 static const uint32_t bcWidth{1}; 2231 static const uint32_t bcHeight{1}; 2232 2233 typedef TransposeSingleComponent<16> TransposeT; 2234 typedef Format1<16> FormatT; 2235 }; 2236 2237 ////////////////////////////////////////////////////////////////////////// 2238 /// FormatTraits<R16_SNORM> - Format traits specialization for R16_SNORM 2239 ////////////////////////////////////////////////////////////////////////// 2240 template <> 2241 struct FormatTraits<R16_SNORM> 2242 : ComponentTraits<SWR_TYPE_SNORM, 16>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 2243 { 2244 static const uint32_t bpp{16}; 2245 static const uint32_t numComps{1}; 2246 static const bool hasAlpha{false}; 2247 static const uint32_t alphaComp{0}; 2248 static const bool isSRGB{false}; 2249 static const bool isBC{false}; 2250 static const bool isSubsampled{false}; 2251 static const uint32_t bcWidth{1}; 2252 static const uint32_t bcHeight{1}; 2253 2254 typedef TransposeSingleComponent<16> TransposeT; 2255 typedef Format1<16> FormatT; 2256 }; 2257 2258 ////////////////////////////////////////////////////////////////////////// 2259 /// FormatTraits<R16_SINT> - Format traits specialization for R16_SINT 2260 ////////////////////////////////////////////////////////////////////////// 2261 template <> 2262 struct FormatTraits<R16_SINT> 2263 : ComponentTraits<SWR_TYPE_SINT, 16>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x1> 2264 { 2265 static const uint32_t bpp{16}; 2266 static const uint32_t numComps{1}; 2267 static const bool hasAlpha{false}; 2268 static const uint32_t alphaComp{0}; 2269 static const bool isSRGB{false}; 2270 static const bool isBC{false}; 2271 static const bool isSubsampled{false}; 2272 static const uint32_t bcWidth{1}; 2273 static const uint32_t bcHeight{1}; 2274 2275 typedef TransposeSingleComponent<16> TransposeT; 2276 typedef Format1<16> FormatT; 2277 }; 2278 2279 ////////////////////////////////////////////////////////////////////////// 2280 /// FormatTraits<R16_UINT> - Format traits specialization for R16_UINT 2281 ////////////////////////////////////////////////////////////////////////// 2282 template <> 2283 struct FormatTraits<R16_UINT> 2284 : ComponentTraits<SWR_TYPE_UINT, 16>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x1> 2285 { 2286 static const uint32_t bpp{16}; 2287 static const uint32_t numComps{1}; 2288 static const bool hasAlpha{false}; 2289 static const uint32_t alphaComp{0}; 2290 static const bool isSRGB{false}; 2291 static const bool isBC{false}; 2292 static const bool isSubsampled{false}; 2293 static const uint32_t bcWidth{1}; 2294 static const uint32_t bcHeight{1}; 2295 2296 typedef TransposeSingleComponent<16> TransposeT; 2297 typedef Format1<16> FormatT; 2298 }; 2299 2300 ////////////////////////////////////////////////////////////////////////// 2301 /// FormatTraits<R16_FLOAT> - Format traits specialization for R16_FLOAT 2302 ////////////////////////////////////////////////////////////////////////// 2303 template <> 2304 struct FormatTraits<R16_FLOAT> 2305 : ComponentTraits<SWR_TYPE_FLOAT, 16>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 2306 { 2307 static const uint32_t bpp{16}; 2308 static const uint32_t numComps{1}; 2309 static const bool hasAlpha{false}; 2310 static const uint32_t alphaComp{0}; 2311 static const bool isSRGB{false}; 2312 static const bool isBC{false}; 2313 static const bool isSubsampled{false}; 2314 static const uint32_t bcWidth{1}; 2315 static const uint32_t bcHeight{1}; 2316 2317 typedef TransposeSingleComponent<16> TransposeT; 2318 typedef Format1<16> FormatT; 2319 }; 2320 2321 ////////////////////////////////////////////////////////////////////////// 2322 /// FormatTraits<I16_UNORM> - Format traits specialization for I16_UNORM 2323 ////////////////////////////////////////////////////////////////////////// 2324 template <> 2325 struct FormatTraits<I16_UNORM> 2326 : ComponentTraits<SWR_TYPE_UNORM, 16>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 2327 { 2328 static const uint32_t bpp{16}; 2329 static const uint32_t numComps{1}; 2330 static const bool hasAlpha{false}; 2331 static const uint32_t alphaComp{0}; 2332 static const bool isSRGB{false}; 2333 static const bool isBC{false}; 2334 static const bool isSubsampled{false}; 2335 static const uint32_t bcWidth{1}; 2336 static const uint32_t bcHeight{1}; 2337 2338 typedef TransposeSingleComponent<16> TransposeT; 2339 typedef Format1<16> FormatT; 2340 }; 2341 2342 ////////////////////////////////////////////////////////////////////////// 2343 /// FormatTraits<L16_UNORM> - Format traits specialization for L16_UNORM 2344 ////////////////////////////////////////////////////////////////////////// 2345 template <> 2346 struct FormatTraits<L16_UNORM> 2347 : ComponentTraits<SWR_TYPE_UNORM, 16>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 2348 { 2349 static const uint32_t bpp{16}; 2350 static const uint32_t numComps{1}; 2351 static const bool hasAlpha{false}; 2352 static const uint32_t alphaComp{0}; 2353 static const bool isSRGB{false}; 2354 static const bool isBC{false}; 2355 static const bool isSubsampled{false}; 2356 static const uint32_t bcWidth{1}; 2357 static const uint32_t bcHeight{1}; 2358 2359 typedef TransposeSingleComponent<16> TransposeT; 2360 typedef Format1<16> FormatT; 2361 }; 2362 2363 ////////////////////////////////////////////////////////////////////////// 2364 /// FormatTraits<A16_UNORM> - Format traits specialization for A16_UNORM 2365 ////////////////////////////////////////////////////////////////////////// 2366 template <> 2367 struct FormatTraits<A16_UNORM> 2368 : ComponentTraits<SWR_TYPE_UNORM, 16>, FormatSwizzle<3>, Defaults<0, 0, 0, 0x3f800000> 2369 { 2370 static const uint32_t bpp{16}; 2371 static const uint32_t numComps{1}; 2372 static const bool hasAlpha{true}; 2373 static const uint32_t alphaComp{0}; 2374 static const bool isSRGB{false}; 2375 static const bool isBC{false}; 2376 static const bool isSubsampled{false}; 2377 static const uint32_t bcWidth{1}; 2378 static const uint32_t bcHeight{1}; 2379 2380 typedef TransposeSingleComponent<16> TransposeT; 2381 typedef Format1<16> FormatT; 2382 }; 2383 2384 ////////////////////////////////////////////////////////////////////////// 2385 /// FormatTraits<L8A8_UNORM> - Format traits specialization for L8A8_UNORM 2386 ////////////////////////////////////////////////////////////////////////// 2387 template <> 2388 struct FormatTraits<L8A8_UNORM> : ComponentTraits<SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8>, 2389 FormatSwizzle<0, 3>, 2390 Defaults<0, 0, 0, 0x3f800000> 2391 { 2392 static const uint32_t bpp{16}; 2393 static const uint32_t numComps{2}; 2394 static const bool hasAlpha{true}; 2395 static const uint32_t alphaComp{1}; 2396 static const bool isSRGB{false}; 2397 static const bool isBC{false}; 2398 static const bool isSubsampled{false}; 2399 static const uint32_t bcWidth{1}; 2400 static const uint32_t bcHeight{1}; 2401 2402 typedef Transpose8_8 TransposeT; 2403 typedef Format2<8, 8> FormatT; 2404 }; 2405 2406 ////////////////////////////////////////////////////////////////////////// 2407 /// FormatTraits<I16_FLOAT> - Format traits specialization for I16_FLOAT 2408 ////////////////////////////////////////////////////////////////////////// 2409 template <> 2410 struct FormatTraits<I16_FLOAT> 2411 : ComponentTraits<SWR_TYPE_FLOAT, 16>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 2412 { 2413 static const uint32_t bpp{16}; 2414 static const uint32_t numComps{1}; 2415 static const bool hasAlpha{false}; 2416 static const uint32_t alphaComp{0}; 2417 static const bool isSRGB{false}; 2418 static const bool isBC{false}; 2419 static const bool isSubsampled{false}; 2420 static const uint32_t bcWidth{1}; 2421 static const uint32_t bcHeight{1}; 2422 2423 typedef TransposeSingleComponent<16> TransposeT; 2424 typedef Format1<16> FormatT; 2425 }; 2426 2427 ////////////////////////////////////////////////////////////////////////// 2428 /// FormatTraits<L16_FLOAT> - Format traits specialization for L16_FLOAT 2429 ////////////////////////////////////////////////////////////////////////// 2430 template <> 2431 struct FormatTraits<L16_FLOAT> 2432 : ComponentTraits<SWR_TYPE_FLOAT, 16>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 2433 { 2434 static const uint32_t bpp{16}; 2435 static const uint32_t numComps{1}; 2436 static const bool hasAlpha{false}; 2437 static const uint32_t alphaComp{0}; 2438 static const bool isSRGB{false}; 2439 static const bool isBC{false}; 2440 static const bool isSubsampled{false}; 2441 static const uint32_t bcWidth{1}; 2442 static const uint32_t bcHeight{1}; 2443 2444 typedef TransposeSingleComponent<16> TransposeT; 2445 typedef Format1<16> FormatT; 2446 }; 2447 2448 ////////////////////////////////////////////////////////////////////////// 2449 /// FormatTraits<A16_FLOAT> - Format traits specialization for A16_FLOAT 2450 ////////////////////////////////////////////////////////////////////////// 2451 template <> 2452 struct FormatTraits<A16_FLOAT> 2453 : ComponentTraits<SWR_TYPE_FLOAT, 16>, FormatSwizzle<3>, Defaults<0, 0, 0, 0x3f800000> 2454 { 2455 static const uint32_t bpp{16}; 2456 static const uint32_t numComps{1}; 2457 static const bool hasAlpha{true}; 2458 static const uint32_t alphaComp{0}; 2459 static const bool isSRGB{false}; 2460 static const bool isBC{false}; 2461 static const bool isSubsampled{false}; 2462 static const uint32_t bcWidth{1}; 2463 static const uint32_t bcHeight{1}; 2464 2465 typedef TransposeSingleComponent<16> TransposeT; 2466 typedef Format1<16> FormatT; 2467 }; 2468 2469 ////////////////////////////////////////////////////////////////////////// 2470 /// FormatTraits<L8A8_UNORM_SRGB> - Format traits specialization for L8A8_UNORM_SRGB 2471 ////////////////////////////////////////////////////////////////////////// 2472 template <> 2473 struct FormatTraits<L8A8_UNORM_SRGB> : ComponentTraits<SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8>, 2474 FormatSwizzle<0, 3>, 2475 Defaults<0, 0, 0, 0x3f800000> 2476 { 2477 static const uint32_t bpp{16}; 2478 static const uint32_t numComps{2}; 2479 static const bool hasAlpha{true}; 2480 static const uint32_t alphaComp{1}; 2481 static const bool isSRGB{true}; 2482 static const bool isBC{false}; 2483 static const bool isSubsampled{false}; 2484 static const uint32_t bcWidth{1}; 2485 static const uint32_t bcHeight{1}; 2486 2487 typedef Transpose8_8 TransposeT; 2488 typedef Format2<8, 8> FormatT; 2489 }; 2490 2491 ////////////////////////////////////////////////////////////////////////// 2492 /// FormatTraits<B5G5R5X1_UNORM> - Format traits specialization for B5G5R5X1_UNORM 2493 ////////////////////////////////////////////////////////////////////////// 2494 template <> 2495 struct FormatTraits<B5G5R5X1_UNORM> 2496 : ComponentTraits<SWR_TYPE_UNORM, 5, SWR_TYPE_UNORM, 5, SWR_TYPE_UNORM, 5, SWR_TYPE_UNUSED, 1>, 2497 FormatSwizzle<2, 1, 0, 3>, 2498 Defaults<0, 0, 0, 0x3f800000> 2499 { 2500 static const uint32_t bpp{16}; 2501 static const uint32_t numComps{3}; 2502 static const bool hasAlpha{false}; 2503 static const uint32_t alphaComp{0}; 2504 static const bool isSRGB{false}; 2505 static const bool isBC{false}; 2506 static const bool isSubsampled{false}; 2507 static const uint32_t bcWidth{1}; 2508 static const uint32_t bcHeight{1}; 2509 2510 typedef Transpose5_5_5_1 TransposeT; 2511 typedef Format4<5, 5, 5, 1> FormatT; 2512 }; 2513 2514 ////////////////////////////////////////////////////////////////////////// 2515 /// FormatTraits<B5G5R5X1_UNORM_SRGB> - Format traits specialization for B5G5R5X1_UNORM_SRGB 2516 ////////////////////////////////////////////////////////////////////////// 2517 template <> 2518 struct FormatTraits<B5G5R5X1_UNORM_SRGB> 2519 : ComponentTraits<SWR_TYPE_UNORM, 5, SWR_TYPE_UNORM, 5, SWR_TYPE_UNORM, 5, SWR_TYPE_UNUSED, 1>, 2520 FormatSwizzle<2, 1, 0, 3>, 2521 Defaults<0, 0, 0, 0x3f800000> 2522 { 2523 static const uint32_t bpp{16}; 2524 static const uint32_t numComps{3}; 2525 static const bool hasAlpha{false}; 2526 static const uint32_t alphaComp{0}; 2527 static const bool isSRGB{true}; 2528 static const bool isBC{false}; 2529 static const bool isSubsampled{false}; 2530 static const uint32_t bcWidth{1}; 2531 static const uint32_t bcHeight{1}; 2532 2533 typedef Transpose5_5_5_1 TransposeT; 2534 typedef Format4<5, 5, 5, 1> FormatT; 2535 }; 2536 2537 ////////////////////////////////////////////////////////////////////////// 2538 /// FormatTraits<R8G8_SSCALED> - Format traits specialization for R8G8_SSCALED 2539 ////////////////////////////////////////////////////////////////////////// 2540 template <> 2541 struct FormatTraits<R8G8_SSCALED> : ComponentTraits<SWR_TYPE_SSCALED, 8, SWR_TYPE_SSCALED, 8>, 2542 FormatSwizzle<0, 1>, 2543 Defaults<0, 0, 0, 0x3f800000> 2544 { 2545 static const uint32_t bpp{16}; 2546 static const uint32_t numComps{2}; 2547 static const bool hasAlpha{false}; 2548 static const uint32_t alphaComp{0}; 2549 static const bool isSRGB{false}; 2550 static const bool isBC{false}; 2551 static const bool isSubsampled{false}; 2552 static const uint32_t bcWidth{1}; 2553 static const uint32_t bcHeight{1}; 2554 2555 typedef Transpose8_8 TransposeT; 2556 typedef Format2<8, 8> FormatT; 2557 }; 2558 2559 ////////////////////////////////////////////////////////////////////////// 2560 /// FormatTraits<R8G8_USCALED> - Format traits specialization for R8G8_USCALED 2561 ////////////////////////////////////////////////////////////////////////// 2562 template <> 2563 struct FormatTraits<R8G8_USCALED> : ComponentTraits<SWR_TYPE_USCALED, 8, SWR_TYPE_USCALED, 8>, 2564 FormatSwizzle<0, 1>, 2565 Defaults<0, 0, 0, 0x3f800000> 2566 { 2567 static const uint32_t bpp{16}; 2568 static const uint32_t numComps{2}; 2569 static const bool hasAlpha{false}; 2570 static const uint32_t alphaComp{0}; 2571 static const bool isSRGB{false}; 2572 static const bool isBC{false}; 2573 static const bool isSubsampled{false}; 2574 static const uint32_t bcWidth{1}; 2575 static const uint32_t bcHeight{1}; 2576 2577 typedef Transpose8_8 TransposeT; 2578 typedef Format2<8, 8> FormatT; 2579 }; 2580 2581 ////////////////////////////////////////////////////////////////////////// 2582 /// FormatTraits<R16_SSCALED> - Format traits specialization for R16_SSCALED 2583 ////////////////////////////////////////////////////////////////////////// 2584 template <> 2585 struct FormatTraits<R16_SSCALED> 2586 : ComponentTraits<SWR_TYPE_SSCALED, 16>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 2587 { 2588 static const uint32_t bpp{16}; 2589 static const uint32_t numComps{1}; 2590 static const bool hasAlpha{false}; 2591 static const uint32_t alphaComp{0}; 2592 static const bool isSRGB{false}; 2593 static const bool isBC{false}; 2594 static const bool isSubsampled{false}; 2595 static const uint32_t bcWidth{1}; 2596 static const uint32_t bcHeight{1}; 2597 2598 typedef TransposeSingleComponent<16> TransposeT; 2599 typedef Format1<16> FormatT; 2600 }; 2601 2602 ////////////////////////////////////////////////////////////////////////// 2603 /// FormatTraits<R16_USCALED> - Format traits specialization for R16_USCALED 2604 ////////////////////////////////////////////////////////////////////////// 2605 template <> 2606 struct FormatTraits<R16_USCALED> 2607 : ComponentTraits<SWR_TYPE_USCALED, 16>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 2608 { 2609 static const uint32_t bpp{16}; 2610 static const uint32_t numComps{1}; 2611 static const bool hasAlpha{false}; 2612 static const uint32_t alphaComp{0}; 2613 static const bool isSRGB{false}; 2614 static const bool isBC{false}; 2615 static const bool isSubsampled{false}; 2616 static const uint32_t bcWidth{1}; 2617 static const uint32_t bcHeight{1}; 2618 2619 typedef TransposeSingleComponent<16> TransposeT; 2620 typedef Format1<16> FormatT; 2621 }; 2622 2623 ////////////////////////////////////////////////////////////////////////// 2624 /// FormatTraits<A1B5G5R5_UNORM> - Format traits specialization for A1B5G5R5_UNORM 2625 ////////////////////////////////////////////////////////////////////////// 2626 template <> 2627 struct FormatTraits<A1B5G5R5_UNORM> 2628 : ComponentTraits<SWR_TYPE_UNORM, 1, SWR_TYPE_UNORM, 5, SWR_TYPE_UNORM, 5, SWR_TYPE_UNORM, 5>, 2629 FormatSwizzle<3, 2, 1, 0>, 2630 Defaults<0, 0, 0, 0x3f800000> 2631 { 2632 static const uint32_t bpp{16}; 2633 static const uint32_t numComps{4}; 2634 static const bool hasAlpha{true}; 2635 static const uint32_t alphaComp{3}; 2636 static const bool isSRGB{false}; 2637 static const bool isBC{false}; 2638 static const bool isSubsampled{false}; 2639 static const uint32_t bcWidth{1}; 2640 static const uint32_t bcHeight{1}; 2641 2642 typedef Transpose1_5_5_5 TransposeT; 2643 typedef Format4<1, 5, 5, 5> FormatT; 2644 }; 2645 2646 ////////////////////////////////////////////////////////////////////////// 2647 /// FormatTraits<A4B4G4R4_UNORM> - Format traits specialization for A4B4G4R4_UNORM 2648 ////////////////////////////////////////////////////////////////////////// 2649 template <> 2650 struct FormatTraits<A4B4G4R4_UNORM> 2651 : ComponentTraits<SWR_TYPE_UNORM, 4, SWR_TYPE_UNORM, 4, SWR_TYPE_UNORM, 4, SWR_TYPE_UNORM, 4>, 2652 FormatSwizzle<3, 2, 1, 0>, 2653 Defaults<0, 0, 0, 0x3f800000> 2654 { 2655 static const uint32_t bpp{16}; 2656 static const uint32_t numComps{4}; 2657 static const bool hasAlpha{true}; 2658 static const uint32_t alphaComp{3}; 2659 static const bool isSRGB{false}; 2660 static const bool isBC{false}; 2661 static const bool isSubsampled{false}; 2662 static const uint32_t bcWidth{1}; 2663 static const uint32_t bcHeight{1}; 2664 2665 typedef Transpose4_4_4_4 TransposeT; 2666 typedef Format4<4, 4, 4, 4> FormatT; 2667 }; 2668 2669 ////////////////////////////////////////////////////////////////////////// 2670 /// FormatTraits<L8A8_UINT> - Format traits specialization for L8A8_UINT 2671 ////////////////////////////////////////////////////////////////////////// 2672 template <> 2673 struct FormatTraits<L8A8_UINT> : ComponentTraits<SWR_TYPE_UINT, 8, SWR_TYPE_UINT, 8>, 2674 FormatSwizzle<0, 3>, 2675 Defaults<0, 0, 0, 0x1> 2676 { 2677 static const uint32_t bpp{16}; 2678 static const uint32_t numComps{2}; 2679 static const bool hasAlpha{true}; 2680 static const uint32_t alphaComp{1}; 2681 static const bool isSRGB{false}; 2682 static const bool isBC{false}; 2683 static const bool isSubsampled{false}; 2684 static const uint32_t bcWidth{1}; 2685 static const uint32_t bcHeight{1}; 2686 2687 typedef Transpose8_8 TransposeT; 2688 typedef Format2<8, 8> FormatT; 2689 }; 2690 2691 ////////////////////////////////////////////////////////////////////////// 2692 /// FormatTraits<L8A8_SINT> - Format traits specialization for L8A8_SINT 2693 ////////////////////////////////////////////////////////////////////////// 2694 template <> 2695 struct FormatTraits<L8A8_SINT> : ComponentTraits<SWR_TYPE_SINT, 8, SWR_TYPE_SINT, 8>, 2696 FormatSwizzle<0, 3>, 2697 Defaults<0, 0, 0, 0x1> 2698 { 2699 static const uint32_t bpp{16}; 2700 static const uint32_t numComps{2}; 2701 static const bool hasAlpha{true}; 2702 static const uint32_t alphaComp{1}; 2703 static const bool isSRGB{false}; 2704 static const bool isBC{false}; 2705 static const bool isSubsampled{false}; 2706 static const uint32_t bcWidth{1}; 2707 static const uint32_t bcHeight{1}; 2708 2709 typedef Transpose8_8 TransposeT; 2710 typedef Format2<8, 8> FormatT; 2711 }; 2712 2713 ////////////////////////////////////////////////////////////////////////// 2714 /// FormatTraits<R8_UNORM> - Format traits specialization for R8_UNORM 2715 ////////////////////////////////////////////////////////////////////////// 2716 template <> 2717 struct FormatTraits<R8_UNORM> 2718 : ComponentTraits<SWR_TYPE_UNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 2719 { 2720 static const uint32_t bpp{8}; 2721 static const uint32_t numComps{1}; 2722 static const bool hasAlpha{false}; 2723 static const uint32_t alphaComp{0}; 2724 static const bool isSRGB{false}; 2725 static const bool isBC{false}; 2726 static const bool isSubsampled{false}; 2727 static const uint32_t bcWidth{1}; 2728 static const uint32_t bcHeight{1}; 2729 2730 typedef TransposeSingleComponent<8> TransposeT; 2731 typedef Format1<8> FormatT; 2732 }; 2733 2734 ////////////////////////////////////////////////////////////////////////// 2735 /// FormatTraits<R8_SNORM> - Format traits specialization for R8_SNORM 2736 ////////////////////////////////////////////////////////////////////////// 2737 template <> 2738 struct FormatTraits<R8_SNORM> 2739 : ComponentTraits<SWR_TYPE_SNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 2740 { 2741 static const uint32_t bpp{8}; 2742 static const uint32_t numComps{1}; 2743 static const bool hasAlpha{false}; 2744 static const uint32_t alphaComp{0}; 2745 static const bool isSRGB{false}; 2746 static const bool isBC{false}; 2747 static const bool isSubsampled{false}; 2748 static const uint32_t bcWidth{1}; 2749 static const uint32_t bcHeight{1}; 2750 2751 typedef TransposeSingleComponent<8> TransposeT; 2752 typedef Format1<8> FormatT; 2753 }; 2754 2755 ////////////////////////////////////////////////////////////////////////// 2756 /// FormatTraits<R8_SINT> - Format traits specialization for R8_SINT 2757 ////////////////////////////////////////////////////////////////////////// 2758 template <> 2759 struct FormatTraits<R8_SINT> 2760 : ComponentTraits<SWR_TYPE_SINT, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x1> 2761 { 2762 static const uint32_t bpp{8}; 2763 static const uint32_t numComps{1}; 2764 static const bool hasAlpha{false}; 2765 static const uint32_t alphaComp{0}; 2766 static const bool isSRGB{false}; 2767 static const bool isBC{false}; 2768 static const bool isSubsampled{false}; 2769 static const uint32_t bcWidth{1}; 2770 static const uint32_t bcHeight{1}; 2771 2772 typedef TransposeSingleComponent<8> TransposeT; 2773 typedef Format1<8> FormatT; 2774 }; 2775 2776 ////////////////////////////////////////////////////////////////////////// 2777 /// FormatTraits<R8_UINT> - Format traits specialization for R8_UINT 2778 ////////////////////////////////////////////////////////////////////////// 2779 template <> 2780 struct FormatTraits<R8_UINT> 2781 : ComponentTraits<SWR_TYPE_UINT, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x1> 2782 { 2783 static const uint32_t bpp{8}; 2784 static const uint32_t numComps{1}; 2785 static const bool hasAlpha{false}; 2786 static const uint32_t alphaComp{0}; 2787 static const bool isSRGB{false}; 2788 static const bool isBC{false}; 2789 static const bool isSubsampled{false}; 2790 static const uint32_t bcWidth{1}; 2791 static const uint32_t bcHeight{1}; 2792 2793 typedef TransposeSingleComponent<8> TransposeT; 2794 typedef Format1<8> FormatT; 2795 }; 2796 2797 ////////////////////////////////////////////////////////////////////////// 2798 /// FormatTraits<A8_UNORM> - Format traits specialization for A8_UNORM 2799 ////////////////////////////////////////////////////////////////////////// 2800 template <> 2801 struct FormatTraits<A8_UNORM> 2802 : ComponentTraits<SWR_TYPE_UNORM, 8>, FormatSwizzle<3>, Defaults<0, 0, 0, 0x3f800000> 2803 { 2804 static const uint32_t bpp{8}; 2805 static const uint32_t numComps{1}; 2806 static const bool hasAlpha{true}; 2807 static const uint32_t alphaComp{0}; 2808 static const bool isSRGB{false}; 2809 static const bool isBC{false}; 2810 static const bool isSubsampled{false}; 2811 static const uint32_t bcWidth{1}; 2812 static const uint32_t bcHeight{1}; 2813 2814 typedef TransposeSingleComponent<8> TransposeT; 2815 typedef Format1<8> FormatT; 2816 }; 2817 2818 ////////////////////////////////////////////////////////////////////////// 2819 /// FormatTraits<I8_UNORM> - Format traits specialization for I8_UNORM 2820 ////////////////////////////////////////////////////////////////////////// 2821 template <> 2822 struct FormatTraits<I8_UNORM> 2823 : ComponentTraits<SWR_TYPE_UNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 2824 { 2825 static const uint32_t bpp{8}; 2826 static const uint32_t numComps{1}; 2827 static const bool hasAlpha{false}; 2828 static const uint32_t alphaComp{0}; 2829 static const bool isSRGB{false}; 2830 static const bool isBC{false}; 2831 static const bool isSubsampled{false}; 2832 static const uint32_t bcWidth{1}; 2833 static const uint32_t bcHeight{1}; 2834 2835 typedef TransposeSingleComponent<8> TransposeT; 2836 typedef Format1<8> FormatT; 2837 }; 2838 2839 ////////////////////////////////////////////////////////////////////////// 2840 /// FormatTraits<L8_UNORM> - Format traits specialization for L8_UNORM 2841 ////////////////////////////////////////////////////////////////////////// 2842 template <> 2843 struct FormatTraits<L8_UNORM> 2844 : ComponentTraits<SWR_TYPE_UNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 2845 { 2846 static const uint32_t bpp{8}; 2847 static const uint32_t numComps{1}; 2848 static const bool hasAlpha{false}; 2849 static const uint32_t alphaComp{0}; 2850 static const bool isSRGB{false}; 2851 static const bool isBC{false}; 2852 static const bool isSubsampled{false}; 2853 static const uint32_t bcWidth{1}; 2854 static const uint32_t bcHeight{1}; 2855 2856 typedef TransposeSingleComponent<8> TransposeT; 2857 typedef Format1<8> FormatT; 2858 }; 2859 2860 ////////////////////////////////////////////////////////////////////////// 2861 /// FormatTraits<R8_SSCALED> - Format traits specialization for R8_SSCALED 2862 ////////////////////////////////////////////////////////////////////////// 2863 template <> 2864 struct FormatTraits<R8_SSCALED> 2865 : ComponentTraits<SWR_TYPE_SSCALED, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 2866 { 2867 static const uint32_t bpp{8}; 2868 static const uint32_t numComps{1}; 2869 static const bool hasAlpha{false}; 2870 static const uint32_t alphaComp{0}; 2871 static const bool isSRGB{false}; 2872 static const bool isBC{false}; 2873 static const bool isSubsampled{false}; 2874 static const uint32_t bcWidth{1}; 2875 static const uint32_t bcHeight{1}; 2876 2877 typedef TransposeSingleComponent<8> TransposeT; 2878 typedef Format1<8> FormatT; 2879 }; 2880 2881 ////////////////////////////////////////////////////////////////////////// 2882 /// FormatTraits<R8_USCALED> - Format traits specialization for R8_USCALED 2883 ////////////////////////////////////////////////////////////////////////// 2884 template <> 2885 struct FormatTraits<R8_USCALED> 2886 : ComponentTraits<SWR_TYPE_USCALED, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 2887 { 2888 static const uint32_t bpp{8}; 2889 static const uint32_t numComps{1}; 2890 static const bool hasAlpha{false}; 2891 static const uint32_t alphaComp{0}; 2892 static const bool isSRGB{false}; 2893 static const bool isBC{false}; 2894 static const bool isSubsampled{false}; 2895 static const uint32_t bcWidth{1}; 2896 static const uint32_t bcHeight{1}; 2897 2898 typedef TransposeSingleComponent<8> TransposeT; 2899 typedef Format1<8> FormatT; 2900 }; 2901 2902 ////////////////////////////////////////////////////////////////////////// 2903 /// FormatTraits<L8_UNORM_SRGB> - Format traits specialization for L8_UNORM_SRGB 2904 ////////////////////////////////////////////////////////////////////////// 2905 template <> 2906 struct FormatTraits<L8_UNORM_SRGB> 2907 : ComponentTraits<SWR_TYPE_UNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 2908 { 2909 static const uint32_t bpp{8}; 2910 static const uint32_t numComps{1}; 2911 static const bool hasAlpha{false}; 2912 static const uint32_t alphaComp{0}; 2913 static const bool isSRGB{true}; 2914 static const bool isBC{false}; 2915 static const bool isSubsampled{false}; 2916 static const uint32_t bcWidth{1}; 2917 static const uint32_t bcHeight{1}; 2918 2919 typedef TransposeSingleComponent<8> TransposeT; 2920 typedef Format1<8> FormatT; 2921 }; 2922 2923 ////////////////////////////////////////////////////////////////////////// 2924 /// FormatTraits<L8_UINT> - Format traits specialization for L8_UINT 2925 ////////////////////////////////////////////////////////////////////////// 2926 template <> 2927 struct FormatTraits<L8_UINT> 2928 : ComponentTraits<SWR_TYPE_UINT, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x1> 2929 { 2930 static const uint32_t bpp{8}; 2931 static const uint32_t numComps{1}; 2932 static const bool hasAlpha{false}; 2933 static const uint32_t alphaComp{0}; 2934 static const bool isSRGB{false}; 2935 static const bool isBC{false}; 2936 static const bool isSubsampled{false}; 2937 static const uint32_t bcWidth{1}; 2938 static const uint32_t bcHeight{1}; 2939 2940 typedef TransposeSingleComponent<8> TransposeT; 2941 typedef Format1<8> FormatT; 2942 }; 2943 2944 ////////////////////////////////////////////////////////////////////////// 2945 /// FormatTraits<L8_SINT> - Format traits specialization for L8_SINT 2946 ////////////////////////////////////////////////////////////////////////// 2947 template <> 2948 struct FormatTraits<L8_SINT> 2949 : ComponentTraits<SWR_TYPE_SINT, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x1> 2950 { 2951 static const uint32_t bpp{8}; 2952 static const uint32_t numComps{1}; 2953 static const bool hasAlpha{false}; 2954 static const uint32_t alphaComp{0}; 2955 static const bool isSRGB{false}; 2956 static const bool isBC{false}; 2957 static const bool isSubsampled{false}; 2958 static const uint32_t bcWidth{1}; 2959 static const uint32_t bcHeight{1}; 2960 2961 typedef TransposeSingleComponent<8> TransposeT; 2962 typedef Format1<8> FormatT; 2963 }; 2964 2965 ////////////////////////////////////////////////////////////////////////// 2966 /// FormatTraits<I8_UINT> - Format traits specialization for I8_UINT 2967 ////////////////////////////////////////////////////////////////////////// 2968 template <> 2969 struct FormatTraits<I8_UINT> 2970 : ComponentTraits<SWR_TYPE_UINT, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x1> 2971 { 2972 static const uint32_t bpp{8}; 2973 static const uint32_t numComps{1}; 2974 static const bool hasAlpha{false}; 2975 static const uint32_t alphaComp{0}; 2976 static const bool isSRGB{false}; 2977 static const bool isBC{false}; 2978 static const bool isSubsampled{false}; 2979 static const uint32_t bcWidth{1}; 2980 static const uint32_t bcHeight{1}; 2981 2982 typedef TransposeSingleComponent<8> TransposeT; 2983 typedef Format1<8> FormatT; 2984 }; 2985 2986 ////////////////////////////////////////////////////////////////////////// 2987 /// FormatTraits<I8_SINT> - Format traits specialization for I8_SINT 2988 ////////////////////////////////////////////////////////////////////////// 2989 template <> 2990 struct FormatTraits<I8_SINT> 2991 : ComponentTraits<SWR_TYPE_SINT, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x1> 2992 { 2993 static const uint32_t bpp{8}; 2994 static const uint32_t numComps{1}; 2995 static const bool hasAlpha{false}; 2996 static const uint32_t alphaComp{0}; 2997 static const bool isSRGB{false}; 2998 static const bool isBC{false}; 2999 static const bool isSubsampled{false}; 3000 static const uint32_t bcWidth{1}; 3001 static const uint32_t bcHeight{1}; 3002 3003 typedef TransposeSingleComponent<8> TransposeT; 3004 typedef Format1<8> FormatT; 3005 }; 3006 3007 ////////////////////////////////////////////////////////////////////////// 3008 /// FormatTraits<DXT1_RGB_SRGB> - Format traits specialization for DXT1_RGB_SRGB 3009 ////////////////////////////////////////////////////////////////////////// 3010 template <> 3011 struct FormatTraits<DXT1_RGB_SRGB> 3012 : ComponentTraits<SWR_TYPE_UNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 3013 { 3014 static const uint32_t bpp{64}; 3015 static const uint32_t numComps{1}; 3016 static const bool hasAlpha{true}; 3017 static const uint32_t alphaComp{3}; 3018 static const bool isSRGB{false}; 3019 static const bool isBC{true}; 3020 static const bool isSubsampled{false}; 3021 static const uint32_t bcWidth{4}; 3022 static const uint32_t bcHeight{4}; 3023 3024 typedef TransposeSingleComponent<8> TransposeT; 3025 typedef Format1<8> FormatT; 3026 }; 3027 3028 ////////////////////////////////////////////////////////////////////////// 3029 /// FormatTraits<YCRCB_SWAPUVY> - Format traits specialization for YCRCB_SWAPUVY 3030 ////////////////////////////////////////////////////////////////////////// 3031 template <> 3032 struct FormatTraits<YCRCB_SWAPUVY> 3033 : ComponentTraits<SWR_TYPE_UINT, 8, SWR_TYPE_UINT, 8, SWR_TYPE_UINT, 8, SWR_TYPE_UINT, 8>, 3034 FormatSwizzle<0, 1, 2, 3>, 3035 Defaults<0, 0, 0, 0x1> 3036 { 3037 static const uint32_t bpp{32}; 3038 static const uint32_t numComps{4}; 3039 static const bool hasAlpha{false}; 3040 static const uint32_t alphaComp{3}; 3041 static const bool isSRGB{false}; 3042 static const bool isBC{false}; 3043 static const bool isSubsampled{true}; 3044 static const uint32_t bcWidth{2}; 3045 static const uint32_t bcHeight{1}; 3046 3047 typedef Transpose8_8_8_8 TransposeT; 3048 typedef Format4<8, 8, 8, 8> FormatT; 3049 }; 3050 3051 ////////////////////////////////////////////////////////////////////////// 3052 /// FormatTraits<BC1_UNORM> - Format traits specialization for BC1_UNORM 3053 ////////////////////////////////////////////////////////////////////////// 3054 template <> 3055 struct FormatTraits<BC1_UNORM> 3056 : ComponentTraits<SWR_TYPE_UNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 3057 { 3058 static const uint32_t bpp{64}; 3059 static const uint32_t numComps{1}; 3060 static const bool hasAlpha{true}; 3061 static const uint32_t alphaComp{3}; 3062 static const bool isSRGB{false}; 3063 static const bool isBC{true}; 3064 static const bool isSubsampled{false}; 3065 static const uint32_t bcWidth{4}; 3066 static const uint32_t bcHeight{4}; 3067 3068 typedef TransposeSingleComponent<8> TransposeT; 3069 typedef Format1<8> FormatT; 3070 }; 3071 3072 ////////////////////////////////////////////////////////////////////////// 3073 /// FormatTraits<BC2_UNORM> - Format traits specialization for BC2_UNORM 3074 ////////////////////////////////////////////////////////////////////////// 3075 template <> 3076 struct FormatTraits<BC2_UNORM> 3077 : ComponentTraits<SWR_TYPE_UNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 3078 { 3079 static const uint32_t bpp{128}; 3080 static const uint32_t numComps{1}; 3081 static const bool hasAlpha{true}; 3082 static const uint32_t alphaComp{3}; 3083 static const bool isSRGB{false}; 3084 static const bool isBC{true}; 3085 static const bool isSubsampled{false}; 3086 static const uint32_t bcWidth{4}; 3087 static const uint32_t bcHeight{4}; 3088 3089 typedef TransposeSingleComponent<8> TransposeT; 3090 typedef Format1<8> FormatT; 3091 }; 3092 3093 ////////////////////////////////////////////////////////////////////////// 3094 /// FormatTraits<BC3_UNORM> - Format traits specialization for BC3_UNORM 3095 ////////////////////////////////////////////////////////////////////////// 3096 template <> 3097 struct FormatTraits<BC3_UNORM> 3098 : ComponentTraits<SWR_TYPE_UNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 3099 { 3100 static const uint32_t bpp{128}; 3101 static const uint32_t numComps{1}; 3102 static const bool hasAlpha{true}; 3103 static const uint32_t alphaComp{3}; 3104 static const bool isSRGB{false}; 3105 static const bool isBC{true}; 3106 static const bool isSubsampled{false}; 3107 static const uint32_t bcWidth{4}; 3108 static const uint32_t bcHeight{4}; 3109 3110 typedef TransposeSingleComponent<8> TransposeT; 3111 typedef Format1<8> FormatT; 3112 }; 3113 3114 ////////////////////////////////////////////////////////////////////////// 3115 /// FormatTraits<BC4_UNORM> - Format traits specialization for BC4_UNORM 3116 ////////////////////////////////////////////////////////////////////////// 3117 template <> 3118 struct FormatTraits<BC4_UNORM> 3119 : ComponentTraits<SWR_TYPE_UNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 3120 { 3121 static const uint32_t bpp{64}; 3122 static const uint32_t numComps{1}; 3123 static const bool hasAlpha{true}; 3124 static const uint32_t alphaComp{3}; 3125 static const bool isSRGB{false}; 3126 static const bool isBC{true}; 3127 static const bool isSubsampled{false}; 3128 static const uint32_t bcWidth{4}; 3129 static const uint32_t bcHeight{4}; 3130 3131 typedef TransposeSingleComponent<8> TransposeT; 3132 typedef Format1<8> FormatT; 3133 }; 3134 3135 ////////////////////////////////////////////////////////////////////////// 3136 /// FormatTraits<BC5_UNORM> - Format traits specialization for BC5_UNORM 3137 ////////////////////////////////////////////////////////////////////////// 3138 template <> 3139 struct FormatTraits<BC5_UNORM> 3140 : ComponentTraits<SWR_TYPE_UNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 3141 { 3142 static const uint32_t bpp{128}; 3143 static const uint32_t numComps{1}; 3144 static const bool hasAlpha{true}; 3145 static const uint32_t alphaComp{3}; 3146 static const bool isSRGB{false}; 3147 static const bool isBC{true}; 3148 static const bool isSubsampled{false}; 3149 static const uint32_t bcWidth{4}; 3150 static const uint32_t bcHeight{4}; 3151 3152 typedef TransposeSingleComponent<8> TransposeT; 3153 typedef Format1<8> FormatT; 3154 }; 3155 3156 ////////////////////////////////////////////////////////////////////////// 3157 /// FormatTraits<BC1_UNORM_SRGB> - Format traits specialization for BC1_UNORM_SRGB 3158 ////////////////////////////////////////////////////////////////////////// 3159 template <> 3160 struct FormatTraits<BC1_UNORM_SRGB> 3161 : ComponentTraits<SWR_TYPE_UNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 3162 { 3163 static const uint32_t bpp{64}; 3164 static const uint32_t numComps{1}; 3165 static const bool hasAlpha{true}; 3166 static const uint32_t alphaComp{3}; 3167 static const bool isSRGB{true}; 3168 static const bool isBC{true}; 3169 static const bool isSubsampled{false}; 3170 static const uint32_t bcWidth{4}; 3171 static const uint32_t bcHeight{4}; 3172 3173 typedef TransposeSingleComponent<8> TransposeT; 3174 typedef Format1<8> FormatT; 3175 }; 3176 3177 ////////////////////////////////////////////////////////////////////////// 3178 /// FormatTraits<BC2_UNORM_SRGB> - Format traits specialization for BC2_UNORM_SRGB 3179 ////////////////////////////////////////////////////////////////////////// 3180 template <> 3181 struct FormatTraits<BC2_UNORM_SRGB> 3182 : ComponentTraits<SWR_TYPE_UNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 3183 { 3184 static const uint32_t bpp{128}; 3185 static const uint32_t numComps{1}; 3186 static const bool hasAlpha{true}; 3187 static const uint32_t alphaComp{3}; 3188 static const bool isSRGB{true}; 3189 static const bool isBC{true}; 3190 static const bool isSubsampled{false}; 3191 static const uint32_t bcWidth{4}; 3192 static const uint32_t bcHeight{4}; 3193 3194 typedef TransposeSingleComponent<8> TransposeT; 3195 typedef Format1<8> FormatT; 3196 }; 3197 3198 ////////////////////////////////////////////////////////////////////////// 3199 /// FormatTraits<BC3_UNORM_SRGB> - Format traits specialization for BC3_UNORM_SRGB 3200 ////////////////////////////////////////////////////////////////////////// 3201 template <> 3202 struct FormatTraits<BC3_UNORM_SRGB> 3203 : ComponentTraits<SWR_TYPE_UNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 3204 { 3205 static const uint32_t bpp{128}; 3206 static const uint32_t numComps{1}; 3207 static const bool hasAlpha{true}; 3208 static const uint32_t alphaComp{3}; 3209 static const bool isSRGB{true}; 3210 static const bool isBC{true}; 3211 static const bool isSubsampled{false}; 3212 static const uint32_t bcWidth{4}; 3213 static const uint32_t bcHeight{4}; 3214 3215 typedef TransposeSingleComponent<8> TransposeT; 3216 typedef Format1<8> FormatT; 3217 }; 3218 3219 ////////////////////////////////////////////////////////////////////////// 3220 /// FormatTraits<YCRCB_SWAPUV> - Format traits specialization for YCRCB_SWAPUV 3221 ////////////////////////////////////////////////////////////////////////// 3222 template <> 3223 struct FormatTraits<YCRCB_SWAPUV> 3224 : ComponentTraits<SWR_TYPE_UINT, 8, SWR_TYPE_UINT, 8, SWR_TYPE_UINT, 8, SWR_TYPE_UINT, 8>, 3225 FormatSwizzle<0, 1, 2, 3>, 3226 Defaults<0, 0, 0, 0x1> 3227 { 3228 static const uint32_t bpp{32}; 3229 static const uint32_t numComps{4}; 3230 static const bool hasAlpha{false}; 3231 static const uint32_t alphaComp{3}; 3232 static const bool isSRGB{false}; 3233 static const bool isBC{false}; 3234 static const bool isSubsampled{true}; 3235 static const uint32_t bcWidth{2}; 3236 static const uint32_t bcHeight{1}; 3237 3238 typedef Transpose8_8_8_8 TransposeT; 3239 typedef Format4<8, 8, 8, 8> FormatT; 3240 }; 3241 3242 ////////////////////////////////////////////////////////////////////////// 3243 /// FormatTraits<DXT1_RGB> - Format traits specialization for DXT1_RGB 3244 ////////////////////////////////////////////////////////////////////////// 3245 template <> 3246 struct FormatTraits<DXT1_RGB> 3247 : ComponentTraits<SWR_TYPE_UNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 3248 { 3249 static const uint32_t bpp{64}; 3250 static const uint32_t numComps{1}; 3251 static const bool hasAlpha{true}; 3252 static const uint32_t alphaComp{3}; 3253 static const bool isSRGB{false}; 3254 static const bool isBC{true}; 3255 static const bool isSubsampled{false}; 3256 static const uint32_t bcWidth{4}; 3257 static const uint32_t bcHeight{4}; 3258 3259 typedef TransposeSingleComponent<8> TransposeT; 3260 typedef Format1<8> FormatT; 3261 }; 3262 3263 ////////////////////////////////////////////////////////////////////////// 3264 /// FormatTraits<R8G8B8_UNORM> - Format traits specialization for R8G8B8_UNORM 3265 ////////////////////////////////////////////////////////////////////////// 3266 template <> 3267 struct FormatTraits<R8G8B8_UNORM> 3268 : ComponentTraits<SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8>, 3269 FormatSwizzle<0, 1, 2>, 3270 Defaults<0, 0, 0, 0x3f800000> 3271 { 3272 static const uint32_t bpp{24}; 3273 static const uint32_t numComps{3}; 3274 static const bool hasAlpha{false}; 3275 static const uint32_t alphaComp{0}; 3276 static const bool isSRGB{false}; 3277 static const bool isBC{false}; 3278 static const bool isSubsampled{false}; 3279 static const uint32_t bcWidth{1}; 3280 static const uint32_t bcHeight{1}; 3281 3282 typedef Transpose8_8_8 TransposeT; 3283 typedef Format3<8, 8, 8> FormatT; 3284 }; 3285 3286 ////////////////////////////////////////////////////////////////////////// 3287 /// FormatTraits<R8G8B8_SNORM> - Format traits specialization for R8G8B8_SNORM 3288 ////////////////////////////////////////////////////////////////////////// 3289 template <> 3290 struct FormatTraits<R8G8B8_SNORM> 3291 : ComponentTraits<SWR_TYPE_SNORM, 8, SWR_TYPE_SNORM, 8, SWR_TYPE_SNORM, 8>, 3292 FormatSwizzle<0, 1, 2>, 3293 Defaults<0, 0, 0, 0x3f800000> 3294 { 3295 static const uint32_t bpp{24}; 3296 static const uint32_t numComps{3}; 3297 static const bool hasAlpha{false}; 3298 static const uint32_t alphaComp{0}; 3299 static const bool isSRGB{false}; 3300 static const bool isBC{false}; 3301 static const bool isSubsampled{false}; 3302 static const uint32_t bcWidth{1}; 3303 static const uint32_t bcHeight{1}; 3304 3305 typedef Transpose8_8_8 TransposeT; 3306 typedef Format3<8, 8, 8> FormatT; 3307 }; 3308 3309 ////////////////////////////////////////////////////////////////////////// 3310 /// FormatTraits<R8G8B8_SSCALED> - Format traits specialization for R8G8B8_SSCALED 3311 ////////////////////////////////////////////////////////////////////////// 3312 template <> 3313 struct FormatTraits<R8G8B8_SSCALED> 3314 : ComponentTraits<SWR_TYPE_SSCALED, 8, SWR_TYPE_SSCALED, 8, SWR_TYPE_SSCALED, 8>, 3315 FormatSwizzle<0, 1, 2>, 3316 Defaults<0, 0, 0, 0x3f800000> 3317 { 3318 static const uint32_t bpp{24}; 3319 static const uint32_t numComps{3}; 3320 static const bool hasAlpha{false}; 3321 static const uint32_t alphaComp{0}; 3322 static const bool isSRGB{false}; 3323 static const bool isBC{false}; 3324 static const bool isSubsampled{false}; 3325 static const uint32_t bcWidth{1}; 3326 static const uint32_t bcHeight{1}; 3327 3328 typedef Transpose8_8_8 TransposeT; 3329 typedef Format3<8, 8, 8> FormatT; 3330 }; 3331 3332 ////////////////////////////////////////////////////////////////////////// 3333 /// FormatTraits<R8G8B8_USCALED> - Format traits specialization for R8G8B8_USCALED 3334 ////////////////////////////////////////////////////////////////////////// 3335 template <> 3336 struct FormatTraits<R8G8B8_USCALED> 3337 : ComponentTraits<SWR_TYPE_USCALED, 8, SWR_TYPE_USCALED, 8, SWR_TYPE_USCALED, 8>, 3338 FormatSwizzle<0, 1, 2>, 3339 Defaults<0, 0, 0, 0x3f800000> 3340 { 3341 static const uint32_t bpp{24}; 3342 static const uint32_t numComps{3}; 3343 static const bool hasAlpha{false}; 3344 static const uint32_t alphaComp{0}; 3345 static const bool isSRGB{false}; 3346 static const bool isBC{false}; 3347 static const bool isSubsampled{false}; 3348 static const uint32_t bcWidth{1}; 3349 static const uint32_t bcHeight{1}; 3350 3351 typedef Transpose8_8_8 TransposeT; 3352 typedef Format3<8, 8, 8> FormatT; 3353 }; 3354 3355 ////////////////////////////////////////////////////////////////////////// 3356 /// FormatTraits<R64G64B64A64_FLOAT> - Format traits specialization for R64G64B64A64_FLOAT 3357 ////////////////////////////////////////////////////////////////////////// 3358 template <> 3359 struct FormatTraits<R64G64B64A64_FLOAT> : ComponentTraits<SWR_TYPE_FLOAT, 3360 64, 3361 SWR_TYPE_FLOAT, 3362 64, 3363 SWR_TYPE_FLOAT, 3364 64, 3365 SWR_TYPE_FLOAT, 3366 64>, 3367 FormatSwizzle<0, 1, 2, 3>, 3368 Defaults<0, 0, 0, 0x3f800000> 3369 { 3370 static const uint32_t bpp{256}; 3371 static const uint32_t numComps{4}; 3372 static const bool hasAlpha{true}; 3373 static const uint32_t alphaComp{3}; 3374 static const bool isSRGB{false}; 3375 static const bool isBC{false}; 3376 static const bool isSubsampled{false}; 3377 static const uint32_t bcWidth{1}; 3378 static const uint32_t bcHeight{1}; 3379 3380 typedef Transpose64_64_64_64 TransposeT; 3381 typedef Format4<64, 64, 64, 64> FormatT; 3382 }; 3383 3384 ////////////////////////////////////////////////////////////////////////// 3385 /// FormatTraits<R64G64B64_FLOAT> - Format traits specialization for R64G64B64_FLOAT 3386 ////////////////////////////////////////////////////////////////////////// 3387 template <> 3388 struct FormatTraits<R64G64B64_FLOAT> 3389 : ComponentTraits<SWR_TYPE_FLOAT, 64, SWR_TYPE_FLOAT, 64, SWR_TYPE_FLOAT, 64>, 3390 FormatSwizzle<0, 1, 2>, 3391 Defaults<0, 0, 0, 0x3f800000> 3392 { 3393 static const uint32_t bpp{192}; 3394 static const uint32_t numComps{3}; 3395 static const bool hasAlpha{false}; 3396 static const uint32_t alphaComp{0}; 3397 static const bool isSRGB{false}; 3398 static const bool isBC{false}; 3399 static const bool isSubsampled{false}; 3400 static const uint32_t bcWidth{1}; 3401 static const uint32_t bcHeight{1}; 3402 3403 typedef Transpose64_64_64 TransposeT; 3404 typedef Format3<64, 64, 64> FormatT; 3405 }; 3406 3407 ////////////////////////////////////////////////////////////////////////// 3408 /// FormatTraits<BC4_SNORM> - Format traits specialization for BC4_SNORM 3409 ////////////////////////////////////////////////////////////////////////// 3410 template <> 3411 struct FormatTraits<BC4_SNORM> 3412 : ComponentTraits<SWR_TYPE_SNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 3413 { 3414 static const uint32_t bpp{64}; 3415 static const uint32_t numComps{1}; 3416 static const bool hasAlpha{true}; 3417 static const uint32_t alphaComp{3}; 3418 static const bool isSRGB{false}; 3419 static const bool isBC{true}; 3420 static const bool isSubsampled{false}; 3421 static const uint32_t bcWidth{4}; 3422 static const uint32_t bcHeight{4}; 3423 3424 typedef TransposeSingleComponent<8> TransposeT; 3425 typedef Format1<8> FormatT; 3426 }; 3427 3428 ////////////////////////////////////////////////////////////////////////// 3429 /// FormatTraits<BC5_SNORM> - Format traits specialization for BC5_SNORM 3430 ////////////////////////////////////////////////////////////////////////// 3431 template <> 3432 struct FormatTraits<BC5_SNORM> 3433 : ComponentTraits<SWR_TYPE_SNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 3434 { 3435 static const uint32_t bpp{128}; 3436 static const uint32_t numComps{1}; 3437 static const bool hasAlpha{true}; 3438 static const uint32_t alphaComp{3}; 3439 static const bool isSRGB{false}; 3440 static const bool isBC{true}; 3441 static const bool isSubsampled{false}; 3442 static const uint32_t bcWidth{4}; 3443 static const uint32_t bcHeight{4}; 3444 3445 typedef TransposeSingleComponent<8> TransposeT; 3446 typedef Format1<8> FormatT; 3447 }; 3448 3449 ////////////////////////////////////////////////////////////////////////// 3450 /// FormatTraits<R16G16B16_FLOAT> - Format traits specialization for R16G16B16_FLOAT 3451 ////////////////////////////////////////////////////////////////////////// 3452 template <> 3453 struct FormatTraits<R16G16B16_FLOAT> 3454 : ComponentTraits<SWR_TYPE_FLOAT, 16, SWR_TYPE_FLOAT, 16, SWR_TYPE_FLOAT, 16>, 3455 FormatSwizzle<0, 1, 2>, 3456 Defaults<0, 0, 0, 0x3f800000> 3457 { 3458 static const uint32_t bpp{48}; 3459 static const uint32_t numComps{3}; 3460 static const bool hasAlpha{false}; 3461 static const uint32_t alphaComp{0}; 3462 static const bool isSRGB{false}; 3463 static const bool isBC{false}; 3464 static const bool isSubsampled{false}; 3465 static const uint32_t bcWidth{1}; 3466 static const uint32_t bcHeight{1}; 3467 3468 typedef Transpose16_16_16 TransposeT; 3469 typedef Format3<16, 16, 16> FormatT; 3470 }; 3471 3472 ////////////////////////////////////////////////////////////////////////// 3473 /// FormatTraits<R16G16B16_UNORM> - Format traits specialization for R16G16B16_UNORM 3474 ////////////////////////////////////////////////////////////////////////// 3475 template <> 3476 struct FormatTraits<R16G16B16_UNORM> 3477 : ComponentTraits<SWR_TYPE_UNORM, 16, SWR_TYPE_UNORM, 16, SWR_TYPE_UNORM, 16>, 3478 FormatSwizzle<0, 1, 2>, 3479 Defaults<0, 0, 0, 0x3f800000> 3480 { 3481 static const uint32_t bpp{48}; 3482 static const uint32_t numComps{3}; 3483 static const bool hasAlpha{false}; 3484 static const uint32_t alphaComp{0}; 3485 static const bool isSRGB{false}; 3486 static const bool isBC{false}; 3487 static const bool isSubsampled{false}; 3488 static const uint32_t bcWidth{1}; 3489 static const uint32_t bcHeight{1}; 3490 3491 typedef Transpose16_16_16 TransposeT; 3492 typedef Format3<16, 16, 16> FormatT; 3493 }; 3494 3495 ////////////////////////////////////////////////////////////////////////// 3496 /// FormatTraits<R16G16B16_SNORM> - Format traits specialization for R16G16B16_SNORM 3497 ////////////////////////////////////////////////////////////////////////// 3498 template <> 3499 struct FormatTraits<R16G16B16_SNORM> 3500 : ComponentTraits<SWR_TYPE_SNORM, 16, SWR_TYPE_SNORM, 16, SWR_TYPE_SNORM, 16>, 3501 FormatSwizzle<0, 1, 2>, 3502 Defaults<0, 0, 0, 0x3f800000> 3503 { 3504 static const uint32_t bpp{48}; 3505 static const uint32_t numComps{3}; 3506 static const bool hasAlpha{false}; 3507 static const uint32_t alphaComp{0}; 3508 static const bool isSRGB{false}; 3509 static const bool isBC{false}; 3510 static const bool isSubsampled{false}; 3511 static const uint32_t bcWidth{1}; 3512 static const uint32_t bcHeight{1}; 3513 3514 typedef Transpose16_16_16 TransposeT; 3515 typedef Format3<16, 16, 16> FormatT; 3516 }; 3517 3518 ////////////////////////////////////////////////////////////////////////// 3519 /// FormatTraits<R16G16B16_SSCALED> - Format traits specialization for R16G16B16_SSCALED 3520 ////////////////////////////////////////////////////////////////////////// 3521 template <> 3522 struct FormatTraits<R16G16B16_SSCALED> 3523 : ComponentTraits<SWR_TYPE_SSCALED, 16, SWR_TYPE_SSCALED, 16, SWR_TYPE_SSCALED, 16>, 3524 FormatSwizzle<0, 1, 2>, 3525 Defaults<0, 0, 0, 0x3f800000> 3526 { 3527 static const uint32_t bpp{48}; 3528 static const uint32_t numComps{3}; 3529 static const bool hasAlpha{false}; 3530 static const uint32_t alphaComp{0}; 3531 static const bool isSRGB{false}; 3532 static const bool isBC{false}; 3533 static const bool isSubsampled{false}; 3534 static const uint32_t bcWidth{1}; 3535 static const uint32_t bcHeight{1}; 3536 3537 typedef Transpose16_16_16 TransposeT; 3538 typedef Format3<16, 16, 16> FormatT; 3539 }; 3540 3541 ////////////////////////////////////////////////////////////////////////// 3542 /// FormatTraits<R16G16B16_USCALED> - Format traits specialization for R16G16B16_USCALED 3543 ////////////////////////////////////////////////////////////////////////// 3544 template <> 3545 struct FormatTraits<R16G16B16_USCALED> 3546 : ComponentTraits<SWR_TYPE_USCALED, 16, SWR_TYPE_USCALED, 16, SWR_TYPE_USCALED, 16>, 3547 FormatSwizzle<0, 1, 2>, 3548 Defaults<0, 0, 0, 0x3f800000> 3549 { 3550 static const uint32_t bpp{48}; 3551 static const uint32_t numComps{3}; 3552 static const bool hasAlpha{false}; 3553 static const uint32_t alphaComp{0}; 3554 static const bool isSRGB{false}; 3555 static const bool isBC{false}; 3556 static const bool isSubsampled{false}; 3557 static const uint32_t bcWidth{1}; 3558 static const uint32_t bcHeight{1}; 3559 3560 typedef Transpose16_16_16 TransposeT; 3561 typedef Format3<16, 16, 16> FormatT; 3562 }; 3563 3564 ////////////////////////////////////////////////////////////////////////// 3565 /// FormatTraits<BC6H_SF16> - Format traits specialization for BC6H_SF16 3566 ////////////////////////////////////////////////////////////////////////// 3567 template <> 3568 struct FormatTraits<BC6H_SF16> 3569 : ComponentTraits<SWR_TYPE_SNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 3570 { 3571 static const uint32_t bpp{128}; 3572 static const uint32_t numComps{1}; 3573 static const bool hasAlpha{true}; 3574 static const uint32_t alphaComp{3}; 3575 static const bool isSRGB{false}; 3576 static const bool isBC{true}; 3577 static const bool isSubsampled{false}; 3578 static const uint32_t bcWidth{4}; 3579 static const uint32_t bcHeight{4}; 3580 3581 typedef TransposeSingleComponent<8> TransposeT; 3582 typedef Format1<8> FormatT; 3583 }; 3584 3585 ////////////////////////////////////////////////////////////////////////// 3586 /// FormatTraits<BC7_UNORM> - Format traits specialization for BC7_UNORM 3587 ////////////////////////////////////////////////////////////////////////// 3588 template <> 3589 struct FormatTraits<BC7_UNORM> 3590 : ComponentTraits<SWR_TYPE_UNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 3591 { 3592 static const uint32_t bpp{128}; 3593 static const uint32_t numComps{1}; 3594 static const bool hasAlpha{true}; 3595 static const uint32_t alphaComp{3}; 3596 static const bool isSRGB{false}; 3597 static const bool isBC{true}; 3598 static const bool isSubsampled{false}; 3599 static const uint32_t bcWidth{4}; 3600 static const uint32_t bcHeight{4}; 3601 3602 typedef TransposeSingleComponent<8> TransposeT; 3603 typedef Format1<8> FormatT; 3604 }; 3605 3606 ////////////////////////////////////////////////////////////////////////// 3607 /// FormatTraits<BC7_UNORM_SRGB> - Format traits specialization for BC7_UNORM_SRGB 3608 ////////////////////////////////////////////////////////////////////////// 3609 template <> 3610 struct FormatTraits<BC7_UNORM_SRGB> 3611 : ComponentTraits<SWR_TYPE_UNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 3612 { 3613 static const uint32_t bpp{128}; 3614 static const uint32_t numComps{1}; 3615 static const bool hasAlpha{true}; 3616 static const uint32_t alphaComp{3}; 3617 static const bool isSRGB{true}; 3618 static const bool isBC{true}; 3619 static const bool isSubsampled{false}; 3620 static const uint32_t bcWidth{4}; 3621 static const uint32_t bcHeight{4}; 3622 3623 typedef TransposeSingleComponent<8> TransposeT; 3624 typedef Format1<8> FormatT; 3625 }; 3626 3627 ////////////////////////////////////////////////////////////////////////// 3628 /// FormatTraits<BC6H_UF16> - Format traits specialization for BC6H_UF16 3629 ////////////////////////////////////////////////////////////////////////// 3630 template <> 3631 struct FormatTraits<BC6H_UF16> 3632 : ComponentTraits<SWR_TYPE_UNORM, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 3633 { 3634 static const uint32_t bpp{128}; 3635 static const uint32_t numComps{1}; 3636 static const bool hasAlpha{true}; 3637 static const uint32_t alphaComp{3}; 3638 static const bool isSRGB{false}; 3639 static const bool isBC{true}; 3640 static const bool isSubsampled{false}; 3641 static const uint32_t bcWidth{4}; 3642 static const uint32_t bcHeight{4}; 3643 3644 typedef TransposeSingleComponent<8> TransposeT; 3645 typedef Format1<8> FormatT; 3646 }; 3647 3648 ////////////////////////////////////////////////////////////////////////// 3649 /// FormatTraits<R8G8B8_UNORM_SRGB> - Format traits specialization for R8G8B8_UNORM_SRGB 3650 ////////////////////////////////////////////////////////////////////////// 3651 template <> 3652 struct FormatTraits<R8G8B8_UNORM_SRGB> 3653 : ComponentTraits<SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8, SWR_TYPE_UNORM, 8>, 3654 FormatSwizzle<0, 1, 2>, 3655 Defaults<0, 0, 0, 0x3f800000> 3656 { 3657 static const uint32_t bpp{24}; 3658 static const uint32_t numComps{3}; 3659 static const bool hasAlpha{false}; 3660 static const uint32_t alphaComp{0}; 3661 static const bool isSRGB{true}; 3662 static const bool isBC{false}; 3663 static const bool isSubsampled{false}; 3664 static const uint32_t bcWidth{1}; 3665 static const uint32_t bcHeight{1}; 3666 3667 typedef Transpose8_8_8 TransposeT; 3668 typedef Format3<8, 8, 8> FormatT; 3669 }; 3670 3671 ////////////////////////////////////////////////////////////////////////// 3672 /// FormatTraits<R16G16B16_UINT> - Format traits specialization for R16G16B16_UINT 3673 ////////////////////////////////////////////////////////////////////////// 3674 template <> 3675 struct FormatTraits<R16G16B16_UINT> 3676 : ComponentTraits<SWR_TYPE_UINT, 16, SWR_TYPE_UINT, 16, SWR_TYPE_UINT, 16>, 3677 FormatSwizzle<0, 1, 2>, 3678 Defaults<0, 0, 0, 0x1> 3679 { 3680 static const uint32_t bpp{48}; 3681 static const uint32_t numComps{3}; 3682 static const bool hasAlpha{false}; 3683 static const uint32_t alphaComp{0}; 3684 static const bool isSRGB{false}; 3685 static const bool isBC{false}; 3686 static const bool isSubsampled{false}; 3687 static const uint32_t bcWidth{1}; 3688 static const uint32_t bcHeight{1}; 3689 3690 typedef Transpose16_16_16 TransposeT; 3691 typedef Format3<16, 16, 16> FormatT; 3692 }; 3693 3694 ////////////////////////////////////////////////////////////////////////// 3695 /// FormatTraits<R16G16B16_SINT> - Format traits specialization for R16G16B16_SINT 3696 ////////////////////////////////////////////////////////////////////////// 3697 template <> 3698 struct FormatTraits<R16G16B16_SINT> 3699 : ComponentTraits<SWR_TYPE_SINT, 16, SWR_TYPE_SINT, 16, SWR_TYPE_SINT, 16>, 3700 FormatSwizzle<0, 1, 2>, 3701 Defaults<0, 0, 0, 0x1> 3702 { 3703 static const uint32_t bpp{48}; 3704 static const uint32_t numComps{3}; 3705 static const bool hasAlpha{false}; 3706 static const uint32_t alphaComp{0}; 3707 static const bool isSRGB{false}; 3708 static const bool isBC{false}; 3709 static const bool isSubsampled{false}; 3710 static const uint32_t bcWidth{1}; 3711 static const uint32_t bcHeight{1}; 3712 3713 typedef Transpose16_16_16 TransposeT; 3714 typedef Format3<16, 16, 16> FormatT; 3715 }; 3716 3717 ////////////////////////////////////////////////////////////////////////// 3718 /// FormatTraits<R32_SFIXED> - Format traits specialization for R32_SFIXED 3719 ////////////////////////////////////////////////////////////////////////// 3720 template <> 3721 struct FormatTraits<R32_SFIXED> 3722 : ComponentTraits<SWR_TYPE_SFIXED, 32>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x3f800000> 3723 { 3724 static const uint32_t bpp{32}; 3725 static const uint32_t numComps{1}; 3726 static const bool hasAlpha{false}; 3727 static const uint32_t alphaComp{0}; 3728 static const bool isSRGB{false}; 3729 static const bool isBC{false}; 3730 static const bool isSubsampled{false}; 3731 static const uint32_t bcWidth{1}; 3732 static const uint32_t bcHeight{1}; 3733 3734 typedef TransposeSingleComponent<32> TransposeT; 3735 typedef Format1<32> FormatT; 3736 }; 3737 3738 ////////////////////////////////////////////////////////////////////////// 3739 /// FormatTraits<R10G10B10A2_SNORM> - Format traits specialization for R10G10B10A2_SNORM 3740 ////////////////////////////////////////////////////////////////////////// 3741 template <> 3742 struct FormatTraits<R10G10B10A2_SNORM> : ComponentTraits<SWR_TYPE_SNORM, 3743 10, 3744 SWR_TYPE_SNORM, 3745 10, 3746 SWR_TYPE_SNORM, 3747 10, 3748 SWR_TYPE_SNORM, 3749 2>, 3750 FormatSwizzle<0, 1, 2, 3>, 3751 Defaults<0, 0, 0, 0x3f800000> 3752 { 3753 static const uint32_t bpp{32}; 3754 static const uint32_t numComps{4}; 3755 static const bool hasAlpha{true}; 3756 static const uint32_t alphaComp{3}; 3757 static const bool isSRGB{false}; 3758 static const bool isBC{false}; 3759 static const bool isSubsampled{false}; 3760 static const uint32_t bcWidth{1}; 3761 static const uint32_t bcHeight{1}; 3762 3763 typedef Transpose10_10_10_2 TransposeT; 3764 typedef Format4<10, 10, 10, 2> FormatT; 3765 }; 3766 3767 ////////////////////////////////////////////////////////////////////////// 3768 /// FormatTraits<R10G10B10A2_USCALED> - Format traits specialization for R10G10B10A2_USCALED 3769 ////////////////////////////////////////////////////////////////////////// 3770 template <> 3771 struct FormatTraits<R10G10B10A2_USCALED> : ComponentTraits<SWR_TYPE_USCALED, 3772 10, 3773 SWR_TYPE_USCALED, 3774 10, 3775 SWR_TYPE_USCALED, 3776 10, 3777 SWR_TYPE_USCALED, 3778 2>, 3779 FormatSwizzle<0, 1, 2, 3>, 3780 Defaults<0, 0, 0, 0x3f800000> 3781 { 3782 static const uint32_t bpp{32}; 3783 static const uint32_t numComps{4}; 3784 static const bool hasAlpha{true}; 3785 static const uint32_t alphaComp{3}; 3786 static const bool isSRGB{false}; 3787 static const bool isBC{false}; 3788 static const bool isSubsampled{false}; 3789 static const uint32_t bcWidth{1}; 3790 static const uint32_t bcHeight{1}; 3791 3792 typedef Transpose10_10_10_2 TransposeT; 3793 typedef Format4<10, 10, 10, 2> FormatT; 3794 }; 3795 3796 ////////////////////////////////////////////////////////////////////////// 3797 /// FormatTraits<R10G10B10A2_SSCALED> - Format traits specialization for R10G10B10A2_SSCALED 3798 ////////////////////////////////////////////////////////////////////////// 3799 template <> 3800 struct FormatTraits<R10G10B10A2_SSCALED> : ComponentTraits<SWR_TYPE_SSCALED, 3801 10, 3802 SWR_TYPE_SSCALED, 3803 10, 3804 SWR_TYPE_SSCALED, 3805 10, 3806 SWR_TYPE_SSCALED, 3807 2>, 3808 FormatSwizzle<0, 1, 2, 3>, 3809 Defaults<0, 0, 0, 0x3f800000> 3810 { 3811 static const uint32_t bpp{32}; 3812 static const uint32_t numComps{4}; 3813 static const bool hasAlpha{true}; 3814 static const uint32_t alphaComp{3}; 3815 static const bool isSRGB{false}; 3816 static const bool isBC{false}; 3817 static const bool isSubsampled{false}; 3818 static const uint32_t bcWidth{1}; 3819 static const uint32_t bcHeight{1}; 3820 3821 typedef Transpose10_10_10_2 TransposeT; 3822 typedef Format4<10, 10, 10, 2> FormatT; 3823 }; 3824 3825 ////////////////////////////////////////////////////////////////////////// 3826 /// FormatTraits<R10G10B10A2_SINT> - Format traits specialization for R10G10B10A2_SINT 3827 ////////////////////////////////////////////////////////////////////////// 3828 template <> 3829 struct FormatTraits<R10G10B10A2_SINT> 3830 : ComponentTraits<SWR_TYPE_SINT, 10, SWR_TYPE_SINT, 10, SWR_TYPE_SINT, 10, SWR_TYPE_SINT, 2>, 3831 FormatSwizzle<0, 1, 2, 3>, 3832 Defaults<0, 0, 0, 0x1> 3833 { 3834 static const uint32_t bpp{32}; 3835 static const uint32_t numComps{4}; 3836 static const bool hasAlpha{true}; 3837 static const uint32_t alphaComp{3}; 3838 static const bool isSRGB{false}; 3839 static const bool isBC{false}; 3840 static const bool isSubsampled{false}; 3841 static const uint32_t bcWidth{1}; 3842 static const uint32_t bcHeight{1}; 3843 3844 typedef Transpose10_10_10_2 TransposeT; 3845 typedef Format4<10, 10, 10, 2> FormatT; 3846 }; 3847 3848 ////////////////////////////////////////////////////////////////////////// 3849 /// FormatTraits<B10G10R10A2_SNORM> - Format traits specialization for B10G10R10A2_SNORM 3850 ////////////////////////////////////////////////////////////////////////// 3851 template <> 3852 struct FormatTraits<B10G10R10A2_SNORM> : ComponentTraits<SWR_TYPE_SNORM, 3853 10, 3854 SWR_TYPE_SNORM, 3855 10, 3856 SWR_TYPE_SNORM, 3857 10, 3858 SWR_TYPE_SNORM, 3859 2>, 3860 FormatSwizzle<2, 1, 0, 3>, 3861 Defaults<0, 0, 0, 0x3f800000> 3862 { 3863 static const uint32_t bpp{32}; 3864 static const uint32_t numComps{4}; 3865 static const bool hasAlpha{true}; 3866 static const uint32_t alphaComp{3}; 3867 static const bool isSRGB{false}; 3868 static const bool isBC{false}; 3869 static const bool isSubsampled{false}; 3870 static const uint32_t bcWidth{1}; 3871 static const uint32_t bcHeight{1}; 3872 3873 typedef Transpose10_10_10_2 TransposeT; 3874 typedef Format4<10, 10, 10, 2> FormatT; 3875 }; 3876 3877 ////////////////////////////////////////////////////////////////////////// 3878 /// FormatTraits<B10G10R10A2_USCALED> - Format traits specialization for B10G10R10A2_USCALED 3879 ////////////////////////////////////////////////////////////////////////// 3880 template <> 3881 struct FormatTraits<B10G10R10A2_USCALED> : ComponentTraits<SWR_TYPE_USCALED, 3882 10, 3883 SWR_TYPE_USCALED, 3884 10, 3885 SWR_TYPE_USCALED, 3886 10, 3887 SWR_TYPE_USCALED, 3888 2>, 3889 FormatSwizzle<2, 1, 0, 3>, 3890 Defaults<0, 0, 0, 0x3f800000> 3891 { 3892 static const uint32_t bpp{32}; 3893 static const uint32_t numComps{4}; 3894 static const bool hasAlpha{true}; 3895 static const uint32_t alphaComp{3}; 3896 static const bool isSRGB{false}; 3897 static const bool isBC{false}; 3898 static const bool isSubsampled{false}; 3899 static const uint32_t bcWidth{1}; 3900 static const uint32_t bcHeight{1}; 3901 3902 typedef Transpose10_10_10_2 TransposeT; 3903 typedef Format4<10, 10, 10, 2> FormatT; 3904 }; 3905 3906 ////////////////////////////////////////////////////////////////////////// 3907 /// FormatTraits<B10G10R10A2_SSCALED> - Format traits specialization for B10G10R10A2_SSCALED 3908 ////////////////////////////////////////////////////////////////////////// 3909 template <> 3910 struct FormatTraits<B10G10R10A2_SSCALED> : ComponentTraits<SWR_TYPE_SSCALED, 3911 10, 3912 SWR_TYPE_SSCALED, 3913 10, 3914 SWR_TYPE_SSCALED, 3915 10, 3916 SWR_TYPE_SSCALED, 3917 2>, 3918 FormatSwizzle<2, 1, 0, 3>, 3919 Defaults<0, 0, 0, 0x3f800000> 3920 { 3921 static const uint32_t bpp{32}; 3922 static const uint32_t numComps{4}; 3923 static const bool hasAlpha{true}; 3924 static const uint32_t alphaComp{3}; 3925 static const bool isSRGB{false}; 3926 static const bool isBC{false}; 3927 static const bool isSubsampled{false}; 3928 static const uint32_t bcWidth{1}; 3929 static const uint32_t bcHeight{1}; 3930 3931 typedef Transpose10_10_10_2 TransposeT; 3932 typedef Format4<10, 10, 10, 2> FormatT; 3933 }; 3934 3935 ////////////////////////////////////////////////////////////////////////// 3936 /// FormatTraits<B10G10R10A2_UINT> - Format traits specialization for B10G10R10A2_UINT 3937 ////////////////////////////////////////////////////////////////////////// 3938 template <> 3939 struct FormatTraits<B10G10R10A2_UINT> 3940 : ComponentTraits<SWR_TYPE_UINT, 10, SWR_TYPE_UINT, 10, SWR_TYPE_UINT, 10, SWR_TYPE_UINT, 2>, 3941 FormatSwizzle<2, 1, 0, 3>, 3942 Defaults<0, 0, 0, 0x1> 3943 { 3944 static const uint32_t bpp{32}; 3945 static const uint32_t numComps{4}; 3946 static const bool hasAlpha{true}; 3947 static const uint32_t alphaComp{3}; 3948 static const bool isSRGB{false}; 3949 static const bool isBC{false}; 3950 static const bool isSubsampled{false}; 3951 static const uint32_t bcWidth{1}; 3952 static const uint32_t bcHeight{1}; 3953 3954 typedef Transpose10_10_10_2 TransposeT; 3955 typedef Format4<10, 10, 10, 2> FormatT; 3956 }; 3957 3958 ////////////////////////////////////////////////////////////////////////// 3959 /// FormatTraits<B10G10R10A2_SINT> - Format traits specialization for B10G10R10A2_SINT 3960 ////////////////////////////////////////////////////////////////////////// 3961 template <> 3962 struct FormatTraits<B10G10R10A2_SINT> 3963 : ComponentTraits<SWR_TYPE_SINT, 10, SWR_TYPE_SINT, 10, SWR_TYPE_SINT, 10, SWR_TYPE_SINT, 2>, 3964 FormatSwizzle<2, 1, 0, 3>, 3965 Defaults<0, 0, 0, 0x1> 3966 { 3967 static const uint32_t bpp{32}; 3968 static const uint32_t numComps{4}; 3969 static const bool hasAlpha{true}; 3970 static const uint32_t alphaComp{3}; 3971 static const bool isSRGB{false}; 3972 static const bool isBC{false}; 3973 static const bool isSubsampled{false}; 3974 static const uint32_t bcWidth{1}; 3975 static const uint32_t bcHeight{1}; 3976 3977 typedef Transpose10_10_10_2 TransposeT; 3978 typedef Format4<10, 10, 10, 2> FormatT; 3979 }; 3980 3981 ////////////////////////////////////////////////////////////////////////// 3982 /// FormatTraits<R8G8B8_UINT> - Format traits specialization for R8G8B8_UINT 3983 ////////////////////////////////////////////////////////////////////////// 3984 template <> 3985 struct FormatTraits<R8G8B8_UINT> 3986 : ComponentTraits<SWR_TYPE_UINT, 8, SWR_TYPE_UINT, 8, SWR_TYPE_UINT, 8>, 3987 FormatSwizzle<0, 1, 2>, 3988 Defaults<0, 0, 0, 0x1> 3989 { 3990 static const uint32_t bpp{24}; 3991 static const uint32_t numComps{3}; 3992 static const bool hasAlpha{false}; 3993 static const uint32_t alphaComp{0}; 3994 static const bool isSRGB{false}; 3995 static const bool isBC{false}; 3996 static const bool isSubsampled{false}; 3997 static const uint32_t bcWidth{1}; 3998 static const uint32_t bcHeight{1}; 3999 4000 typedef Transpose8_8_8 TransposeT; 4001 typedef Format3<8, 8, 8> FormatT; 4002 }; 4003 4004 ////////////////////////////////////////////////////////////////////////// 4005 /// FormatTraits<R8G8B8_SINT> - Format traits specialization for R8G8B8_SINT 4006 ////////////////////////////////////////////////////////////////////////// 4007 template <> 4008 struct FormatTraits<R8G8B8_SINT> 4009 : ComponentTraits<SWR_TYPE_SINT, 8, SWR_TYPE_SINT, 8, SWR_TYPE_SINT, 8>, 4010 FormatSwizzle<0, 1, 2>, 4011 Defaults<0, 0, 0, 0x1> 4012 { 4013 static const uint32_t bpp{24}; 4014 static const uint32_t numComps{3}; 4015 static const bool hasAlpha{false}; 4016 static const uint32_t alphaComp{0}; 4017 static const bool isSRGB{false}; 4018 static const bool isBC{false}; 4019 static const bool isSubsampled{false}; 4020 static const uint32_t bcWidth{1}; 4021 static const uint32_t bcHeight{1}; 4022 4023 typedef Transpose8_8_8 TransposeT; 4024 typedef Format3<8, 8, 8> FormatT; 4025 }; 4026 4027 ////////////////////////////////////////////////////////////////////////// 4028 /// FormatTraits<RAW> - Format traits specialization for RAW 4029 ////////////////////////////////////////////////////////////////////////// 4030 template <> 4031 struct FormatTraits<RAW> 4032 : ComponentTraits<SWR_TYPE_UINT, 8>, FormatSwizzle<0>, Defaults<0, 0, 0, 0x1> 4033 { 4034 static const uint32_t bpp{8}; 4035 static const uint32_t numComps{1}; 4036 static const bool hasAlpha{false}; 4037 static const uint32_t alphaComp{3}; 4038 static const bool isSRGB{false}; 4039 static const bool isBC{false}; 4040 static const bool isSubsampled{false}; 4041 static const uint32_t bcWidth{1}; 4042 static const uint32_t bcHeight{1}; 4043 4044 typedef TransposeSingleComponent<8> TransposeT; 4045 typedef Format1<8> FormatT; 4046 }; 4047