/**************************************************************************** * Copyright (C) 2016 Intel Corporation. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. * * @file formats.h * * @brief auto-generated file * * DO NOT EDIT * ******************************************************************************/ #pragma once #include "common/os.h" ////////////////////////////////////////////////////////////////////////// /// SWR_TYPE - Format component type ////////////////////////////////////////////////////////////////////////// enum SWR_TYPE { SWR_TYPE_UNKNOWN, SWR_TYPE_UNUSED, SWR_TYPE_UNORM, SWR_TYPE_SNORM, SWR_TYPE_UINT, SWR_TYPE_SINT, SWR_TYPE_FLOAT, SWR_TYPE_SSCALED, SWR_TYPE_USCALED, SWR_TYPE_SFIXED, }; ////////////////////////////////////////////////////////////////////////// /// SWR_FORMAT ////////////////////////////////////////////////////////////////////////// enum SWR_FORMAT { R32G32B32A32_FLOAT = 0x0, R32G32B32A32_SINT = 0x1, R32G32B32A32_UINT = 0x2, R64G64_FLOAT = 0x5, R32G32B32X32_FLOAT = 0x6, R32G32B32A32_SSCALED = 0x7, R32G32B32A32_USCALED = 0x8, R32G32B32A32_SFIXED = 0x20, R32G32B32_FLOAT = 0x40, R32G32B32_SINT = 0x41, R32G32B32_UINT = 0x42, R32G32B32_SSCALED = 0x45, R32G32B32_USCALED = 0x46, R32G32B32_SFIXED = 0x50, R16G16B16A16_UNORM = 0x80, R16G16B16A16_SNORM = 0x81, R16G16B16A16_SINT = 0x82, R16G16B16A16_UINT = 0x83, R16G16B16A16_FLOAT = 0x84, R32G32_FLOAT = 0x85, R32G32_SINT = 0x86, R32G32_UINT = 0x87, R32_FLOAT_X8X24_TYPELESS = 0x88, X32_TYPELESS_G8X24_UINT = 0x89, L32A32_FLOAT = 0x8A, R64_FLOAT = 0x8D, R16G16B16X16_UNORM = 0x8E, R16G16B16X16_FLOAT = 0x8F, L32X32_FLOAT = 0x91, I32X32_FLOAT = 0x92, R16G16B16A16_SSCALED = 0x93, R16G16B16A16_USCALED = 0x94, R32G32_SSCALED = 0x95, R32G32_USCALED = 0x96, R32G32_SFIXED = 0xA0, B8G8R8A8_UNORM = 0xC0, B8G8R8A8_UNORM_SRGB = 0xC1, R10G10B10A2_UNORM = 0xC2, R10G10B10A2_UNORM_SRGB = 0xC3, R10G10B10A2_UINT = 0xC4, R8G8B8A8_UNORM = 0xC7, R8G8B8A8_UNORM_SRGB = 0xC8, R8G8B8A8_SNORM = 0xC9, R8G8B8A8_SINT = 0xCA, R8G8B8A8_UINT = 0xCB, R16G16_UNORM = 0xCC, R16G16_SNORM = 0xCD, R16G16_SINT = 0xCE, R16G16_UINT = 0xCF, R16G16_FLOAT = 0xD0, B10G10R10A2_UNORM = 0xD1, B10G10R10A2_UNORM_SRGB = 0xD2, R11G11B10_FLOAT = 0xD3, R10G10B10_FLOAT_A2_UNORM = 0xD5, R32_SINT = 0xD6, R32_UINT = 0xD7, R32_FLOAT = 0xD8, R24_UNORM_X8_TYPELESS = 0xD9, X24_TYPELESS_G8_UINT = 0xDA, L32_UNORM = 0xDD, L16A16_UNORM = 0xDF, I24X8_UNORM = 0xE0, L24X8_UNORM = 0xE1, I32_FLOAT = 0xE3, L32_FLOAT = 0xE4, A32_FLOAT = 0xE5, B8G8R8X8_UNORM = 0xE9, B8G8R8X8_UNORM_SRGB = 0xEA, R8G8B8X8_UNORM = 0xEB, R8G8B8X8_UNORM_SRGB = 0xEC, R9G9B9E5_SHAREDEXP = 0xED, B10G10R10X2_UNORM = 0xEE, L16A16_FLOAT = 0xF0, R10G10B10X2_USCALED = 0xF3, R8G8B8A8_SSCALED = 0xF4, R8G8B8A8_USCALED = 0xF5, R16G16_SSCALED = 0xF6, R16G16_USCALED = 0xF7, R32_SSCALED = 0xF8, R32_USCALED = 0xF9, B5G6R5_UNORM = 0x100, B5G6R5_UNORM_SRGB = 0x101, B5G5R5A1_UNORM = 0x102, B5G5R5A1_UNORM_SRGB = 0x103, B4G4R4A4_UNORM = 0x104, B4G4R4A4_UNORM_SRGB = 0x105, R8G8_UNORM = 0x106, R8G8_SNORM = 0x107, R8G8_SINT = 0x108, R8G8_UINT = 0x109, R16_UNORM = 0x10A, R16_SNORM = 0x10B, R16_SINT = 0x10C, R16_UINT = 0x10D, R16_FLOAT = 0x10E, I16_UNORM = 0x111, L16_UNORM = 0x112, A16_UNORM = 0x113, L8A8_UNORM = 0x114, I16_FLOAT = 0x115, L16_FLOAT = 0x116, A16_FLOAT = 0x117, L8A8_UNORM_SRGB = 0x118, B5G5R5X1_UNORM = 0x11A, B5G5R5X1_UNORM_SRGB = 0x11B, R8G8_SSCALED = 0x11C, R8G8_USCALED = 0x11D, R16_SSCALED = 0x11E, R16_USCALED = 0x11F, A1B5G5R5_UNORM = 0x124, A4B4G4R4_UNORM = 0x125, L8A8_UINT = 0x126, L8A8_SINT = 0x127, R8_UNORM = 0x140, R8_SNORM = 0x141, R8_SINT = 0x142, R8_UINT = 0x143, A8_UNORM = 0x144, I8_UNORM = 0x145, L8_UNORM = 0x146, R8_SSCALED = 0x149, R8_USCALED = 0x14A, L8_UNORM_SRGB = 0x14C, L8_UINT = 0x152, L8_SINT = 0x153, I8_UINT = 0x154, I8_SINT = 0x155, DXT1_RGB_SRGB = 0x180, YCRCB_SWAPUVY = 0x183, BC1_UNORM = 0x186, BC2_UNORM = 0x187, BC3_UNORM = 0x188, BC4_UNORM = 0x189, BC5_UNORM = 0x18A, BC1_UNORM_SRGB = 0x18B, BC2_UNORM_SRGB = 0x18C, BC3_UNORM_SRGB = 0x18D, YCRCB_SWAPUV = 0x18F, DXT1_RGB = 0x191, R8G8B8_UNORM = 0x193, R8G8B8_SNORM = 0x194, R8G8B8_SSCALED = 0x195, R8G8B8_USCALED = 0x196, R64G64B64A64_FLOAT = 0x197, R64G64B64_FLOAT = 0x198, BC4_SNORM = 0x199, BC5_SNORM = 0x19A, R16G16B16_FLOAT = 0x19B, R16G16B16_UNORM = 0x19C, R16G16B16_SNORM = 0x19D, R16G16B16_SSCALED = 0x19E, R16G16B16_USCALED = 0x19F, BC6H_SF16 = 0x1A1, BC7_UNORM = 0x1A2, BC7_UNORM_SRGB = 0x1A3, BC6H_UF16 = 0x1A4, R8G8B8_UNORM_SRGB = 0x1A8, R16G16B16_UINT = 0x1B0, R16G16B16_SINT = 0x1B1, R32_SFIXED = 0x1B2, R10G10B10A2_SNORM = 0x1B3, R10G10B10A2_USCALED = 0x1B4, R10G10B10A2_SSCALED = 0x1B5, R10G10B10A2_SINT = 0x1B6, B10G10R10A2_SNORM = 0x1B7, B10G10R10A2_USCALED = 0x1B8, B10G10R10A2_SSCALED = 0x1B9, B10G10R10A2_UINT = 0x1BA, B10G10R10A2_SINT = 0x1BB, R8G8B8_UINT = 0x1C8, R8G8B8_SINT = 0x1C9, RAW = 0x1FF, NUM_SWR_FORMATS = 0x200, }; ////////////////////////////////////////////////////////////////////////// /// SWR_FORMAT_INFO - Format information ////////////////////////////////////////////////////////////////////////// struct SWR_FORMAT_INFO { const char* name; SWR_TYPE type[4]; uint32_t defaults[4]; uint32_t swizzle[4]; ///< swizzle per component uint32_t bpc[4]; ///< bits per component uint32_t bpp; ///< bits per pixel uint32_t Bpp; ///< bytes per pixel uint32_t numComps; ///< number of components bool isSRGB; bool isBC; bool isSubsampled; bool isLuminance; bool isNormalized[4]; float toFloat[4]; uint32_t bcWidth; uint32_t bcHeight; }; extern const SWR_FORMAT_INFO gFormatInfo[NUM_SWR_FORMATS]; ////////////////////////////////////////////////////////////////////////// /// @brief Retrieves format info struct for given format. /// @param format - SWR format INLINE const SWR_FORMAT_INFO& GetFormatInfo(SWR_FORMAT format) { SWR_ASSERT(format < NUM_SWR_FORMATS, "Invalid Surface Format: %d", format); SWR_ASSERT(gFormatInfo[format].name != nullptr, "Invalid Surface Format: %d", format); return gFormatInfo[format]; } // lookup table for unorm8 srgb -> float conversion extern const uint32_t srgb8Table[256];