From ee31be167b4e2c4682f3da6f22bddc23796f213d Mon Sep 17 00:00:00 2001 From: Simon Zeni Date: Sun, 17 Jan 2021 00:09:04 -0500 Subject: render: add wlr_egl_create_from_drm_fd function --- include/wlr/render/egl.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'include/wlr/render') diff --git a/include/wlr/render/egl.h b/include/wlr/render/egl.h index 82aa9505..3facd87d 100644 --- a/include/wlr/render/egl.h +++ b/include/wlr/render/egl.h @@ -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. -- cgit v1.2.3