[Mesa-dev] [PATCH 5/8] dri/common: Add functions mapping MESA_FORMAT_* <-> __DRI_IMAGE_FORMAT_*
Jordan Justen
jljusten at gmail.com
Mon Nov 4 19:01:45 PST 2013
On Mon, Nov 4, 2013 at 6:23 PM, Keith Packard <keithp at keithp.com> wrote:
> The __DRI_IMAGE_FORMAT codes are used by the image extension, drivers need to
> be able to translate between them. Instead of duplicating this translation in
> each driver, create a shared version.
>
> Signed-off-by: Keith Packard <keithp at keithp.com>
> ---
> src/mesa/drivers/dri/common/dri_util.c | 62 ++++++++++++++++++++++++++++++++++
> src/mesa/drivers/dri/common/dri_util.h | 6 ++++
> 2 files changed, 68 insertions(+)
>
> diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c
> index 95c8b41..76c8ae5 100644
> --- a/src/mesa/drivers/dri/common/dri_util.c
> +++ b/src/mesa/drivers/dri/common/dri_util.c
> @@ -792,3 +792,65 @@ driUpdateFramebufferSize(struct gl_context *ctx, const __DRIdrawable *dPriv)
> assert(fb->Height == dPriv->h);
> }
> }
> +
> +uint32_t
> +driGLFormatToImageFormat(gl_format format)
> +{
> + switch (format) {
> + case MESA_FORMAT_RGB565:
> + return __DRI_IMAGE_FORMAT_RGB565;
> + case MESA_FORMAT_XRGB8888:
> + return __DRI_IMAGE_FORMAT_XRGB8888;
> + case MESA_FORMAT_ARGB2101010:
> + return __DRI_IMAGE_FORMAT_ARGB2101010;
> + case MESA_FORMAT_XRGB2101010_UNORM:
> + return __DRI_IMAGE_FORMAT_XRGB2101010;
> + case MESA_FORMAT_ARGB8888:
> + return __DRI_IMAGE_FORMAT_ARGB8888;
> + case MESA_FORMAT_RGBA8888_REV:
> + return __DRI_IMAGE_FORMAT_ABGR8888;
> + case MESA_FORMAT_RGBX8888_REV:
> + return __DRI_IMAGE_FORMAT_XBGR8888;
> + case MESA_FORMAT_R8:
> + return __DRI_IMAGE_FORMAT_R8;
> + case MESA_FORMAT_GR88:
> + return __DRI_IMAGE_FORMAT_GR88;
> + case MESA_FORMAT_NONE:
> + return __DRI_IMAGE_FORMAT_NONE;
> + case MESA_FORMAT_SARGB8:
> + return __DRI_IMAGE_FORMAT_SARGB8;
After patch 6, this will add SARGB8, right? So, maybe add this to the
commit message, or separate out adding SARGB8 into a separate commit?
Patches 1-6: Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
-Jordan
> + default:
> + return 0;
> + }
> +}
> +
> +gl_format
> +driImageFormatToGLFormat(uint32_t image_format)
> +{
> + switch (image_format) {
> + case __DRI_IMAGE_FORMAT_RGB565:
> + return MESA_FORMAT_RGB565;
> + case __DRI_IMAGE_FORMAT_XRGB8888:
> + return MESA_FORMAT_XRGB8888;
> + case __DRI_IMAGE_FORMAT_ARGB2101010:
> + return MESA_FORMAT_ARGB2101010;
> + case __DRI_IMAGE_FORMAT_XRGB2101010:
> + return MESA_FORMAT_XRGB2101010_UNORM;
> + case __DRI_IMAGE_FORMAT_ARGB8888:
> + return MESA_FORMAT_ARGB8888;
> + case __DRI_IMAGE_FORMAT_ABGR8888:
> + return MESA_FORMAT_RGBA8888_REV;
> + case __DRI_IMAGE_FORMAT_XBGR8888:
> + return MESA_FORMAT_RGBX8888_REV;
> + case __DRI_IMAGE_FORMAT_R8:
> + return MESA_FORMAT_R8;
> + case __DRI_IMAGE_FORMAT_GR88:
> + return MESA_FORMAT_GR88;
> + case __DRI_IMAGE_FORMAT_SARGB8:
> + return MESA_FORMAT_SARGB8;
> + case __DRI_IMAGE_FORMAT_NONE:
> + return MESA_FORMAT_NONE;
> + default:
> + return MESA_FORMAT_NONE;
> + }
> +}
> diff --git a/src/mesa/drivers/dri/common/dri_util.h b/src/mesa/drivers/dri/common/dri_util.h
> index 5b56061..fd40769 100644
> --- a/src/mesa/drivers/dri/common/dri_util.h
> +++ b/src/mesa/drivers/dri/common/dri_util.h
> @@ -271,6 +271,12 @@ struct __DRIdrawableRec {
> } dri2;
> };
>
> +extern uint32_t
> +driGLFormatToImageFormat(gl_format format);
> +
> +extern gl_format
> +driImageFormatToGLFormat(uint32_t image_format);
> +
> extern void
> dri2InvalidateDrawable(__DRIdrawable *drawable);
>
> --
> 1.8.4.2
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
More information about the mesa-dev
mailing list