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 <neil@linux.intel.com>
This commit is contained in:
parent
99c651d2b4
commit
161fad2860
@ -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,
|
||||
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 */
|
||||
|
Loading…
Reference in New Issue
Block a user