render/egl: allow passing NULL to surface and image destructors

This commit is contained in:
emersion 2018-04-25 00:42:19 +01:00
parent eaed6bd03b
commit 018b82c01e
No known key found for this signature in database
GPG key ID: 0FDE7BE0E88F5E48
5 changed files with 14 additions and 19 deletions

View file

@ -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) {
@ -500,6 +501,9 @@ int wlr_egl_get_dmabuf_modifiers(struct wlr_egl *egl,
return num;
}
void wlr_egl_destroy_surface(struct wlr_egl *egl, EGLSurface surface) {
eglDestroySurface(egl->display, surface);
bool wlr_egl_destroy_surface(struct wlr_egl *egl, EGLSurface surface) {
if (!surface) {
return true;
}
return eglDestroySurface(egl->display, surface);
}

View file

@ -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);