render: add wlr_egl_create_from_drm_fd function

This commit is contained in:
Simon Zeni 2021-01-17 00:09:04 -05:00 committed by Simon Ser
parent 62f37ee319
commit ee31be167b
3 changed files with 147 additions and 44 deletions

View file

@ -53,6 +53,9 @@ struct wlr_egl {
// Device extensions
bool device_drm_ext;
// Client extensions
bool device_query_ext;
} exts;
struct {
@ -70,6 +73,7 @@ struct wlr_egl {
PFNEGLDEBUGMESSAGECONTROLKHRPROC eglDebugMessageControlKHR;
PFNEGLQUERYDISPLAYATTRIBEXTPROC eglQueryDisplayAttribEXT;
PFNEGLQUERYDEVICESTRINGEXTPROC eglQueryDeviceStringEXT;
PFNEGLQUERYDEVICESEXTPROC eglQueryDevicesEXT;
} procs;
struct wl_display *wl_display;
@ -87,6 +91,15 @@ struct wlr_egl {
struct wlr_egl *wlr_egl_create(EGLenum platform, void *remote_display,
const EGLint *config_attribs);
/**
* Creates and EGL context from a given drm fd. This function uses the
* following extensions:
* - EXT_device_enumeration to get the list of available EGLDeviceEXT
* - EXT_device_drm to get the name of the EGLDeviceEXT
* - EXT_platform_device to create an EGLDisplay from an EGLDeviceEXT
*/
struct wlr_egl *wlr_egl_create_from_drm_fd(int drm_fd);
/**
* Frees all related EGL resources, makes the context not-current and
* unbinds a bound wayland display.