[Mesa-dev] [PATCH 2/3] gbm: Introduce a helper function for printing GBM format names.

Eric Engestrom eric.engestrom at intel.com
Fri Nov 9 10:59:00 UTC 2018


On Thursday, 2018-11-08 10:01:37 -0800, Eric Anholt wrote:
> This requires that the caller make a little (stack) allocation to store
> the string.
> 
> v2: Use gbm_format_canonicalize (suggested by Daniel)

Yep, fixes it. Series is
Reviewed-by: Eric Engestrom <eric.engestrom at intel.com>

> ---
>  src/gbm/main/gbm.c | 20 ++++++++++++++++++++
>  src/gbm/main/gbm.h |  6 ++++++
>  2 files changed, 26 insertions(+)
> 
> diff --git a/src/gbm/main/gbm.c b/src/gbm/main/gbm.c
> index d301661b48ee..2e2014205cb8 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 e95f9e34960b..9b5288710a5b 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
> -- 
> 2.19.1
> 


More information about the mesa-dev mailing list