[gtk/wip/otte/no-clip-on-draw: 8/8] gdk: Remove gdk_cairo_get_clip_rectangle()



commit 5723dbb9da9f61af071a02e6da07dbe39057f338
Author: Benjamin Otte <otte redhat com>
Date:   Wed Feb 12 23:45:51 2020 +0100

    gdk: Remove gdk_cairo_get_clip_rectangle()
    
    The function is fundamentally broken for unbounded surfaces.
    If a surface is unbounded, we cannot represent this as a
    cairo_rectangle_int_t, and using the return value doesn't work because
    it's already used for something else.
    
    In GTK3, unbounded surfaces aren't a problem, but GTK4 uses recording
    surfaces.
    
    So better remove that function before we keep using it and using it
    wrong.

 docs/reference/gdk/gdk4-sections.txt |  1 -
 gdk/gdkcairo.c                       | 39 ------------------------------------
 gdk/gdkcairo.h                       |  4 ----
 3 files changed, 44 deletions(-)
---
diff --git a/docs/reference/gdk/gdk4-sections.txt b/docs/reference/gdk/gdk4-sections.txt
index bb56a12c26..12cf24b475 100644
--- a/docs/reference/gdk/gdk4-sections.txt
+++ b/docs/reference/gdk/gdk4-sections.txt
@@ -366,7 +366,6 @@ gdk_pango_layout_line_get_clip_region
 <TITLE>Cairo Interaction</TITLE>
 <FILE>cairo_interaction</FILE>
 gdk_surface_create_similar_surface
-gdk_cairo_get_clip_rectangle
 gdk_cairo_set_source_rgba
 gdk_cairo_set_source_pixbuf
 gdk_cairo_rectangle
diff --git a/gdk/gdkcairo.c b/gdk/gdkcairo.c
index c5917cfeb9..e9fcdff086 100644
--- a/gdk/gdkcairo.c
+++ b/gdk/gdkcairo.c
@@ -39,45 +39,6 @@
  */
 
 
-/**
- * gdk_cairo_get_clip_rectangle:
- * @cr: a cairo context
- * @rect: (out) (allow-none): return location for the clip, or %NULL
- *
- * This is a convenience function around cairo_clip_extents().
- * It rounds the clip extents to integer coordinates and returns
- * a boolean indicating if a clip area exists.
- *
- * Returns: %TRUE if a clip rectangle exists, %FALSE if all of @cr is
- *     clipped and all drawing can be skipped
- */
-gboolean
-gdk_cairo_get_clip_rectangle (cairo_t      *cr,
-                              GdkRectangle *rect)
-{
-  double x1, y1, x2, y2;
-  gboolean clip_exists;
-
-  cairo_clip_extents (cr, &x1, &y1, &x2, &y2);
-
-  clip_exists = x1 < x2 && y1 < y2;
-
-  if (rect)
-    {
-      x1 = floor (x1);
-      y1 = floor (y1);
-      x2 = ceil (x2);
-      y2 = ceil (y2);
-
-      rect->x      = CLAMP (x1,      G_MININT, G_MAXINT);
-      rect->y      = CLAMP (y1,      G_MININT, G_MAXINT);
-      rect->width  = CLAMP (x2 - x1, G_MININT, G_MAXINT);
-      rect->height = CLAMP (y2 - y1, G_MININT, G_MAXINT);
-    }
-
-  return clip_exists;
-}
-
 /**
  * gdk_cairo_set_source_rgba:
  * @cr: a cairo context
diff --git a/gdk/gdkcairo.h b/gdk/gdkcairo.h
index c4e2d3836c..49b4117eb0 100644
--- a/gdk/gdkcairo.h
+++ b/gdk/gdkcairo.h
@@ -29,10 +29,6 @@
 
 G_BEGIN_DECLS
 
-GDK_AVAILABLE_IN_ALL
-gboolean   gdk_cairo_get_clip_rectangle (cairo_t            *cr,
-                                         GdkRectangle       *rect);
-
 GDK_AVAILABLE_IN_ALL
 void       gdk_cairo_set_source_rgba    (cairo_t              *cr,
                                          const GdkRGBA        *rgba);


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