sync w/ latest wayland (gbm_surface, etc)
[platform/upstream/libgbm.git] / README
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.
4
5 The frontend is really just a backend loader and shim.  The backend
6 library must be provided by the GLES implementation.
7
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..
14 ----
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.
17 ----
18  3) implement wayland-egl (must provide wayland-egl.pc)
19  4) ???
20  5) PROFIT!!
21
22 need this in your eglext.h:
23
24 -------------------
25 #ifndef EGL_WL_bind_wayland_display
26 #define EGL_WL_bind_wayland_display 1
27
28 #define EGL_WAYLAND_BUFFER_WL                   0x31D5 /* eglCreateImageKHR target */
29 struct wl_display;
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);
33 #endif
34 typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display);
35 typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display);
36 #endif
37 -------------------