aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/wlr/render/egl.h1
-rw-r--r--render/egl.c5
-rw-r--r--render/wlr_renderer.c1
3 files changed, 7 insertions, 0 deletions
diff --git a/include/wlr/render/egl.h b/include/wlr/render/egl.h
index 3f437553..3facd87d 100644
--- a/include/wlr/render/egl.h
+++ b/include/wlr/render/egl.h
@@ -41,6 +41,7 @@ struct wlr_egl {
EGLConfig config; // may be EGL_NO_CONFIG
EGLContext context;
EGLDeviceEXT device; // may be EGL_NO_DEVICE_EXT
+ struct gbm_device *gbm_device;
struct {
// Display extensions
diff --git a/render/egl.c b/render/egl.c
index af6d6892..4cc117c8 100644
--- a/render/egl.c
+++ b/render/egl.c
@@ -5,6 +5,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
+#include <gbm.h>
#include <wlr/render/egl.h>
#include <wlr/util/log.h>
#include <wlr/util/region.h>
@@ -487,6 +488,10 @@ void wlr_egl_destroy(struct wlr_egl *egl) {
eglTerminate(egl->display);
eglReleaseThread();
+ if (egl->gbm_device) {
+ gbm_device_destroy(egl->gbm_device);
+ }
+
free(egl);
}
diff --git a/render/wlr_renderer.c b/render/wlr_renderer.c
index 94ec63ec..7ce86695 100644
--- a/render/wlr_renderer.c
+++ b/render/wlr_renderer.c
@@ -1,6 +1,7 @@
#include <assert.h>
#include <stdbool.h>
#include <stdlib.h>
+#include <gbm.h>
#include <wlr/render/egl.h>
#include <wlr/render/gles2.h>
#include <wlr/render/interface.h>