diff options
Diffstat (limited to 'src/gbm')
-rw-r--r-- | src/gbm/main/gbm.c | 20 | ||||
-rw-r--r-- | src/gbm/main/gbm.h | 6 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/gbm/main/gbm.c b/src/gbm/main/gbm.c index d301661b48e..2e2014205cb 100644 --- a/src/gbm/main/gbm.c +++ b/src/gbm/main/gbm.c @@ -711,3 +711,23 @@ gbm_format_canonicalize(uint32_t gbm_format) return gbm_format; } } + +/** + * Returns a string representing the fourcc format name. + * + * \param desc Caller-provided storage for the format name string. + * \return String containing the fourcc of the format. + */ +GBM_EXPORT char * +gbm_format_get_name(uint32_t gbm_format, struct gbm_format_name_desc *desc) +{ + gbm_format = gbm_format_canonicalize(gbm_format); + + desc->name[0] = gbm_format; + desc->name[1] = gbm_format >> 8; + desc->name[2] = gbm_format >> 16; + desc->name[3] = gbm_format >> 24; + desc->name[4] = 0; + + return desc->name; +} diff --git a/src/gbm/main/gbm.h b/src/gbm/main/gbm.h index e95f9e34960..9b5288710a5 100644 --- a/src/gbm/main/gbm.h +++ b/src/gbm/main/gbm.h @@ -190,6 +190,9 @@ enum gbm_bo_format { #define GBM_FORMAT_YUV444 __gbm_fourcc_code('Y', 'U', '2', '4') /* non-subsampled Cb (1) and Cr (2) planes */ #define GBM_FORMAT_YVU444 __gbm_fourcc_code('Y', 'V', '2', '4') /* non-subsampled Cr (1) and Cb (2) planes */ +struct gbm_format_name_desc { + char name[5]; +}; /** * Flags to indicate the intended use for the buffer - these are passed into @@ -399,6 +402,9 @@ gbm_surface_has_free_buffers(struct gbm_surface *surface); void gbm_surface_destroy(struct gbm_surface *surface); +char * +gbm_format_get_name(uint32_t gbm_format, struct gbm_format_name_desc *desc); + #ifdef __cplusplus } #endif |