/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef API_BASE_FORMATS_H
#define API_BASE_FORMATS_H

#include <cstdint>

#include <base/namespace.h>

BASE_BEGIN_NAMESPACE()
/** \addtogroup group_formats
 *  @{
 */
/** Format */
enum Format {
    /** Undefined */
    BASE_FORMAT_UNDEFINED = 0,
    /** R4G4 UNORM PACK8 */
    BASE_FORMAT_R4G4_UNORM_PACK8 = 1,
    /** R4G4B4A4 UNORM PACK16 */
    BASE_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
    /** B4G4R4A4 UNORM PACK16 */
    BASE_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
    /** R5G6B5 UNORM PACK16 */
    BASE_FORMAT_R5G6B5_UNORM_PACK16 = 4,
    /** B5G6R5 UNORM PACK16 */
    BASE_FORMAT_B5G6R5_UNORM_PACK16 = 5,
    /** R5G5B5A1 UNORM PACK16 */
    BASE_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
    /** B5G5R5A1 UNORM PACK16 */
    BASE_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
    /** A1R5G5B5 UNORM PACK16 */
    BASE_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
    /** R8 UNORM */
    BASE_FORMAT_R8_UNORM = 9,
    /** R8 SNORM */
    BASE_FORMAT_R8_SNORM = 10,
    /** R8 USCALED */
    BASE_FORMAT_R8_USCALED = 11,
    /** R8 SSCALED */
    BASE_FORMAT_R8_SSCALED = 12,
    /** R8 UINT */
    BASE_FORMAT_R8_UINT = 13,
    /** R8 SINT */
    BASE_FORMAT_R8_SINT = 14,
    /** R8 SRGB */
    BASE_FORMAT_R8_SRGB = 15,
    /** R8G8 UNORM */
    BASE_FORMAT_R8G8_UNORM = 16,
    /** R8G8 SNORM */
    BASE_FORMAT_R8G8_SNORM = 17,
    /** R8G8 USCALED */
    BASE_FORMAT_R8G8_USCALED = 18,
    /** R8G8 SSCALED */
    BASE_FORMAT_R8G8_SSCALED = 19,
    /** R8G8 UINT */
    BASE_FORMAT_R8G8_UINT = 20,
    /** R8G8 SINT */
    BASE_FORMAT_R8G8_SINT = 21,
    /** R8G8 SRGB */
    BASE_FORMAT_R8G8_SRGB = 22,
    /** R8G8B8 UNORM */
    BASE_FORMAT_R8G8B8_UNORM = 23,
    /** R8G8B8 SNORM */
    BASE_FORMAT_R8G8B8_SNORM = 24,
    /** R8G8B8 USCALED */
    BASE_FORMAT_R8G8B8_USCALED = 25,
    /** R8G8B8 SSCALED */
    BASE_FORMAT_R8G8B8_SSCALED = 26,
    /** R8G8B8 UINT */
    BASE_FORMAT_R8G8B8_UINT = 27,
    /** R8G8B8 SINT */
    BASE_FORMAT_R8G8B8_SINT = 28,
    /** R8G8B8 SRGB */
    BASE_FORMAT_R8G8B8_SRGB = 29,
    /** B8G8R8 UNORM */
    BASE_FORMAT_B8G8R8_UNORM = 30,
    /** B8G8R8 SNORM */
    BASE_FORMAT_B8G8R8_SNORM = 31,
    /** B8G8R8 SNORM */
    BASE_FORMAT_B8G8R8_USCALED = 32,
    /** B8G8R8 SNORM */
    BASE_FORMAT_B8G8R8_SSCALED = 33,
    /** B8G8R8 UINT */
    BASE_FORMAT_B8G8R8_UINT = 34,
    /** B8G8R8 SINT */
    BASE_FORMAT_B8G8R8_SINT = 35,
    /** B8G8R8 SRGB */
    BASE_FORMAT_B8G8R8_SRGB = 36,
    /** R8G8B8A8 UNORM */
    BASE_FORMAT_R8G8B8A8_UNORM = 37,
    /** R8G8B8A8 SNORM */
    BASE_FORMAT_R8G8B8A8_SNORM = 38,
    /** R8G8B8A8 USCALED */
    BASE_FORMAT_R8G8B8A8_USCALED = 39,
    /** R8G8B8A8 SSCALED */
    BASE_FORMAT_R8G8B8A8_SSCALED = 40,
    /** R8G8B8A8 UINT */
    BASE_FORMAT_R8G8B8A8_UINT = 41,
    /** R8G8B8A8 SINT */
    BASE_FORMAT_R8G8B8A8_SINT = 42,
    /** R8G8B8A8 SRGB */
    BASE_FORMAT_R8G8B8A8_SRGB = 43,
    /** B8G8R8A8 UNORM */
    BASE_FORMAT_B8G8R8A8_UNORM = 44,
    /** B8G8R8A8 SNORM */
    BASE_FORMAT_B8G8R8A8_SNORM = 45,
    /** B8G8R8A8 USCALED */
    BASE_FORMAT_B8G8R8A8_USCALED = 46,
    /** B8G8R8A8 SSCALED */
    BASE_FORMAT_B8G8R8A8_SSCALED = 47,
    /** B8G8R8A8 UINT */
    BASE_FORMAT_B8G8R8A8_UINT = 48,
    /** B8G8R8A8 SINT */
    BASE_FORMAT_B8G8R8A8_SINT = 49,
    /** FORMAT B8G8R8A8 SRGB */
    BASE_FORMAT_B8G8R8A8_SRGB = 50,
    /** A8B8G8R8 UNORM PACK32 */
    BASE_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
    /** A8B8G8R8 SNORM PACK32 */
    BASE_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
    /** A8B8G8R8 USCALED PACK32 */
    BASE_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
    /** A8B8G8R8 SSCALED PACK32 */
    BASE_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
    /** A8B8G8R8 UINT PACK32 */
    BASE_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
    /** A8B8G8R8 SINT PACK32 */
    BASE_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
    /** A8B8G8R8 SRGB PACK32 */
    BASE_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
    /** A2R10G10B10 UNORM PACK32 */
    BASE_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
    /** A2R10G10B10 SNORM PACK32 */
    BASE_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
    /** A2R10G10B10 USCALED PACK32 */
    BASE_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
    /** A2R10G10B10 SSCALED PACK32 */
    BASE_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
    /** A2R10G10B10 UINT PACK32 */
    BASE_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
    /** A2R10G10B10 SINT PACK32 */
    BASE_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
    /** A2B10G10R10 UNORM PACK32 */
    BASE_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
    /** A2B10G10R10 SNORM PACK32 */
    BASE_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
    /** A2B10G10R10 USCALED PACK32 */
    BASE_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
    /** A2B10G10R10 SSCALED PACK32 */
    BASE_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
    /** A2B10G10R10 UINT PACK32 */
    BASE_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
    /** A2B10G10R10 SINT PACK32 */
    BASE_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
    /** R16 UNORM */
    BASE_FORMAT_R16_UNORM = 70,
    /** R16 SNORM */
    BASE_FORMAT_R16_SNORM = 71,
    /** R16 USCALED */
    BASE_FORMAT_R16_USCALED = 72,
    /** R16 SSCALED */
    BASE_FORMAT_R16_SSCALED = 73,
    /** R16 UINT */
    BASE_FORMAT_R16_UINT = 74,
    /** R16 SINT */
    BASE_FORMAT_R16_SINT = 75,
    /** R16 SFLOAT */
    BASE_FORMAT_R16_SFLOAT = 76,
    /** R16G16 UNORM */
    BASE_FORMAT_R16G16_UNORM = 77,
    /** R16G16 SNORM */
    BASE_FORMAT_R16G16_SNORM = 78,
    /** R16G16 USCALED */
    BASE_FORMAT_R16G16_USCALED = 79,
    /** R16G16 SSCALED */
    BASE_FORMAT_R16G16_SSCALED = 80,
    /** R16G16 UINT */
    BASE_FORMAT_R16G16_UINT = 81,
    /** R16G16 SINT */
    BASE_FORMAT_R16G16_SINT = 82,
    /** R16G16 SFLOAT */
    BASE_FORMAT_R16G16_SFLOAT = 83,
    /** R16G16B16 UNORM */
    BASE_FORMAT_R16G16B16_UNORM = 84,
    /** R16G16B16 SNORM */
    BASE_FORMAT_R16G16B16_SNORM = 85,
    /** R16G16B16 USCALED */
    BASE_FORMAT_R16G16B16_USCALED = 86,
    /** R16G16B16 SSCALED */
    BASE_FORMAT_R16G16B16_SSCALED = 87,
    /** R16G16B16 UINT */
    BASE_FORMAT_R16G16B16_UINT = 88,
    /** R16G16B16 SINT */
    BASE_FORMAT_R16G16B16_SINT = 89,
    /** R16G16B16 SFLOAT */
    BASE_FORMAT_R16G16B16_SFLOAT = 90,
    /** R16G16B16A16 UNORM */
    BASE_FORMAT_R16G16B16A16_UNORM = 91,
    /** R16G16B16A16 SNORM */
    BASE_FORMAT_R16G16B16A16_SNORM = 92,
    /** R16G16B16A16 USCALED */
    BASE_FORMAT_R16G16B16A16_USCALED = 93,
    /** R16G16B16A16 SSCALED */
    BASE_FORMAT_R16G16B16A16_SSCALED = 94,
    /** R16G16B16A16 UINT */
    BASE_FORMAT_R16G16B16A16_UINT = 95,
    /** R16G16B16A16 SINT */
    BASE_FORMAT_R16G16B16A16_SINT = 96,
    /** R16G16B16A16 SFLOAT */
    BASE_FORMAT_R16G16B16A16_SFLOAT = 97,
    /** R32 UINT */
    BASE_FORMAT_R32_UINT = 98,
    /** R32 SINT */
    BASE_FORMAT_R32_SINT = 99,
    /** R32 SFLOAT */
    BASE_FORMAT_R32_SFLOAT = 100,
    /** R32G32 UINT */
    BASE_FORMAT_R32G32_UINT = 101,
    /** R32G32 SINT */
    BASE_FORMAT_R32G32_SINT = 102,
    /** R32G32 SFLOAT */
    BASE_FORMAT_R32G32_SFLOAT = 103,
    /** R32G32B32 UINT */
    BASE_FORMAT_R32G32B32_UINT = 104,
    /** R32G32B32 SINT */
    BASE_FORMAT_R32G32B32_SINT = 105,
    /** R32G32B32 SFLOAT */
    BASE_FORMAT_R32G32B32_SFLOAT = 106,
    /** R32G32B32A32 UINT */
    BASE_FORMAT_R32G32B32A32_UINT = 107,
    /** R32G32B32A32 SINT */
    BASE_FORMAT_R32G32B32A32_SINT = 108,
    /** R32G32B32A32 SFLOAT */
    BASE_FORMAT_R32G32B32A32_SFLOAT = 109,
    /** R64 UINT */
    BASE_FORMAT_R64_UINT = 110,
    /** R64 SINT */
    BASE_FORMAT_R64_SINT = 111,
    /** R64 SFLOAT */
    BASE_FORMAT_R64_SFLOAT = 112,
    /** R64G64 UINT */
    BASE_FORMAT_R64G64_UINT = 113,
    /** R64G64 SINT */
    BASE_FORMAT_R64G64_SINT = 114,
    /** R64G64 SFLOAT */
    BASE_FORMAT_R64G64_SFLOAT = 115,
    /** R64G64B64 UINT */
    BASE_FORMAT_R64G64B64_UINT = 116,
    /** R64G64B64 SINT */
    BASE_FORMAT_R64G64B64_SINT = 117,
    /** R64G64B64 SFLOAT */
    BASE_FORMAT_R64G64B64_SFLOAT = 118,
    /** R64G64B64A64 UINT */
    BASE_FORMAT_R64G64B64A64_UINT = 119,
    /** R64G64B64A64 SINT */
    BASE_FORMAT_R64G64B64A64_SINT = 120,
    /** R32G32B32A32 SFLOAT */
    BASE_FORMAT_R64G64B64A64_SFLOAT = 121,
    /** B10G11R11 UFLOAT PACK32 */
    BASE_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
    /** E5B9G9R9 UFLOAT PACK32 */
    BASE_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
    /** D16 UNORM */
    BASE_FORMAT_D16_UNORM = 124,
    /** X8 D24 UNORM PACK32 */
    BASE_FORMAT_X8_D24_UNORM_PACK32 = 125,
    /** D32 SFLOAT */
    BASE_FORMAT_D32_SFLOAT = 126,
    /** S8 UINT */
    BASE_FORMAT_S8_UINT = 127,
    /** D16 UNORM S8 UINT */
    BASE_FORMAT_D16_UNORM_S8_UINT = 128,
    /** D24 UNORM S8 UINT */
    BASE_FORMAT_D24_UNORM_S8_UINT = 129,
    /** D32 SFLOAT S8 UINT */
    BASE_FORMAT_D32_SFLOAT_S8_UINT = 130,
    /** BC1 RGB UNORM BLOCK */
    BASE_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
    /** BC1 RGB SRGB BLOCK */
    BASE_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
    /** BC1 RGBA UNORM BLOCK */
    BASE_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
    /** BC1 RGBA SRGB BLOCK */
    BASE_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
    /** BC2 UNORM BLOCK */
    BASE_FORMAT_BC2_UNORM_BLOCK = 135,
    /** BC2 SRGB BLOCK */
    BASE_FORMAT_BC2_SRGB_BLOCK = 136,
    /** BC3 UNORM BLOCK */
    BASE_FORMAT_BC3_UNORM_BLOCK = 137,
    /** BC3 SRGB BLOCK */
    BASE_FORMAT_BC3_SRGB_BLOCK = 138,
    /** BC4 UNORM BLOCK */
    BASE_FORMAT_BC4_UNORM_BLOCK = 139,
    /** BC4 SNORM BLOCK */
    BASE_FORMAT_BC4_SNORM_BLOCK = 140,
    /** BC5 UNORM BLOCK */
    BASE_FORMAT_BC5_UNORM_BLOCK = 141,
    /** BC5 SNORM BLOCK */
    BASE_FORMAT_BC5_SNORM_BLOCK = 142,
    /** BC6H UFLOAT BLOCK */
    BASE_FORMAT_BC6H_UFLOAT_BLOCK = 143,
    /** BC6H SFLOAT BLOCK */
    BASE_FORMAT_BC6H_SFLOAT_BLOCK = 144,
    /** BC7 UNORM BLOCK */
    BASE_FORMAT_BC7_UNORM_BLOCK = 145,
    /** BC7 SRGB BLOCK */
    BASE_FORMAT_BC7_SRGB_BLOCK = 146,
    /** ETC2 R8G8B8 UNORM BLOCK */
    BASE_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
    /** ETC2 R8G8B8 SRGB BLOCK */
    BASE_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
    /** ETC2 R8G8B8A1 UNORM BLOCK */
    BASE_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
    /** ETC2 R8G8B8A1 SRGB BLOCK */
    BASE_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
    /** ETC2 R8G8B8A8 UNORM BLOCK */
    BASE_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
    /** ETC2 R8G8B8A8 SRGB BLOCK */
    BASE_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
    /** EAC R11 UNORM BLOCK */
    BASE_FORMAT_EAC_R11_UNORM_BLOCK = 153,
    /** EAC R11 SNORM BLOCK */
    BASE_FORMAT_EAC_R11_SNORM_BLOCK = 154,
    /** EAC R11G11 UNORM BLOCK */
    BASE_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
    /** EAC R11G11 SNORM BLOCK */
    BASE_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
    /** ASTC 4x4 UNORM BLOCK */
    BASE_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
    /** ASTC 4x4 SRGB BLOCK */
    BASE_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
    /** ASTC 5x4 UNORM BLOCK */
    BASE_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
    /** ASTC 5x4 SRGB BLOCK */
    BASE_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
    /** ASTC 5x5 UNORM BLOCK */
    BASE_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
    /** ASTC 5x5 SRGB BLOCK */
    BASE_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
    /** ASTC 6x5 UNORM BLOCK */
    BASE_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
    /** ASTC 6x5 SRGB BLOCK */
    BASE_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
    /** ASTC 6x6 UNORM BLOCK */
    BASE_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
    /** ASTC 6x6 SRGB BLOCK */
    BASE_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
    /** ASTC 8x5 UNORM BLOCK */
    BASE_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
    /** ASTC 8x5 SRGB BLOCK */
    BASE_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
    /** ASTC 8x6 UNORM BLOCK */
    BASE_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
    /** ASTC 8x6 SRGB BLOCK */
    BASE_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
    /** ASTC 8x8 UNORM BLOCK */
    BASE_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
    /** ASTC 8x8 SRGB BLOCK */
    BASE_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
    /** ASTC 10x5 UNORM BLOCK */
    BASE_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
    /** ASTC 10x5 SRGB BLOCK */
    BASE_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
    /** ASTC 10x6 UNORM BLOCK */
    BASE_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
    /** ASTC 10x6 SRGB BLOCK */
    BASE_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
    /** ASTC 10x8 UNORM BLOCK */
    BASE_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
    /** ASTC 10x8 SRGB BLOCK */
    BASE_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
    /** ASTC 10x10 UNORM BLOCK */
    BASE_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
    /** ASTC 10x10 SRGB BLOCK */
    BASE_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
    /** ASTC 12x10 UNORM BLOCK */
    BASE_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
    /** ASTC 12x10 SRGB BLOCK */
    BASE_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
    /** ASTC 12x12 UNORM BLOCK */
    BASE_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
    /** ASTC 12x12 SRGB BLOCK */
    BASE_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
    /** G8B8G8R8 422 UNORM */
    BASE_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
    /** B8G8R8G8 422 UNORM */
    BASE_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
    /** G8 B8 R8 3PLANE 420 UNORM */
    BASE_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
    /** G8 B8R8 2PLANE 420 UNORM */
    BASE_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
    /** G8 B8 R8 3PLANE 422 UNORM */
    BASE_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
    /** G8 B8R8 2PLANE 422 UNORM */
    BASE_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
    /** G8 B8R8 3PLANE 444 UNORM */
    BASE_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
    /** Max enumeration */
};
/** @} */
BASE_END_NAMESPACE()

#endif // API_BASE_FORMATS_H