[gimp] app: change GimpTileHandlerValidate's API to use GeglRectangle



commit 12f920d8bf6358fdad933b142e21aafe50eb63c9
Author: Michael Natterer <mitch gimp org>
Date:   Sat Aug 5 15:43:41 2017 +0200

    app: change GimpTileHandlerValidate's API to use GeglRectangle
    
    instead of x, y, width, height.

 app/core/gimpprojection.c          |    4 ++--
 app/gegl/gimptilehandlervalidate.c |   32 ++++++++++++++------------------
 app/gegl/gimptilehandlervalidate.h |   10 ++--------
 app/tools/gimpiscissorstool.c      |    6 +++---
 4 files changed, 21 insertions(+), 31 deletions(-)
---
diff --git a/app/core/gimpprojection.c b/app/core/gimpprojection.c
index 8f119b2..484b268 100644
--- a/app/core/gimpprojection.c
+++ b/app/core/gimpprojection.c
@@ -943,14 +943,14 @@ gimp_projection_paint_area (GimpProjection *proj,
     {
       if (proj->priv->validate_handler)
         gimp_tile_handler_validate_invalidate (proj->priv->validate_handler,
-                                               x, y, w, h);
+                                               GEGL_RECTANGLE (x, y, w, h));
       if (now)
         {
           GeglNode *graph = gimp_projectable_get_graph (proj->priv->projectable);
 
           if (proj->priv->validate_handler)
             gimp_tile_handler_validate_undo_invalidate (proj->priv->validate_handler,
-                                                        x, y, w, h);
+                                                        GEGL_RECTANGLE (x, y, w, h));
 
           gegl_node_blit_buffer (graph, proj->priv->buffer,
                                  GEGL_RECTANGLE (x, y, w, h), 0, GEGL_ABYSS_NONE);
diff --git a/app/gegl/gimptilehandlervalidate.c b/app/gegl/gimptilehandlervalidate.c
index 033975a..65993b8 100644
--- a/app/gegl/gimptilehandlervalidate.c
+++ b/app/gegl/gimptilehandlervalidate.c
@@ -361,24 +361,23 @@ gimp_tile_handler_validate_assign (GimpTileHandlerValidate *validate,
 
 void
 gimp_tile_handler_validate_invalidate (GimpTileHandlerValidate *validate,
-                                       gint                     x,
-                                       gint                     y,
-                                       gint                     width,
-                                       gint                     height)
+                                       GeglRectangle           *rect)
 {
-  cairo_rectangle_int_t rect = { x, y, width, height };
-
   g_return_if_fail (GIMP_IS_TILE_HANDLER_VALIDATE (validate));
+  g_return_if_fail (rect != NULL);
 
-  cairo_region_union_rectangle (validate->dirty_region, &rect);
+  cairo_region_union_rectangle (validate->dirty_region,
+                                (cairo_rectangle_int_t *) rect);
 
   if (validate->max_z > 0)
     {
       GeglTileSource *source  = GEGL_TILE_SOURCE (validate);
-      gint            tile_x1 = x / validate->tile_width;
-      gint            tile_y1 = y / validate->tile_height;
-      gint            tile_x2 = (x + width  - 1) / validate->tile_width + 1;
-      gint            tile_y2 = (y + height - 1) / validate->tile_height + 1;
+      gint            tile_x1 = rect->x / validate->tile_width;
+      gint            tile_y1 = rect->y / validate->tile_height;
+      gint            tile_x2 = (rect->x + rect->width  - 1) /
+                                validate->tile_width + 1;
+      gint            tile_y2 = (rect->y + rect->height - 1) /
+                                validate->tile_height + 1;
       gint            tile_x;
       gint            tile_y;
       gint            tile_z;
@@ -399,14 +398,11 @@ gimp_tile_handler_validate_invalidate (GimpTileHandlerValidate *validate,
 
 void
 gimp_tile_handler_validate_undo_invalidate (GimpTileHandlerValidate *validate,
-                                            gint                     x,
-                                            gint                     y,
-                                            gint                     width,
-                                            gint                     height)
+                                            GeglRectangle           *rect)
 {
-  cairo_rectangle_int_t rect = { x, y, width, height };
-
   g_return_if_fail (GIMP_IS_TILE_HANDLER_VALIDATE (validate));
+  g_return_if_fail (rect != NULL);
 
-  cairo_region_subtract_rectangle (validate->dirty_region, &rect);
+  cairo_region_subtract_rectangle (validate->dirty_region,
+                                   (cairo_rectangle_int_t *) rect);
 }
diff --git a/app/gegl/gimptilehandlervalidate.h b/app/gegl/gimptilehandlervalidate.h
index 9dfc553..3409e9f 100644
--- a/app/gegl/gimptilehandlervalidate.h
+++ b/app/gegl/gimptilehandlervalidate.h
@@ -71,15 +71,9 @@ void              gimp_tile_handler_validate_assign     (GimpTileHandlerValidate
                                                          GeglBuffer                *buffer);
 
 void              gimp_tile_handler_validate_invalidate (GimpTileHandlerValidate *validate,
-                                                         gint                     x,
-                                                         gint                     y,
-                                                         gint                     width,
-                                                         gint                     height);
+                                                         GeglRectangle           *rect);
 void         gimp_tile_handler_validate_undo_invalidate (GimpTileHandlerValidate *validate,
-                                                         gint                     x,
-                                                         gint                     y,
-                                                         gint                     width,
-                                                         gint                     height);
+                                                         GeglRectangle           *rect);
 
 
 G_END_DECLS
diff --git a/app/tools/gimpiscissorstool.c b/app/tools/gimpiscissorstool.c
index a8d9a6c..7b05a29 100644
--- a/app/tools/gimpiscissorstool.c
+++ b/app/tools/gimpiscissorstool.c
@@ -1856,9 +1856,9 @@ gradient_map_new (GimpPickable *pickable)
                                      buffer);
 
   gimp_tile_handler_validate_invalidate (GIMP_TILE_HANDLER_VALIDATE (handler),
-                                         0, 0,
-                                         gegl_buffer_get_width  (buffer),
-                                         gegl_buffer_get_height (buffer));
+                                         GEGL_RECTANGLE (0, 0,
+                                                         gegl_buffer_get_width  (buffer),
+                                                         gegl_buffer_get_height (buffer)));
 
   g_object_unref (handler);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]