40 lines
1.5 KiB
Diff
40 lines
1.5 KiB
Diff
|
diff --git a/src/cairo-directfb-surface.c b/src/cairo-directfb-surface.c
|
||
|
index bb02dbf..65f2d55 100644
|
||
|
--- a/src/cairo-directfb-surface.c
|
||
|
+++ b/src/cairo-directfb-surface.c
|
||
|
@@ -609,6 +609,8 @@ _cairo_directfb_surface_release_dest_image (void *abstract_surf
|
||
|
surface->dfbsurface->Blit (surface->dfbsurface,
|
||
|
buffer, NULL,
|
||
|
image_rect->x, image_rect->y));
|
||
|
+
|
||
|
+ surface->dfbsurface->ReleaseSource (surface->dfbsurface);
|
||
|
}
|
||
|
|
||
|
cairo_surface_destroy (&image->base);
|
||
|
@@ -848,6 +850,9 @@ _directfb_finish_composite (cairo_directfb_surface_t *dst,
|
||
|
cairo_surface_attributes_t *src_attr)
|
||
|
{
|
||
|
_cairo_pattern_release_surface (src_pattern, src, src_attr);
|
||
|
+
|
||
|
+ if (dst->dfbsurface)
|
||
|
+ dst->dfbsurface->ReleaseSource( dst->dfbsurface );
|
||
|
}
|
||
|
#endif /* DFB_COMPOSITE || DFB_COMPOSITE_TRAPEZOIDS */
|
||
|
|
||
|
@@ -1555,6 +1560,7 @@ _directfb_acquire_font_cache (cairo_directfb_surface_t *surface,
|
||
|
|
||
|
new_cache->dfbsurface->Blit (new_cache->dfbsurface,
|
||
|
cache->dfbsurface, NULL, 0, 0);
|
||
|
+ new_cache->dfbsurface->ReleaseSource (new_cache->dfbsurface);
|
||
|
|
||
|
_directfb_destroy_font_cache (cache);
|
||
|
scaled_font->surface_private = cache = new_cache;
|
||
|
@@ -1778,6 +1784,7 @@ _cairo_directfb_surface_show_glyphs (void *abstract_dst,
|
||
|
RUN_CLIPPED (dst, NULL,
|
||
|
dst->dfbsurface->BatchBlit (dst->dfbsurface,
|
||
|
cache->dfbsurface, rects, points, num));
|
||
|
+ dst->dfbsurface->ReleaseSource (dst->dfbsurface);
|
||
|
|
||
|
return CAIRO_STATUS_SUCCESS;
|
||
|
}
|