gdk: Get rid of gdk_drawing_context_get_clip()
authorBenjamin Otte <otte@redhat.com>
Fri, 20 Apr 2018 22:58:53 +0000 (00:58 +0200)
committerBenjamin Otte <otte@redhat.com>
Tue, 24 Apr 2018 21:16:58 +0000 (23:16 +0200)
Use the identical gdk_draw_context_get_frame_region() instead.

docs/reference/gdk/gdk4-sections.txt
gdk/gdkdrawingcontext.c
gdk/gdkdrawingcontext.h
gdk/gdksurface.c
gsk/gl/gskglrenderer.c
gsk/vulkan/gskvulkanrenderer.c

index 716d655ee1ed7b9505d1868e95c14d4c722cba54..59843dbda63edd8a1cd906185a665dc7d2717b87 100644 (file)
@@ -1186,7 +1186,6 @@ GDK_IS_MONITOR
 <SECTION>
 <FILE>gdkdrawingcontext</FILE>
 GdkDrawingContext
-gdk_drawing_context_get_clip
 gdk_drawing_context_get_paint_context
 
 <SUBSECTION Standard>
index 55da8b6d83f719ff4c828ef3ef73da07cd5557f7..4d3efb8f0f22a68edd9ddbcbbc1bf2e904438224 100644 (file)
@@ -57,7 +57,6 @@ struct _GdkDrawingContextPrivate {
   GdkSurface *surface;
   GdkDrawContext *paint_context;
 
-  cairo_region_t *clip;
   cairo_t *cr;
 };
 
@@ -67,7 +66,6 @@ enum {
   PROP_0,
 
   PROP_SURFACE,
-  PROP_CLIP,
   PROP_PAINT_CONTEXT,
 
   N_PROPS
@@ -83,7 +81,6 @@ gdk_drawing_context_dispose (GObject *gobject)
 
   g_clear_object (&priv->surface);
   g_clear_object (&priv->paint_context);
-  g_clear_pointer (&priv->clip, cairo_region_destroy);
   g_clear_pointer (&priv->cr, cairo_destroy);
 
   G_OBJECT_CLASS (gdk_drawing_context_parent_class)->dispose (gobject);
@@ -116,10 +113,6 @@ gdk_drawing_context_set_property (GObject      *gobject,
       priv->paint_context = g_value_dup_object (value);
       break;
 
-    case PROP_CLIP:
-      priv->clip = g_value_dup_boxed (value);
-      break;
-
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (gobject, prop_id, pspec);
     }
@@ -140,10 +133,6 @@ gdk_drawing_context_get_property (GObject    *gobject,
       g_value_set_object (value, priv->surface);
       break;
 
-    case PROP_CLIP:
-      g_value_set_boxed (value, priv->clip);
-      break;
-
     case PROP_PAINT_CONTEXT:
       g_value_set_object (value, priv->paint_context);
       break;
@@ -173,17 +162,6 @@ gdk_drawing_context_class_init (GdkDrawingContextClass *klass)
                          G_PARAM_CONSTRUCT_ONLY |
                          G_PARAM_READWRITE |
                          G_PARAM_STATIC_STRINGS);
-  /**
-   * GdkDrawingContext:clip:
-   *
-   * The clip region applied to the drawing context.
-   */
-  obj_property[PROP_CLIP] =
-    g_param_spec_boxed ("clip", "Clip", "The clip region of the context",
-                        CAIRO_GOBJECT_TYPE_REGION,
-                        G_PARAM_CONSTRUCT_ONLY |
-                        G_PARAM_READWRITE |
-                        G_PARAM_STATIC_STRINGS);
   /**
    * GdkDrawingContext:paint-context:
    *
@@ -222,24 +200,3 @@ gdk_drawing_context_get_paint_context (GdkDrawingContext *context)
   return priv->paint_context;
 }
 
-/**
- * gdk_drawing_context_get_clip:
- * @context: a #GdkDrawingContext
- *
- * Retrieves a copy of the clip region used when creating the @context.
- *
- * Returns: (transfer full) (nullable): a Cairo region
- */
-cairo_region_t *
-gdk_drawing_context_get_clip (GdkDrawingContext *context)
-{
-  GdkDrawingContextPrivate *priv = gdk_drawing_context_get_instance_private (context);
-
-  g_return_val_if_fail (GDK_IS_DRAWING_CONTEXT (context), NULL);
-
-  if (priv->clip == NULL)
-    return NULL;
-
-  return cairo_region_copy (priv->clip);
-}
-
index 21faf0542cf2e0dc1ab273b275c21912ae020b50..0f6795cd41777248a8e0df842674a7a837fedaf9 100644 (file)
@@ -38,8 +38,6 @@ GType gdk_drawing_context_get_type (void) G_GNUC_CONST;
 
 GDK_AVAILABLE_IN_ALL
 GdkDrawContext* gdk_drawing_context_get_paint_context   (GdkDrawingContext *context);
-GDK_AVAILABLE_IN_ALL
-cairo_region_t *gdk_drawing_context_get_clip            (GdkDrawingContext *context);
 
 G_END_DECLS
 
index 90486c4ed8b974b748d482971b3637b86efbf40a..372e9e48bd1b1bed043961769ff81d69cf469335 100644 (file)
@@ -1612,7 +1612,6 @@ gdk_surface_begin_draw_frame (GdkSurface           *surface,
   context = g_object_new (GDK_TYPE_DRAWING_CONTEXT,
                           "surface", surface,
                           "paint-context", draw_context,
-                          "clip", draw_context->frame_region,
                           NULL);
 
   /* Do not take a reference, to avoid creating cycles */
index 3e9dafaff158f3c7fc010d6eb80e504f3eeda8aa..204b7628ba2bf2a5dfca3fa996ebbbaefc22b0cc 100644 (file)
@@ -2563,7 +2563,7 @@ gsk_gl_renderer_render (GskRenderer          *renderer,
 {
   GskGLRenderer *self = GSK_GL_RENDERER (renderer);
   graphene_rect_t viewport;
-  cairo_region_t *damage;
+  const cairo_region_t *damage;
   GdkDrawingContext *context;
   GdkRectangle whole_surface;
   GdkSurface *surface;
@@ -2582,8 +2582,7 @@ gsk_gl_renderer_render (GskRenderer          *renderer,
                                           GDK_DRAW_CONTEXT (self->gl_context),
                                           update_area);
 
-  damage = gdk_drawing_context_get_clip (context);
-  cairo_region_union (damage, update_area);
+  damage = gdk_draw_context_get_frame_region (GDK_DRAW_CONTEXT (self->gl_context));
 
   if (cairo_region_contains_rectangle (damage, &whole_surface) == CAIRO_REGION_OVERLAP_IN)
     {
@@ -2594,16 +2593,13 @@ gsk_gl_renderer_render (GskRenderer          *renderer,
       GdkRectangle extents;
 
       cairo_region_get_extents (damage, &extents);
-      cairo_region_union_rectangle (damage, &extents);
 
       if (gdk_rectangle_equal (&extents, &whole_surface))
         self->render_region = NULL;
       else
-        self->render_region = cairo_region_reference (damage);
+        self->render_region = cairo_region_create_rectangle (&extents);
     }
 
-  cairo_region_destroy (damage);
-
   self->scale_factor = gdk_surface_get_scale_factor (surface);
   gdk_gl_context_make_current (self->gl_context);
 
index 59506e1f983c5ba6ae9dc6c85250a7f840e8fe87..6c17c89a0eabbfcb4311c79da9c34e7ec3673224 100644 (file)
@@ -219,7 +219,7 @@ gsk_vulkan_renderer_render (GskRenderer          *renderer,
   GskVulkanRender *render;
   GdkDrawingContext *context;
   GdkSurface *surface;
-  cairo_region_t *clip;
+  const cairo_region_t *clip;
 #ifdef G_ENABLE_DEBUG
   GskProfiler *profiler;
   gint64 cpu_time;
@@ -240,9 +240,8 @@ gsk_vulkan_renderer_render (GskRenderer          *renderer,
                                           region);
   render = self->render;
 
-  clip = gdk_drawing_context_get_clip (context);
+  clip = gdk_draw_context_get_frame_region (GDK_DRAW_CONTEXT (self->vulkan));
   gsk_vulkan_render_reset (render, self->targets[gdk_vulkan_context_get_draw_index (self->vulkan)], NULL, clip);
-  cairo_region_destroy (clip);
 
   gsk_vulkan_render_add_node (render, root);