diff options
| author | Chia-I Wu <olvaffe@gmail.com> | 2014-10-08 09:12:58 +0800 |
|---|---|---|
| committer | Chia-I Wu <olvaffe@gmail.com> | 2014-10-08 10:23:27 +0800 |
| commit | d94e6eb32541d3a269b7fcde34aed68c55e4a39c (patch) | |
| tree | 4d5f8c3cffd2075f284e8676dbe08d9240fcc6e3 | |
| parent | 34fa2b5e17d925ac546c63dc45fe92aa10cfe556 (diff) | |
| download | usermoji-d94e6eb32541d3a269b7fcde34aed68c55e4a39c.tar.xz | |
icd: add icd_format_get_channel_count
| -rw-r--r-- | icd/common/icd-format.c | 68 | ||||
| -rw-r--r-- | icd/common/icd-format.h | 4 |
2 files changed, 40 insertions, 32 deletions
diff --git a/icd/common/icd-format.c b/icd/common/icd-format.c index 079d21f1..f7314d7e 100644 --- a/icd/common/icd-format.c +++ b/icd/common/icd-format.c @@ -29,41 +29,47 @@ static const struct icd_format_info { XGL_SIZE size; + XGL_UINT channel_count; } icd_format_table[XGL_MAX_CH_FMT + 1] = { - [XGL_CH_FMT_UNDEFINED] = { 0 }, - [XGL_CH_FMT_R4G4] = { 1 }, - [XGL_CH_FMT_R4G4B4A4] = { 2 }, - [XGL_CH_FMT_R5G6B5] = { 2 }, - [XGL_CH_FMT_B5G6R5] = { 2 }, - [XGL_CH_FMT_R5G5B5A1] = { 2 }, - [XGL_CH_FMT_R8] = { 1 }, - [XGL_CH_FMT_R8G8] = { 2 }, - [XGL_CH_FMT_R8G8B8A8] = { 4 }, - [XGL_CH_FMT_B8G8R8A8] = { 4 }, - [XGL_CH_FMT_R10G11B11] = { 4 }, - [XGL_CH_FMT_R11G11B10] = { 4 }, - [XGL_CH_FMT_R10G10B10A2] = { 4 }, - [XGL_CH_FMT_R16] = { 2 }, - [XGL_CH_FMT_R16G16] = { 4 }, - [XGL_CH_FMT_R16G16B16A16] = { 8 }, - [XGL_CH_FMT_R32] = { 4 }, - [XGL_CH_FMT_R32G32] = { 8 }, - [XGL_CH_FMT_R32G32B32] = { 12 }, - [XGL_CH_FMT_R32G32B32A32] = { 16 }, - [XGL_CH_FMT_R16G8] = { 3 }, - [XGL_CH_FMT_R32G8] = { 5 }, - [XGL_CH_FMT_R9G9B9E5] = { 4 }, - [XGL_CH_FMT_BC1] = { 8 }, - [XGL_CH_FMT_BC2] = { 16 }, - [XGL_CH_FMT_BC3] = { 16 }, - [XGL_CH_FMT_BC4] = { 8 }, - [XGL_CH_FMT_BC5] = { 16 }, - [XGL_CH_FMT_BC6U] = { 16 }, - [XGL_CH_FMT_BC6S] = { 16 }, - [XGL_CH_FMT_BC7] = { 16 }, + [XGL_CH_FMT_UNDEFINED] = { 0, 0 }, + [XGL_CH_FMT_R4G4] = { 1, 2 }, + [XGL_CH_FMT_R4G4B4A4] = { 2, 4 }, + [XGL_CH_FMT_R5G6B5] = { 2, 3 }, + [XGL_CH_FMT_B5G6R5] = { 2, 3 }, + [XGL_CH_FMT_R5G5B5A1] = { 2, 4 }, + [XGL_CH_FMT_R8] = { 1, 1 }, + [XGL_CH_FMT_R8G8] = { 2, 2 }, + [XGL_CH_FMT_R8G8B8A8] = { 4, 4 }, + [XGL_CH_FMT_B8G8R8A8] = { 4, 4 }, + [XGL_CH_FMT_R10G11B11] = { 4, 3 }, + [XGL_CH_FMT_R11G11B10] = { 4, 3 }, + [XGL_CH_FMT_R10G10B10A2] = { 4, 4 }, + [XGL_CH_FMT_R16] = { 2, 1 }, + [XGL_CH_FMT_R16G16] = { 4, 2 }, + [XGL_CH_FMT_R16G16B16A16] = { 8, 4 }, + [XGL_CH_FMT_R32] = { 4, 1 }, + [XGL_CH_FMT_R32G32] = { 8, 2 }, + [XGL_CH_FMT_R32G32B32] = { 12, 3 }, + [XGL_CH_FMT_R32G32B32A32] = { 16, 4 }, + [XGL_CH_FMT_R16G8] = { 3, 2 }, + [XGL_CH_FMT_R32G8] = { 5, 2 }, + [XGL_CH_FMT_R9G9B9E5] = { 4, 3 }, + [XGL_CH_FMT_BC1] = { 8, 4 }, + [XGL_CH_FMT_BC2] = { 16, 4 }, + [XGL_CH_FMT_BC3] = { 16, 4 }, + [XGL_CH_FMT_BC4] = { 8, 4 }, + [XGL_CH_FMT_BC5] = { 16, 4 }, + [XGL_CH_FMT_BC6U] = { 16, 4 }, + [XGL_CH_FMT_BC6S] = { 16, 4 }, + [XGL_CH_FMT_BC7] = { 16, 4 }, }; unsigned int icd_format_get_size(XGL_FORMAT format) { return icd_format_table[format.channelFormat].size; } + +unsigned int icd_format_get_channel_count(XGL_FORMAT format) +{ + return icd_format_table[format.channelFormat].channel_count; +} diff --git a/icd/common/icd-format.h b/icd/common/icd-format.h index ebf7d5da..5bb5dc94 100644 --- a/icd/common/icd-format.h +++ b/icd/common/icd-format.h @@ -91,6 +91,8 @@ static inline bool icd_format_get_block_width(XGL_FORMAT format) return (icd_format_is_compressed(format)) ? 4 : 1; } -unsigned int icd_format_get_size(XGL_FORMAT format); +XGL_SIZE icd_format_get_size(XGL_FORMAT format); + +XGL_UINT icd_format_get_channel_count(XGL_FORMAT format); #endif /* ICD_FORMAT_H */ |
