Mesa (11.2): egl: Add EGL_RECORDABLE_ANDROID attribute

Emil Velikov evelikov at kemper.freedesktop.org
Mon Apr 4 11:52:53 UTC 2016


Module: Mesa
Branch: 11.2
Commit: 3d262f0d4329d63af3e63a09f46a3a7f0f38e1d3
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3d262f0d4329d63af3e63a09f46a3a7f0f38e1d3

Author: Rob Herring <robh at kernel.org>
Date:   Tue Feb  2 14:23:08 2016 -0600

egl: Add EGL_RECORDABLE_ANDROID attribute

This is used by Android to select an eglconfig compatible with screen
recording.

Cc: mesa-stable at lists.freedesktop.org
Signed-off-by: Rob Herring <robh at kernel.org>
[Emil Velikov: add the _eglIsConfigAttribValid check]
Signed-off-by: Emil Velikov <emil.velikov at collabora.com>

(cherry picked from commit e21e81aa1885287e438970429d44abb8b3dabb96)

---

 src/egl/main/eglapi.c     | 1 +
 src/egl/main/eglconfig.c  | 5 +++++
 src/egl/main/eglconfig.h  | 2 ++
 src/egl/main/egldisplay.h | 1 +
 4 files changed, 9 insertions(+)

diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
index 4318e57..4dee9cf 100644
--- a/src/egl/main/eglapi.c
+++ b/src/egl/main/eglapi.c
@@ -383,6 +383,7 @@ _eglCreateExtensionsString(_EGLDisplay *dpy)
    /* Please keep these sorted alphabetically. */
    _EGL_CHECK_EXTENSION(ANDROID_framebuffer_target);
    _EGL_CHECK_EXTENSION(ANDROID_image_native_buffer);
+   _EGL_CHECK_EXTENSION(ANDROID_recordable);
 
    _EGL_CHECK_EXTENSION(CHROMIUM_sync_control);
 
diff --git a/src/egl/main/eglconfig.c b/src/egl/main/eglconfig.c
index 7d2791c..435d924 100644
--- a/src/egl/main/eglconfig.c
+++ b/src/egl/main/eglconfig.c
@@ -249,6 +249,9 @@ static const struct {
    { EGL_FRAMEBUFFER_TARGET_ANDROID, ATTRIB_TYPE_BOOLEAN,
                                     ATTRIB_CRITERION_EXACT,
                                     EGL_DONT_CARE },
+   { EGL_RECORDABLE_ANDROID,        ATTRIB_TYPE_BOOLEAN,
+                                    ATTRIB_CRITERION_EXACT,
+                                    EGL_DONT_CARE },
 };
 
 
@@ -493,6 +496,8 @@ _eglIsConfigAttribValid(_EGLConfig *conf, EGLint attr)
       return conf->Display->Extensions.NOK_texture_from_pixmap;
    case EGL_FRAMEBUFFER_TARGET_ANDROID:
       return conf->Display->Extensions.ANDROID_framebuffer_target;
+   case EGL_RECORDABLE_ANDROID:
+      return conf->Display->Extensions.ANDROID_recordable;
    default:
       break;
    }
diff --git a/src/egl/main/eglconfig.h b/src/egl/main/eglconfig.h
index 7bdb090..22da697 100644
--- a/src/egl/main/eglconfig.h
+++ b/src/egl/main/eglconfig.h
@@ -87,6 +87,7 @@ struct _egl_config
    /* extensions */
    EGLint YInvertedNOK;
    EGLint FramebufferTargetAndroid;
+   EGLint RecordableAndroid;
 };
 
 
@@ -135,6 +136,7 @@ _eglOffsetOfConfig(EGLint attr)
    /* extensions */
    ATTRIB_MAP(EGL_Y_INVERTED_NOK,            YInvertedNOK);
    ATTRIB_MAP(EGL_FRAMEBUFFER_TARGET_ANDROID, FramebufferTargetAndroid);
+   ATTRIB_MAP(EGL_RECORDABLE_ANDROID,        RecordableAndroid);
 #undef ATTRIB_MAP
    default:
       return -1;
diff --git a/src/egl/main/egldisplay.h b/src/egl/main/egldisplay.h
index e156c79..008c467 100644
--- a/src/egl/main/egldisplay.h
+++ b/src/egl/main/egldisplay.h
@@ -92,6 +92,7 @@ struct _egl_extensions
    /* Please keep these sorted alphabetically. */
    EGLBoolean ANDROID_framebuffer_target;
    EGLBoolean ANDROID_image_native_buffer;
+   EGLBoolean ANDROID_recordable;
 
    EGLBoolean CHROMIUM_sync_control;
 




More information about the mesa-commit mailing list