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.
This commit is contained in:
Benjamin Otte 2020-02-12 23:45:51 +01:00
parent 8f6cab6560
commit 052d0f6e60
3 changed files with 0 additions and 44 deletions

View File

@ -366,7 +366,6 @@ gdk_pango_layout_line_get_clip_region
<TITLE>Cairo Interaction</TITLE> <TITLE>Cairo Interaction</TITLE>
<FILE>cairo_interaction</FILE> <FILE>cairo_interaction</FILE>
gdk_surface_create_similar_surface gdk_surface_create_similar_surface
gdk_cairo_get_clip_rectangle
gdk_cairo_set_source_rgba gdk_cairo_set_source_rgba
gdk_cairo_set_source_pixbuf gdk_cairo_set_source_pixbuf
gdk_cairo_rectangle gdk_cairo_rectangle

View File

@ -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: * gdk_cairo_set_source_rgba:
* @cr: a cairo context * @cr: a cairo context

View File

@ -29,10 +29,6 @@
G_BEGIN_DECLS G_BEGIN_DECLS
GDK_AVAILABLE_IN_ALL
gboolean gdk_cairo_get_clip_rectangle (cairo_t *cr,
GdkRectangle *rect);
GDK_AVAILABLE_IN_ALL GDK_AVAILABLE_IN_ALL
void gdk_cairo_set_source_rgba (cairo_t *cr, void gdk_cairo_set_source_rgba (cairo_t *cr,
const GdkRGBA *rgba); const GdkRGBA *rgba);