compositor: add support for OES_EGL_image_external
In cases where the GPU can natively handle certain YUV formats,
eglQueryWaylandBufferWL() can return the value EGL_TEXTURE_EXTERNAL_WL
and the compositor will treat the buffer as a single egl-image-external.
See:
http://www.khronos.org/registry/gles/extensions/OES/OES_EGL_image_external.txt
v1: original
v2: rename EGL_TEXTURE_EXTERNAL_OES -> EGL_TEXTURE_EXTERNAL_WL and query
for the extension
v3: fix build without updated mesa headers, if EGL_TEXTURE_EXTERNAL_WL
#define is missing from older mesa headers.
v4: resend without missing parts
Signed-off-by: Rob Clark <rob@ti.com>
diff --git a/src/compositor.h b/src/compositor.h
index ac887ee..070d1ca 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -277,6 +277,7 @@
EGLConfig egl_config;
GLuint fbo;
struct weston_shader texture_shader_rgba;
+ struct weston_shader texture_shader_egl_external;
struct weston_shader texture_shader_y_uv;
struct weston_shader texture_shader_y_u_v;
struct weston_shader texture_shader_y_xuxv;
@@ -448,6 +449,7 @@
struct wl_list frame_callback_list;
EGLImageKHR images[3];
+ GLenum target;
int num_images;
struct wl_buffer *buffer;