aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChia-I Wu <olvaffe@gmail.com>2014-10-08 09:12:58 +0800
committerChia-I Wu <olvaffe@gmail.com>2014-10-08 10:23:27 +0800
commitd94e6eb32541d3a269b7fcde34aed68c55e4a39c (patch)
tree4d5f8c3cffd2075f284e8676dbe08d9240fcc6e3
parent34fa2b5e17d925ac546c63dc45fe92aa10cfe556 (diff)
downloadusermoji-d94e6eb32541d3a269b7fcde34aed68c55e4a39c.tar.xz
icd: add icd_format_get_channel_count
-rw-r--r--icd/common/icd-format.c68
-rw-r--r--icd/common/icd-format.h4
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 */