+#endif
+ }
+
+ if (simplerect->outline_a) {
+ for (i = 0; i < (int) simplerect->outline_pixels; ++i) {
+
+ if (simplerect->outline_what & 0x1) {
+ if (begin == simplerect->bbox_ulx) {
+ PAINT_VERTA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, begin + i, sy, ey);
+ }
+ }
+
+ if (simplerect->outline_what & 0x2) {
+ if (end == (simplerect->bbox_lrx - 1)) {
+ PAINT_VERTA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, end - i, sy, ey + 1);
+ }
+ }
+
+ if (simplerect->outline_what & 0x4) {
+ PAINT_HORIZA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, begin, end, sy+i);
+ }
+
+ if (simplerect->outline_what & 0x8) {
+ PAINT_HORIZA(buf, simplerect->outline_r, simplerect->outline_g, simplerect->outline_b, simplerect->outline_a, begin, end + 1, ey-i);
+ }
+ }
+ }
+}
+#endif /* SIMPLERECT_FAST_RENDERER */
+
+static void
+gnome_canvas_simplerect_draw (GnomeCanvasItem *item,
+ GdkDrawable *drawable,
+ int x, int y,
+ int width, int height)
+{
+ GnomeCanvasSimpleRect *simplerect;
+ cairo_t* cr;
+ double ulx;
+ double uly;
+ double lrx;
+ double lry;
+
+ simplerect = GNOME_CANVAS_SIMPLERECT (item);
+
+ cr = gdk_cairo_create (drawable);
+
+ if (x > simplerect->bbox_ulx) {
+ ulx = x;
+ } else {
+ ulx = simplerect->bbox_ulx;
+ }
+
+ if (y > simplerect->bbox_uly) {
+ uly = y;
+ } else {
+ uly = simplerect->bbox_uly;
+ }
+
+ if (x + width > simplerect->bbox_lrx) {
+ lrx = simplerect->bbox_lrx;
+ } else {
+ lrx = x + width;
+ }
+
+ if (y + height > simplerect->bbox_lry) {
+ lry = simplerect->bbox_lry;
+ } else {
+ lry = y + height;