1 This is the gbm frontend used by (for example) weston compositor to
2 load the GLES stack, and retrieve the backing buffer objects behind
3 an eglImage (created with EGL_WAYLAND_BUFFER_WL), etc.
5 The frontend is really just a backend loader and shim. The backend
6 library must be provided by the GLES implementation.
8 To get wayland up and running on your GLES stack:
9 1) implement gbm backend
10 2) implement EGL_WL_bind_wayland_display extension (including
11 EGL_WAYLAND_BUFFER_WL eglCreateImageKHR target
12 for compositor-drm it looks like we also need
13 EGL_KHR_surfaceless_gles2 extension..
15 <robclark> hmm, I don't suppose there is any extension description for EGL_KHR_surfaceless_gles2 ?
16 <pq> robclark, it should simply mean you can eglMakeCurrent with NULL surface, but a real context.
18 3) implement wayland-egl (must provide wayland-egl.pc)
22 need this in your eglext.h:
25 #ifndef EGL_WL_bind_wayland_display
26 #define EGL_WL_bind_wayland_display 1
28 #define EGL_WAYLAND_BUFFER_WL 0x31D5 /* eglCreateImageKHR target */
30 #ifdef EGL_EGLEXT_PROTOTYPES
31 EGLAPI EGLBoolean EGLAPIENTRY eglBindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display);
32 EGLAPI EGLBoolean EGLAPIENTRY eglUnbindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display);
34 typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display);
35 typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display);