From 161fad2860700e2b6e9a790498eef23d3af4ee86 Mon Sep 17 00:00:00 2001 From: Robert Bragg Date: Wed, 11 Jan 2012 16:05:53 +0000 Subject: [PATCH] texture-2d/wayland: destroy transient EGLImages When creating a texture from a wayland buffer we create an intermediate EGLImage that we then create a GL texture from, but we were never destroying that EGLImage. This patch ensures we destroy the image right after we've created the texture so we don't leak a reference to the underlying buffer. Reviewed-by: Neil Roberts --- cogl/cogl-texture-2d.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/cogl/cogl-texture-2d.c b/cogl/cogl-texture-2d.c index 97e449c43..794f18641 100644 --- a/cogl/cogl-texture-2d.c +++ b/cogl/cogl-texture-2d.c @@ -540,6 +540,7 @@ cogl_wayland_texture_2d_new_from_buffer (CoglContext *ctx, else { EGLImageKHR image; + CoglTexture2D *tex; _COGL_RETURN_VAL_IF_FAIL (_cogl_context_get_winsys (ctx)->constraints & COGL_RENDERER_CONSTRAINT_USES_EGL, @@ -548,13 +549,14 @@ cogl_wayland_texture_2d_new_from_buffer (CoglContext *ctx, EGL_WAYLAND_BUFFER_WL, buffer, NULL); -#warning "XXX: without a way to query the format of a wayland buffer we have to guess!" - return _cogl_egl_texture_2d_new_from_image (ctx, - buffer->width, - buffer->height, - COGL_PIXEL_FORMAT_ARGB_8888_PRE, - image, - error); + tex = _cogl_egl_texture_2d_new_from_image (ctx, + buffer->width, + buffer->height, + COGL_PIXEL_FORMAT_ARGB_8888_PRE, + image, + error); + _cogl_egl_destroy_image (ctx, image); + return tex; } } #endif /* COGL_HAS_WAYLAND_EGL_SERVER_SUPPORT */