[gtk+/wip/simple-draw3] GtkPixelCache: Allow NULL for invalidate region
- From: Alexander Larsson <alexl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/simple-draw3] GtkPixelCache: Allow NULL for invalidate region
- Date: Thu, 2 May 2013 13:56:23 +0000 (UTC)
commit 7442ca3f632068ac8b80619cc6ed80f9bbced525
Author: Alexander Larsson <alexl redhat com>
Date: Thu May 2 11:07:09 2013 +0200
GtkPixelCache: Allow NULL for invalidate region
gtk/gtkpixelcache.c | 19 ++++++++++++++++++-
1 files changed, 18 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkpixelcache.c b/gtk/gtkpixelcache.c
index 517fb33..cc56311 100644
--- a/gtk/gtkpixelcache.c
+++ b/gtk/gtkpixelcache.c
@@ -71,10 +71,23 @@ _gtk_pixel_cache_invalidate (GtkPixelCache *cache,
cairo_region_t *region)
{
cairo_rectangle_int_t r;
+ cairo_region_t *free_region = NULL;
- if (cache->surface == NULL || cairo_region_is_empty (region))
+ if (cache->surface == NULL ||
+ (region != NULL && cairo_region_is_empty (region)))
return;
+ if (region == NULL)
+ {
+ r.x = cache->surface_x;
+ r.y = cache->surface_y;
+ r.width = cache->surface_w;
+ r.height = cache->surface_h;
+
+ free_region = region =
+ cairo_region_create_rectangle (&r);
+ }
+
if (cache->surface_dirty == NULL)
{
cache->surface_dirty = cairo_region_copy (region);
@@ -93,10 +106,14 @@ _gtk_pixel_cache_invalidate (GtkPixelCache *cache,
cache->surface_y);
}
+ if (free_region)
+ cairo_region_destroy (free_region);
+
r.x = 0;
r.y = 0;
r.width = cache->surface_w;
r.height = cache->surface_h;
+
cairo_region_intersect_rectangle (cache->surface_dirty, &r);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]