[gtk+/rendering-cleanup: 89/113] API: remove gdk_draw_rectangle()



commit 75f2ec5548480efdaaa937511a18104c63230cd7
Author: Benjamin Otte <otte redhat com>
Date:   Sat Jul 17 04:50:49 2010 +0200

    API: remove gdk_draw_rectangle()

 docs/reference/gdk/gdk3-sections.txt |    1 -
 docs/reference/gdk/tmpl/drawing.sgml |   17 --
 gdk/directfb/gdkdrawable-directfb.c  |  153 ----------------
 gdk/gdk.symbols                      |    1 -
 gdk/gdkdraw.c                        |   50 ------
 gdk/gdkdrawable.h                    |   14 --
 gdk/gdkoffscreenwindow.c             |   20 --
 gdk/gdkpixmap.c                      |   24 ---
 gdk/gdkwindow.c                      |   26 ---
 gdk/quartz/gdkdrawable-quartz.c      |   38 ----
 gdk/win32/gdkdrawable-win32.c        |  320 ----------------------------------
 gdk/x11/gdkdrawable-x11.c            |   29 ---
 12 files changed, 0 insertions(+), 693 deletions(-)
---
diff --git a/docs/reference/gdk/gdk3-sections.txt b/docs/reference/gdk/gdk3-sections.txt
index ca6cde8..01d192a 100644
--- a/docs/reference/gdk/gdk3-sections.txt
+++ b/docs/reference/gdk/gdk3-sections.txt
@@ -333,7 +333,6 @@ gdk_drawable_get_clip_region
 gdk_drawable_get_visible_region
 
 <SUBSECTION>
-gdk_draw_rectangle
 gdk_draw_layout_line
 gdk_draw_layout_line_with_colors
 gdk_draw_layout
diff --git a/docs/reference/gdk/tmpl/drawing.sgml b/docs/reference/gdk/tmpl/drawing.sgml
index fc5c18f..866a7ab 100644
--- a/docs/reference/gdk/tmpl/drawing.sgml
+++ b/docs/reference/gdk/tmpl/drawing.sgml
@@ -127,23 +127,6 @@ or a #GdkWindow.
 @Returns: 
 
 
-<!-- ##### FUNCTION gdk_draw_rectangle ##### -->
-<para>
-</para>
-<note>
-<para>
-</para>
-</note>
-
- drawable: 
- gc: 
- filled: 
- x: 
- y: 
- width: 
- height: 
-
-
 <!-- ##### FUNCTION gdk_draw_layout_line ##### -->
 <para>
 
diff --git a/gdk/directfb/gdkdrawable-directfb.c b/gdk/directfb/gdkdrawable-directfb.c
index 238e92e..0879c5b 100644
--- a/gdk/directfb/gdkdrawable-directfb.c
+++ b/gdk/directfb/gdkdrawable-directfb.c
@@ -398,158 +398,6 @@ gdk_directfb_setup_for_drawing (GdkDrawableImplDirectFB *impl,
 }
 
 static void
-gdk_directfb_draw_rectangle (GdkDrawable *drawable,
-                             GdkGC       *gc,
-                             gint         filled,
-                             gint         x,
-                             gint         y,
-                             gint         width,
-                             gint         height)
-{
-  GdkDrawableImplDirectFB *impl;
-  cairo_region_t                clip;
-  GdkGCDirectFB           *gc_private = NULL;
-  IDirectFBSurface        *surface    = NULL;
-  gint  i;
-
-  g_return_if_fail (GDK_IS_DRAWABLE (drawable));
-
-  D_DEBUG_AT( GDKDFB_Drawable, "%s( %p, %p, %s, %4d,%4d - %4dx%4d )\n", G_STRFUNC,
-              drawable, gc, filled ? " filled" : "outline", x, y, width, height );
-
-  impl = GDK_DRAWABLE_IMPL_DIRECTFB (drawable);
-
-  if (!impl->surface)
-    return;
-
-  if (gc)
-    gc_private = GDK_GC_DIRECTFB (gc);
-
-  if (gc_private)
-    {
-      if (gdk_directfb_enable_color_keying &&
-	  (gc_private->values.foreground.red   >> 8) == gdk_directfb_bg_color_key.r &&
-	  (gc_private->values.foreground.green >> 8) == gdk_directfb_bg_color_key.g &&
-	  (gc_private->values.foreground.blue  >> 8) == gdk_directfb_bg_color_key.b)
-	{
-          if (DFB_PIXELFORMAT_IS_INDEXED (impl->format))
-            impl->surface->SetColorIndex (impl->surface, 255);
-          else
-            impl->surface->SetColor (impl->surface,
-                                     gdk_directfb_bg_color.r,
-                                     gdk_directfb_bg_color.g,
-                                     gdk_directfb_bg_color.b,
-                                     gdk_directfb_bg_color.a);
-	}
-      else
-	{
-          if (!gdk_directfb_setup_for_drawing (impl, gc_private)){
-            return;
-		  }
-	}
-    }
-  else
-    {
-      GdkWindowObject *win = GDK_WINDOW_OBJECT (impl->wrapper);
-
-      if (gdk_directfb_enable_color_keying)
-	{
-          if (DFB_PIXELFORMAT_IS_INDEXED (impl->format))
-            impl->surface->SetColorIndex (impl->surface, 255);
-          else
-            impl->surface->SetColor (impl->surface,
-                                     gdk_directfb_bg_color.r,
-                                     gdk_directfb_bg_color.b,
-                                     gdk_directfb_bg_color.g,
-                                     gdk_directfb_bg_color.a);
-	}
-      else
-	{
-          gdk_directfb_set_color (impl, &win->bg_color, 0xFF);
-	}
-    }
-
-  if (filled)
-    {
-      GdkRectangle  rect = { x, y, width, height };
-
-      gdk_directfb_clip_region (drawable, gc, &rect, &clip);
-
-      if (gc_private && gc_private->values_mask & GDK_GC_FILL)
-        {
-          if (gc_private->values.fill == GDK_STIPPLED  &&
-              gc_private->values_mask & GDK_GC_STIPPLE &&
-              gc_private->values.stipple)
-            {
-              surface = GDK_DRAWABLE_IMPL_DIRECTFB (GDK_PIXMAP_OBJECT (gc_private->values.stipple)->impl)->surface;
-
-              if (surface)
-                impl->surface->SetBlittingFlags (impl->surface,
-                                                 (DSBLIT_BLEND_ALPHACHANNEL |
-                                                  DSBLIT_COLORIZE));
-            }
-          else if (gc_private->values.fill == GDK_TILED  &&
-                   gc_private->values_mask & GDK_GC_TILE &&
-                   gc_private->values.tile)
-            {
-              surface = GDK_DRAWABLE_IMPL_DIRECTFB (GDK_PIXMAP_OBJECT (gc_private->values.tile)->impl)->surface;
-
-              impl->surface->SetBlittingFlags (impl->surface, DSBLIT_NOFX);
-            }
-        }
-
-      if (surface)
-        {
-          if (gc_private->values_mask & GDK_GC_TS_X_ORIGIN)
-            x = gc_private->values.ts_x_origin;
-          if (gc_private->values_mask & GDK_GC_TS_Y_ORIGIN)
-            y = gc_private->values.ts_y_origin;
-
-          for (i = 0; i < clip.numRects; i++)
-            {
-              DFBRegion reg = { clip.rects[i].x1,     clip.rects[i].y1,
-                                clip.rects[i].x2, clip.rects[i].y2 };
-
-              impl->surface->SetClip (impl->surface, &reg);
-              impl->surface->TileBlit (impl->surface, surface, NULL, x, y);
-            }
-        }
-      else  /* normal rectangle filling */
-        {
-          DFBRectangle rects[clip.numRects];
-
-          impl->surface->SetClip (impl->surface, NULL);
-
-          for (i = 0; i < clip.numRects; i++)
-            {
-              cairo_region_tBox *box = &clip.rects[i];
-
-              rects[i].x = box->x1;
-              rects[i].y = box->y1;
-              rects[i].w = box->x2 - box->x1;
-              rects[i].h = box->y2 - box->y1;
-            }
-
-          impl->surface->FillRectangles(impl->surface, rects, clip.numRects);
-        }
-
-      temp_region_deinit( &clip );
-    }
-  else
-    {
-
-      DFBRegion region = { x, y, x + width, y + height };
-      impl->surface->SetClip (impl->surface, &region);
-
-      /*  DirectFB does not draw rectangles the X way. Using DirectFB,
-          a filled Rectangle has the same size as a drawn one, while
-          X draws the rectangle one pixel taller and wider.  */
-      impl->surface->DrawRectangle (impl->surface,
-                                    x, y, width , height);
-    }
-}
-
-static void
 gdk_directfb_draw_drawable (GdkDrawable *drawable,
                             GdkGC       *gc,
                             GdkDrawable *src,
@@ -701,7 +549,6 @@ gdk_drawable_impl_directfb_class_init (GdkDrawableImplDirectFBClass *klass)
   object_class->finalize = gdk_drawable_impl_directfb_finalize;
 
   drawable_class->create_gc      = _gdk_directfb_gc_new;
-  drawable_class->draw_rectangle = gdk_directfb_draw_rectangle;
   drawable_class->draw_drawable  = gdk_directfb_draw_drawable;
 
   drawable_class->ref_cairo_surface = gdk_directfb_ref_cairo_surface;
diff --git a/gdk/gdk.symbols b/gdk/gdk.symbols
index 459a9a8..a2aa8ef 100644
--- a/gdk/gdk.symbols
+++ b/gdk/gdk.symbols
@@ -548,7 +548,6 @@ gdk_drawable_get_visible_region
 gdk_drawable_get_visual
 gdk_drawable_set_colormap
 gdk_draw_drawable
-gdk_draw_rectangle
 #endif
 #endif
 
diff --git a/gdk/gdkdraw.c b/gdk/gdkdraw.c
index 37a6a6a..fc32a4c 100644
--- a/gdk/gdkdraw.c
+++ b/gdk/gdkdraw.c
@@ -216,56 +216,6 @@ gdk_drawable_get_colormap (GdkDrawable *drawable)
  */
 
 /**
- * gdk_draw_rectangle:
- * @drawable: a #GdkDrawable (a #GdkWindow or a #GdkPixmap).
- * @gc: a #GdkGC.
- * @filled: %TRUE if the rectangle should be filled.
- * @x: the x coordinate of the left edge of the rectangle.
- * @y: the y coordinate of the top edge of the rectangle.
- * @width: the width of the rectangle.
- * @height: the height of the rectangle.
- * 
- * Draws a rectangular outline or filled rectangle, using the foreground color
- * and other attributes of the #GdkGC.
- *
- * A rectangle drawn filled is 1 pixel smaller in both dimensions than a 
- * rectangle outlined. Calling 
- * <literal>gdk_draw_rectangle (window, gc, TRUE, 0, 0, 20, 20)</literal> 
- * results in a filled rectangle 20 pixels wide and 20 pixels high. Calling
- * <literal>gdk_draw_rectangle (window, gc, FALSE, 0, 0, 20, 20)</literal> 
- * results in an outlined rectangle with corners at (0, 0), (0, 20), (20, 20),
- * and (20, 0), which makes it 21 pixels wide and 21 pixels high.
- **/
-void
-gdk_draw_rectangle (GdkDrawable *drawable,
-		    GdkGC       *gc,
-		    gboolean     filled,
-		    gint         x,
-		    gint         y,
-		    gint         width,
-		    gint         height)
-{  
-  g_return_if_fail (GDK_IS_DRAWABLE (drawable));
-  g_return_if_fail (GDK_IS_GC (gc));
-
-  if (width < 0 || height < 0)
-    {
-      gint real_width;
-      gint real_height;
-      
-      gdk_drawable_get_size (drawable, &real_width, &real_height);
-
-      if (width < 0)
-        width = real_width;
-      if (height < 0)
-        height = real_height;
-    }
-
-  GDK_DRAWABLE_GET_CLASS (drawable)->draw_rectangle (drawable, gc, filled, x, y,
-                                                     width, height);
-}
-
-/**
  * gdk_draw_drawable:
  * @drawable: a #GdkDrawable
  * @gc: a #GdkGC sharing the drawable's visual and colormap
diff --git a/gdk/gdkdrawable.h b/gdk/gdkdrawable.h
index de741d3..690d52e 100644
--- a/gdk/gdkdrawable.h
+++ b/gdk/gdkdrawable.h
@@ -60,13 +60,6 @@ struct _GdkDrawableClass
   GdkGC *(*create_gc)    (GdkDrawable    *drawable,
 		          GdkGCValues    *values,
 		          GdkGCValuesMask mask);
-  void (*draw_rectangle) (GdkDrawable  *drawable,
-			  GdkGC	       *gc,
-			  gboolean	filled,
-			  gint		x,
-			  gint		y,
-			  gint		width,
-			  gint		height);
   void (*draw_drawable)  (GdkDrawable  *drawable,
 			  GdkGC	       *gc,
 			  GdkDrawable  *src,
@@ -150,13 +143,6 @@ GdkDisplay*	gdk_drawable_get_display  (GdkDrawable    *drawable);
 
 /* Drawing
  */
-void gdk_draw_rectangle (GdkDrawable      *drawable,
-			 GdkGC            *gc,
-			 gboolean          filled,
-			 gint              x,
-			 gint              y,
-			 gint              width,
-			 gint              height);
 void gdk_draw_drawable  (GdkDrawable      *drawable,
 			 GdkGC            *gc,
 			 GdkDrawable      *src,
diff --git a/gdk/gdkoffscreenwindow.c b/gdk/gdkoffscreenwindow.c
index d582a08..a21ad16 100644
--- a/gdk/gdkoffscreenwindow.c
+++ b/gdk/gdkoffscreenwindow.c
@@ -304,25 +304,6 @@ gdk_offscreen_window_draw_drawable (GdkDrawable *drawable,
   add_damage (offscreen, xdest, ydest, width, height, FALSE);
 }
 
-static void
-gdk_offscreen_window_draw_rectangle (GdkDrawable  *drawable,
-				     GdkGC	  *gc,
-				     gboolean	   filled,
-				     gint	   x,
-				     gint	   y,
-				     gint	   width,
-				     gint	   height)
-{
-  GdkOffscreenWindow *offscreen = GDK_OFFSCREEN_WINDOW (drawable);
-  GdkDrawable *real_drawable = get_real_drawable (offscreen);
-
-  gdk_draw_rectangle (real_drawable,
-		      gc, filled, x, y, width, height);
-
-  add_damage (offscreen, x, y, width, height, !filled);
-
-}
-
 void
 _gdk_offscreen_window_new (GdkWindow     *window,
 			   GdkScreen     *screen,
@@ -947,7 +928,6 @@ gdk_offscreen_window_class_init (GdkOffscreenWindowClass *klass)
   drawable_class->get_source_drawable = gdk_offscreen_window_get_source_drawable;
   drawable_class->get_composite_drawable = gdk_offscreen_window_get_composite_drawable;
 
-  drawable_class->draw_rectangle = gdk_offscreen_window_draw_rectangle;
   drawable_class->draw_drawable_with_src = gdk_offscreen_window_draw_drawable;
 }
 
diff --git a/gdk/gdkpixmap.c b/gdk/gdkpixmap.c
index 3d51dad..fdb3d29 100644
--- a/gdk/gdkpixmap.c
+++ b/gdk/gdkpixmap.c
@@ -34,13 +34,6 @@
 static GdkGC *gdk_pixmap_create_gc      (GdkDrawable     *drawable,
                                          GdkGCValues     *values,
                                          GdkGCValuesMask  mask);
-static void   gdk_pixmap_draw_rectangle (GdkDrawable     *drawable,
-					 GdkGC           *gc,
-					 gboolean         filled,
-					 gint             x,
-					 gint             y,
-					 gint             width,
-					 gint             height);
 static void   gdk_pixmap_draw_drawable  (GdkDrawable     *drawable,
 					 GdkGC           *gc,
 					 GdkPixmap       *src,
@@ -109,7 +102,6 @@ gdk_pixmap_class_init (GdkPixmapObjectClass *klass)
   object_class->finalize = gdk_pixmap_finalize;
 
   drawable_class->create_gc = gdk_pixmap_create_gc;
-  drawable_class->draw_rectangle = gdk_pixmap_draw_rectangle;
   drawable_class->draw_drawable_with_src = gdk_pixmap_draw_drawable;
   drawable_class->get_depth = gdk_pixmap_real_get_depth;
   drawable_class->get_screen = gdk_pixmap_real_get_screen;
@@ -190,22 +182,6 @@ gdk_pixmap_create_gc (GdkDrawable     *drawable,
 }
 
 static void
-gdk_pixmap_draw_rectangle (GdkDrawable *drawable,
-			   GdkGC       *gc,
-			   gboolean     filled,
-			   gint         x,
-			   gint         y,
-			   gint         width,
-			   gint         height)
-{
-  GdkPixmapObject *private = (GdkPixmapObject *)drawable;
-
-  _gdk_gc_remove_drawable_clip (gc);  
-  gdk_draw_rectangle (private->impl, gc, filled,
-                      x, y, width, height);
-}
-
-static void
 gdk_pixmap_draw_drawable (GdkDrawable *drawable,
 			  GdkGC       *gc,
 			  GdkPixmap   *src,
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 766dde1..fa6e75b 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -229,13 +229,6 @@ typedef struct {
 static GdkGC *gdk_window_create_gc      (GdkDrawable     *drawable,
 					 GdkGCValues     *values,
 					 GdkGCValuesMask  mask);
-static void   gdk_window_draw_rectangle (GdkDrawable     *drawable,
-					 GdkGC           *gc,
-					 gboolean         filled,
-					 gint             x,
-					 gint             y,
-					 gint             width,
-					 gint             height);
 static void   gdk_window_draw_drawable  (GdkDrawable     *drawable,
 					 GdkGC           *gc,
 					 GdkPixmap       *src,
@@ -424,7 +417,6 @@ gdk_window_class_init (GdkWindowObjectClass *klass)
   object_class->get_property = gdk_window_get_property;
 
   drawable_class->create_gc = gdk_window_create_gc;
-  drawable_class->draw_rectangle = gdk_window_draw_rectangle;
   drawable_class->draw_drawable_with_src = gdk_window_draw_drawable;
   drawable_class->get_depth = gdk_window_real_get_depth;
   drawable_class->get_screen = gdk_window_real_get_screen;
@@ -3897,24 +3889,6 @@ gdk_window_create_gc (GdkDrawable     *drawable,
 				 values, mask);
 }
 
-static void
-gdk_window_draw_rectangle (GdkDrawable *drawable,
-			   GdkGC       *gc,
-			   gboolean     filled,
-			   gint         x,
-			   gint         y,
-			   gint         width,
-			   gint         height)
-{
-  if (GDK_WINDOW_DESTROYED (drawable))
-    return;
-
-  BEGIN_DRAW;
-  gdk_draw_rectangle (impl, gc, filled,
-		      x - x_offset, y - y_offset, width, height);
-  END_DRAW;
-}
-
 static GdkDrawable *
 gdk_window_get_source_drawable (GdkDrawable *drawable)
 {
diff --git a/gdk/quartz/gdkdrawable-quartz.c b/gdk/quartz/gdkdrawable-quartz.c
index ec6ed52..8cafe79 100644
--- a/gdk/quartz/gdkdrawable-quartz.c
+++ b/gdk/quartz/gdkdrawable-quartz.c
@@ -148,43 +148,6 @@ gdk_quartz_get_depth (GdkDrawable *drawable)
 }
 
 static void
-gdk_quartz_draw_rectangle (GdkDrawable *drawable,
-			   GdkGC       *gc,
-			   gboolean     filled,
-			   gint         x,
-			   gint         y,
-			   gint         width,
-			   gint         height)
-{
-  CGContextRef context = gdk_quartz_drawable_get_context (drawable, FALSE);
-
-  if (!context)
-    return;
-
-  _gdk_quartz_gc_update_cg_context (gc, 
-				    drawable,
-				    context,
-				    filled ?
-				    GDK_QUARTZ_CONTEXT_FILL : 
-				    GDK_QUARTZ_CONTEXT_STROKE);
-
-  if (filled)
-    {
-      CGRect rect = CGRectMake (x, y, width, height);
-
-      CGContextFillRect (context, rect);
-    }
-  else
-    {
-      CGRect rect = CGRectMake (x + 0.5, y + 0.5, width, height);
-
-      CGContextStrokeRect (context, rect);
-    }
-
-  gdk_quartz_drawable_release_context (drawable, context);
-}
-
-static void
 gdk_quartz_draw_drawable (GdkDrawable *drawable,
 			  GdkGC       *gc,
 			  GdkPixmap   *src,
@@ -314,7 +277,6 @@ gdk_drawable_impl_quartz_class_init (GdkDrawableImplQuartzClass *klass)
   object_class->finalize = gdk_drawable_impl_quartz_finalize;
 
   drawable_class->create_gc = _gdk_quartz_gc_new;
-  drawable_class->draw_rectangle = gdk_quartz_draw_rectangle;
   drawable_class->draw_drawable_with_src = gdk_quartz_draw_drawable;
 
   drawable_class->ref_cairo_surface = gdk_quartz_ref_cairo_surface;
diff --git a/gdk/win32/gdkdrawable-win32.c b/gdk/win32/gdkdrawable-win32.c
index fae749f..b31ccad 100644
--- a/gdk/win32/gdkdrawable-win32.c
+++ b/gdk/win32/gdkdrawable-win32.c
@@ -48,13 +48,6 @@
   (gcwin32->line_style == GDK_LINE_DOUBLE_DASH ||		\
    (gcwin32->line_style == GDK_LINE_ON_OFF_DASH && gcwin32->pen_dash_offset))
 
-static void gdk_win32_draw_rectangle (GdkDrawable    *drawable,
-				      GdkGC          *gc,
-				      gboolean        filled,
-				      gint            x,
-				      gint            y,
-				      gint            width,
-				      gint            height);
 static void gdk_win32_draw_drawable  (GdkDrawable    *drawable,
 				      GdkGC          *gc,
 				      GdkPixmap      *src,
@@ -95,7 +88,6 @@ _gdk_drawable_impl_win32_class_init (GdkDrawableImplWin32Class *klass)
   object_class->finalize = gdk_drawable_impl_win32_finalize;
 
   drawable_class->create_gc = _gdk_win32_gc_new;
-  drawable_class->draw_rectangle = gdk_win32_draw_rectangle;
   drawable_class->draw_drawable_with_src = gdk_win32_draw_drawable;
   
   drawable_class->ref_cairo_surface = gdk_win32_ref_cairo_surface;
@@ -424,240 +416,6 @@ draw_tiles (GdkDrawable *drawable,
   g_object_unref (gc_copy);
 }
 
-static void
-generic_draw (GdkDrawable    *drawable,
-	      GdkGC          *gc,
-	      GdkGCValuesMask mask,
-	      void (*function) (GdkGCWin32 *, HDC, gint, gint, va_list),
-	      const cairo_region_t *region,
-	      ...)
-{
-  GdkDrawableImplWin32 *impl = GDK_DRAWABLE_IMPL_WIN32 (drawable);
-  GdkGCWin32 *gcwin32 = GDK_GC_WIN32 (gc);
-  HDC hdc;
-  va_list args;
-  GdkFill fill_style = _gdk_gc_get_fill (gc);
-
-  va_start (args, region);
-
-  /* If tiled or stippled, draw to a temp pixmap and do blitting magic.
-   */
-
-  if (gcwin32->values_mask & GDK_GC_FILL &&
-      ((fill_style == GDK_TILED &&
-	gcwin32->values_mask & GDK_GC_TILE &&
-	_gdk_gc_get_tile (gc) != NULL)
-       ||
-       ((fill_style == GDK_OPAQUE_STIPPLED ||
-	 fill_style == GDK_STIPPLED) &&
-	gcwin32->values_mask & GDK_GC_STIPPLE &&
-	_gdk_gc_get_stipple (gc) != NULL)))
-    {
-      const GdkGCValuesMask blitting_mask = 0;
-      GdkGCValuesMask drawing_mask = GDK_GC_FOREGROUND;
-      gint ts_x_origin = 0, ts_y_origin = 0;
-      cairo_rectangle_int_t region_extents;
-
-      cairo_region_get_extents (region, &region_extents);
-
-      GdkPixmap *mask_pixmap =
-	gdk_pixmap_new (drawable, region_extents.width, region_extents.height, 1);
-      GdkPixmap *tile_pixmap =
-	gdk_pixmap_new (drawable, region_extents.width, region_extents.height, -1);
-      GdkPixmap *stipple_bitmap = NULL;
-      GdkColor fg;
-      
-      GdkGC *mask_gc = gdk_gc_new (mask_pixmap);
-      GdkGC *tile_gc = gdk_gc_new (tile_pixmap);
-
-      HDC mask_hdc;
-      HDC tile_hdc;
-
-      HGDIOBJ old_mask_hbm;
-      HGDIOBJ old_tile_hbm;
-
-      GdkGCValues gcvalues;
-
-      hdc = gdk_win32_hdc_get (drawable, gc, blitting_mask);
-      tile_hdc = CreateCompatibleDC (hdc);
-
-      if (gcwin32->values_mask & GDK_GC_TS_X_ORIGIN)
-	ts_x_origin = gc->ts_x_origin;
-      if (gcwin32->values_mask & GDK_GC_TS_Y_ORIGIN)
-	ts_y_origin = gc->ts_y_origin;
-
-      ts_x_origin -= region_extents.x;
-      ts_y_origin -= region_extents.y;
-
-      /* Fill mask bitmap with zeros */
-      gdk_gc_set_function (mask_gc, GDK_CLEAR);
-      gdk_draw_rectangle (mask_pixmap, mask_gc, TRUE,
-			  0, 0, region_extents.width, region_extents.height);
-
-      /* Paint into mask bitmap, drawing ones */
-      gdk_gc_set_function (mask_gc, GDK_COPY);
-      fg.pixel = 1;
-      gdk_gc_set_foreground (mask_gc, &fg);
-
-      /* If the drawing function uses line attributes, set them as in
-       * the real GC.
-       */
-      if (mask & LINE_ATTRIBUTES)
-	{
-	  gdk_gc_get_values (gc, &gcvalues);
-	  if (gcvalues.line_width != 0 ||
-	      gcvalues.line_style != GDK_LINE_SOLID ||
-	      gcvalues.cap_style != GDK_CAP_BUTT ||
-	      gcvalues.join_style != GDK_JOIN_MITER)
-	    gdk_gc_set_line_attributes (mask_gc,
-					gcvalues.line_width,
-					gcvalues.line_style,
-					gcvalues.cap_style,
-					gcvalues.join_style);
-	  drawing_mask |= LINE_ATTRIBUTES;
-	}
-
-      mask_hdc = gdk_win32_hdc_get (mask_pixmap, mask_gc, drawing_mask);
-      (*function) (GDK_GC_WIN32 (mask_gc), mask_hdc,
-		   region_extents.x, region_extents.y, args);
-      gdk_win32_hdc_release (mask_pixmap, mask_gc, drawing_mask);
-
-      if (fill_style == GDK_TILED)
-	{
-	  /* Tile pixmap with tile */
-	  draw_tiles (tile_pixmap, tile_gc, SRCCOPY,
-		      _gdk_gc_get_tile (gc),
-		      0, 0, ts_x_origin, ts_y_origin,
-		      region_extents.width, region_extents.height);
-	}
-      else
-	{
-	  /* Tile with stipple */
-	  GdkGC *stipple_gc;
-
-	  stipple_bitmap =
-	    gdk_pixmap_new (NULL, region_extents.width, region_extents.height, 1);
-	  stipple_gc = gdk_gc_new (stipple_bitmap);
-
-	  /* Tile stipple bitmap */
-	  draw_tiles (stipple_bitmap, stipple_gc, SRCCOPY,
-		      _gdk_gc_get_stipple (gc),
-		      0, 0, ts_x_origin, ts_y_origin,
-		      region_extents.width, region_extents.height);
-
-	  if (fill_style == GDK_OPAQUE_STIPPLED)
-	    {
-	      /* Fill tile pixmap with background */
-	      fg.pixel = _gdk_gc_get_bg_pixel (gc);
-	      gdk_gc_set_foreground (tile_gc, &fg);
-	      gdk_draw_rectangle (tile_pixmap, tile_gc, TRUE,
-				  0, 0,
-				  region_extents.width, region_extents.height);
-	    }
-	  g_object_unref (stipple_gc);
-	}
-
-      g_object_unref (mask_gc);
-      g_object_unref (tile_gc);
-
-      mask_hdc = CreateCompatibleDC (hdc);
-
-      if ((old_mask_hbm = SelectObject (mask_hdc, GDK_PIXMAP_HBITMAP (mask_pixmap))) == NULL)
-	WIN32_GDI_FAILED ("SelectObject");
-
-      if ((old_tile_hbm = SelectObject (tile_hdc, GDK_PIXMAP_HBITMAP (tile_pixmap))) == NULL)
-	WIN32_GDI_FAILED ("SelectObject");
-
-      if (fill_style == GDK_STIPPLED ||
-	  fill_style == GDK_OPAQUE_STIPPLED)
-	{
-	  HDC stipple_hdc;
-	  HGDIOBJ old_stipple_hbm;
-	  HBRUSH fg_brush;
-	  HGDIOBJ old_tile_brush;
-
-	  if ((stipple_hdc = CreateCompatibleDC (hdc)) == NULL)
-	    WIN32_GDI_FAILED ("CreateCompatibleDC");
-
-	  if ((old_stipple_hbm =
-	       SelectObject (stipple_hdc,
-			     GDK_PIXMAP_HBITMAP (stipple_bitmap))) == NULL)
-	    WIN32_GDI_FAILED ("SelectObject");
-
-	  if ((fg_brush = CreateSolidBrush
-	       (_gdk_win32_colormap_color (impl->colormap,
-					   _gdk_gc_get_fg_pixel (gc)))) == NULL)
-	    WIN32_GDI_FAILED ("CreateSolidBrush");
-
-	  if ((old_tile_brush = SelectObject (tile_hdc, fg_brush)) == NULL)
-	    WIN32_GDI_FAILED ("SelectObject");
-
-	  /* Paint tile with foreround where stipple is one
-	   *
-	   *  Desired ternary ROP: (P=foreground, S=stipple, D=destination)
-           *   P   S   D   ?
-           *   0   0   0   0
-           *   0   0   1   1
-           *   0   1   0   0
-           *   0   1   1   0
-           *   1   0   0   0
-           *   1   0   1   1
-           *   1   1   0   1
-           *   1   1   1   1
-	   *
-	   * Reading bottom-up: 11100010 = 0xE2. PSDK docs say this is
-	   * known as DSPDxax, with hex value 0x00E20746.
-	   */
-	  GDI_CALL (BitBlt, (tile_hdc, 0, 0,
-			     region_extents.width, region_extents.height,
-			     stipple_hdc, 0, 0,
-			     ROP3_DSPDxax));
-
-	  if (fill_style == GDK_STIPPLED)
-	    {
-	      /* Punch holes in mask where stipple is zero */
-	      GDI_CALL (BitBlt, (mask_hdc, 0, 0,
-				 region_extents.width, region_extents.height,
-				 stipple_hdc, 0, 0,
-				 SRCAND));
-	    }
-
-	  GDI_CALL (SelectObject, (tile_hdc, old_tile_brush));
-	  GDI_CALL (DeleteObject, (fg_brush));
-	  GDI_CALL (SelectObject, (stipple_hdc, old_stipple_hbm));
-	  GDI_CALL (DeleteDC, (stipple_hdc));
-	  g_object_unref (stipple_bitmap);
-	}
-
-      /* Tile pixmap now contains the pattern that we should paint in
-       * the areas where mask is one. (It is filled with said pattern.)
-       */
-
-      GDI_CALL (MaskBlt, (hdc, region_extents.x, region_extents.y,
-			  region_extents.width, region_extents.height,
-			  tile_hdc, 0, 0,
-			  GDK_PIXMAP_HBITMAP (mask_pixmap), 0, 0,
-			  MAKEROP4 (rop2_to_rop3 (gcwin32->rop2), ROP3_D)));
-
-      /* Cleanup */
-      GDI_CALL (SelectObject, (mask_hdc, old_mask_hbm));
-      GDI_CALL (SelectObject, (tile_hdc, old_tile_hbm));
-      GDI_CALL (DeleteDC, (mask_hdc));
-      GDI_CALL (DeleteDC, (tile_hdc));
-      g_object_unref (mask_pixmap);
-      g_object_unref (tile_pixmap);
-
-      gdk_win32_hdc_release (drawable, gc, blitting_mask);
-    }
-  else
-    {
-      hdc = gdk_win32_hdc_get (drawable, gc, mask);
-      (*function) (gcwin32, hdc, 0, 0, args);
-      gdk_win32_hdc_release (drawable, gc, mask);
-    }
-  va_end (args);
-}
-
 static cairo_region_t *
 widen_bounds (GdkRectangle *bounds,
 	      gint          pen_width)
@@ -674,84 +432,6 @@ widen_bounds (GdkRectangle *bounds,
 }
 
 static void
-draw_rectangle (GdkGCWin32 *gcwin32,
-		HDC         hdc,
-		gint        x_offset,
-		gint        y_offset,
-		va_list     args)
-{
-  HGDIOBJ old_pen_or_brush;
-  gboolean filled;
-  gint x;
-  gint y;
-  gint width;
-  gint height;
-
-  filled = va_arg (args, gboolean);
-  x = va_arg (args, gint);
-  y = va_arg (args, gint);
-  width = va_arg (args, gint);
-  height = va_arg (args, gint);
-  
-  x -= x_offset;
-  y -= y_offset;
-
-  if (!filled && MUST_RENDER_DASHES_MANUALLY (gcwin32))
-    {
-      render_line_vertical (gcwin32, x, y, y+height+1) &&
-      render_line_horizontal (gcwin32, x, x+width+1, y) &&
-      render_line_vertical (gcwin32, x+width+1, y, y+height+1) &&
-      render_line_horizontal (gcwin32, x, x+width+1, y+height+1);
-    }
-  else
-    {
-      if (filled)
-	old_pen_or_brush = SelectObject (hdc, GetStockObject (NULL_PEN));
-      else
-	old_pen_or_brush = SelectObject (hdc, GetStockObject (HOLLOW_BRUSH));
-      if (old_pen_or_brush == NULL)
-	WIN32_GDI_FAILED ("SelectObject");
-      else
-	GDI_CALL (Rectangle, (hdc, x, y, x+width+1, y+height+1));
-
-      if (old_pen_or_brush != NULL)
-	GDI_CALL (SelectObject, (hdc, old_pen_or_brush));
-    }
-}
-
-static void
-gdk_win32_draw_rectangle (GdkDrawable *drawable,
-			  GdkGC       *gc,
-			  gboolean     filled,
-			  gint         x,
-			  gint         y,
-			  gint         width,
-			  gint         height)
-{
-  GdkRectangle bounds;
-  cairo_region_t *region;
-
-  GDK_NOTE (DRAW, g_print ("gdk_win32_draw_rectangle: %s (%p) %s%dx%d %+d%+d\n",
-			   _gdk_win32_drawable_description (drawable),
-			   gc,
-			   (filled ? "fill " : ""),
-			   width, height, x, y));
-    
-  bounds.x = x;
-  bounds.y = y;
-  bounds.width = width;
-  bounds.height = height;
-  region = widen_bounds (&bounds, GDK_GC_WIN32 (gc)->pen_width);
-
-  generic_draw (drawable, gc,
-		GDK_GC_FOREGROUND | GDK_GC_BACKGROUND |
-		(filled ? 0 : LINE_ATTRIBUTES),
-		draw_rectangle, region, filled, x, y, width, height);
-
-  cairo_region_destroy (region);
-}
-
-static void
 gdk_win32_draw_drawable (GdkDrawable *drawable,
 			 GdkGC       *gc,
 			 GdkPixmap   *src,
diff --git a/gdk/x11/gdkdrawable-x11.c b/gdk/x11/gdkdrawable-x11.c
index 7143c4e..ed569aa 100644
--- a/gdk/x11/gdkdrawable-x11.c
+++ b/gdk/x11/gdkdrawable-x11.c
@@ -48,13 +48,6 @@
 #include "gdkdisplay-x11.h"
 
 
-static void gdk_x11_draw_rectangle (GdkDrawable    *drawable,
-				    GdkGC          *gc,
-				    gboolean        filled,
-				    gint            x,
-				    gint            y,
-				    gint            width,
-				    gint            height);
 static void gdk_x11_draw_drawable  (GdkDrawable    *drawable,
 				    GdkGC          *gc,
 				    GdkPixmap      *src,
@@ -91,7 +84,6 @@ _gdk_drawable_impl_x11_class_init (GdkDrawableImplX11Class *klass)
   object_class->finalize = gdk_drawable_impl_x11_finalize;
   
   drawable_class->create_gc = _gdk_x11_gc_new;
-  drawable_class->draw_rectangle = gdk_x11_draw_rectangle;
   drawable_class->draw_drawable_with_src = gdk_x11_draw_drawable;
   
   drawable_class->ref_cairo_surface = gdk_x11_ref_cairo_surface;
@@ -289,27 +281,6 @@ gdk_x11_set_colormap (GdkDrawable *drawable,
  */
 
 static void
-gdk_x11_draw_rectangle (GdkDrawable *drawable,
-			GdkGC       *gc,
-			gboolean     filled,
-			gint         x,
-			gint         y,
-			gint         width,
-			gint         height)
-{
-  GdkDrawableImplX11 *impl;
-
-  impl = GDK_DRAWABLE_IMPL_X11 (drawable);
-  
-  if (filled)
-    XFillRectangle (GDK_SCREEN_XDISPLAY (impl->screen), impl->xid,
-		    GDK_GC_GET_XGC (gc), x, y, width, height);
-  else
-    XDrawRectangle (GDK_SCREEN_XDISPLAY (impl->screen), impl->xid,
-		    GDK_GC_GET_XGC (gc), x, y, width, height);
-}
-
-static void
 gdk_x11_draw_drawable (GdkDrawable *drawable,
 		       GdkGC       *gc,
 		       GdkPixmap   *src,



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