[Mesa-dev] [PATCH 7/9] egl: implement EGL_KHR_gl_colorspace
Matt Turner
mattst88 at gmail.com
Wed Jun 10 09:47:26 PDT 2015
On Wed, Jun 10, 2015 at 9:27 AM, Marek Olšák <maraeo at gmail.com> wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> ---
> src/egl/drivers/dri2/egl_dri2.c | 40 ++++++++++++++++++++++++++-------
> src/egl/drivers/dri2/egl_dri2.h | 6 +++++
> src/egl/drivers/dri2/platform_android.c | 4 ++++
> src/egl/drivers/dri2/platform_drm.c | 9 +++++---
> src/egl/drivers/dri2/platform_wayland.c | 9 +++++---
> src/egl/drivers/dri2/platform_x11.c | 12 +++++-----
> src/egl/main/eglconfig.c | 3 ++-
> src/egl/main/eglsurface.c | 24 ++++++++++++++++++++
> src/egl/main/eglsurface.h | 1 +
> 9 files changed, 87 insertions(+), 21 deletions(-)
>
> diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
> index eacb36c..84f0afb 100644
> --- a/src/egl/drivers/dri2/egl_dri2.c
> +++ b/src/egl/drivers/dri2/egl_dri2.c
> @@ -28,6 +28,7 @@
> #define WL_HIDE_DEPRECATED
>
> #include <stdint.h>
> +#include <stdbool.h>
> #include <stdlib.h>
> #include <string.h>
> #include <stdio.h>
> @@ -109,6 +110,18 @@ EGLint dri2_to_egl_attribute_map[] = {
> 0, /* __DRI_ATTRIB_FRAMEBUFFER_SRGB_CAPABLE */
> };
>
> +const __DRIconfig *
> +dri2_get_dri_config(struct dri2_egl_config *conf, EGLint surface_type,
> + EGLenum colorspace)
> +{
> + if (colorspace == EGL_GL_COLORSPACE_SRGB_KHR)
> + return surface_type == EGL_WINDOW_BIT ? conf->dri_srgb_double_config :
> + conf->dri_srgb_single_config;
> + else
> + return surface_type == EGL_WINDOW_BIT ? conf->dri_double_config :
> + conf->dri_single_config;
> +}
> +
> static EGLBoolean
> dri2_match_config(const _EGLConfig *conf, const _EGLConfig *criteria)
> {
> @@ -130,6 +143,7 @@ dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
> struct dri2_egl_display *dri2_dpy;
> _EGLConfig base;
> unsigned int attrib, value, double_buffer;
> + bool srgb = false;
> EGLint key, bind_to_texture_rgb, bind_to_texture_rgba;
> unsigned int dri_masks[4] = { 0, 0, 0, 0 };
> _EGLConfig *matching_config;
> @@ -202,6 +216,9 @@ dri2_add_config(_EGLDisplay *disp, const __DRIconfig *dri_config, int id,
> /* Don't expose visuals with the accumulation buffer. */
> if (value > 0)
> return NULL;
> +
Please mark this with a /* fallthrough */ comment so that static
analysis tools don't think there's a missing break.
> + case __DRI_ATTRIB_FRAMEBUFFER_SRGB_CAPABLE:
> + srgb = value != 0;
> break;
>
> default:
More information about the mesa-dev
mailing list