aboutsummaryrefslogtreecommitdiff
path: root/render
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2018-04-25 08:33:41 +0100
committerGitHub <noreply@github.com>2018-04-25 08:33:41 +0100
commit99e9f08c4add8f0d77c94d1b37daaec25809cf26 (patch)
tree240bcac75264906411ef9f454dced46f71702649 /render
parentc40f86d27f611a2b34cead63e63c12d6a18263eb (diff)
parent018b82c01e642aae45dace95c5aae5d489e98853 (diff)
Merge pull request #903 from emersion/wlr-egl-destroy-surface
render/egl: add wlr_egl_destroy_surface
Diffstat (limited to 'render')
-rw-r--r--render/egl.c14
-rw-r--r--render/gles2/texture.c5
2 files changed, 12 insertions, 7 deletions
diff --git a/render/egl.c b/render/egl.c
index b52682ea..95bdef55 100644
--- a/render/egl.c
+++ b/render/egl.c
@@ -225,9 +225,10 @@ bool wlr_egl_destroy_image(struct wlr_egl *egl, EGLImage image) {
if (!eglDestroyImageKHR) {
return false;
}
-
- eglDestroyImageKHR(egl->display, image);
- return true;
+ if (!image) {
+ return true;
+ }
+ return eglDestroyImageKHR(egl->display, image);
}
EGLSurface wlr_egl_create_surface(struct wlr_egl *egl, void *window) {
@@ -499,3 +500,10 @@ int wlr_egl_get_dmabuf_modifiers(struct wlr_egl *egl,
}
return num;
}
+
+bool wlr_egl_destroy_surface(struct wlr_egl *egl, EGLSurface surface) {
+ if (!surface) {
+ return true;
+ }
+ return eglDestroySurface(egl->display, surface);
+}
diff --git a/render/gles2/texture.c b/render/gles2/texture.c
index 45169daf..45425fbf 100644
--- a/render/gles2/texture.c
+++ b/render/gles2/texture.c
@@ -88,10 +88,7 @@ static void gles2_texture_destroy(struct wlr_texture *wlr_texture) {
if (texture->image_tex) {
glDeleteTextures(1, &texture->image_tex);
}
- if (texture->image) {
- assert(eglDestroyImageKHR);
- wlr_egl_destroy_image(texture->egl, texture->image);
- }
+ wlr_egl_destroy_image(texture->egl, texture->image);
if (texture->type == WLR_GLES2_TEXTURE_GLTEX) {
glDeleteTextures(1, &texture->gl_tex);