compositor: Destroy EGLImage and texture when a NULL buffer is attached
authorKristian Høgsberg <krh@bitplanet.net>
Tue, 19 Jun 2012 19:41:12 +0000 (15:41 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 19 Jun 2012 19:52:01 +0000 (15:52 -0400)
src/compositor.c

index 73fed3e..00b8f3e 100644 (file)
@@ -711,6 +711,14 @@ weston_surface_attach(struct wl_surface *surface, struct wl_buffer *buffer)
        if (!buffer) {
                if (weston_surface_is_mapped(es))
                        weston_surface_unmap(es);
+               if (es->image != EGL_NO_IMAGE_KHR) {
+                       ec->destroy_image(ec->egl_display, es->image);
+                       es->image = NULL;
+               }
+               if (es->texture) {
+                       glDeleteTextures(1, &es->texture);
+                       es->texture = 0;
+               }
                return;
        }