diff options
author | emersion <contact@emersion.fr> | 2018-04-25 08:33:41 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-25 08:33:41 +0100 |
commit | 99e9f08c4add8f0d77c94d1b37daaec25809cf26 (patch) | |
tree | 240bcac75264906411ef9f454dced46f71702649 /render | |
parent | c40f86d27f611a2b34cead63e63c12d6a18263eb (diff) | |
parent | 018b82c01e642aae45dace95c5aae5d489e98853 (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.c | 14 | ||||
-rw-r--r-- | render/gles2/texture.c | 5 |
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); |