@@ -251,7 +251,7 @@ class RendererAgg
251251 template <class R >
252252 void set_clipbox (const agg::rect_d &cliprect, R &rasterizer);
253253
254- bool render_clippath (py::PathIterator &clippath, const agg::trans_affine &clippath_trans);
254+ bool render_clippath (py::PathIterator &clippath, const agg::trans_affine &clippath_trans, e_snap_mode snap_mode );
255255
256256 template <class PathIteratorType >
257257 void _draw_path (PathIteratorType &path, bool has_clippath, const facepair_t &face, GCAgg &gc);
@@ -379,7 +379,7 @@ RendererAgg::_draw_path(path_t &path, bool has_clippath, const facepair_t &face,
379379 // function
380380 set_clipbox (gc.cliprect , theRasterizer);
381381 if (has_clippath) {
382- render_clippath (gc.clippath .path , gc.clippath .trans );
382+ render_clippath (gc.clippath .path , gc.clippath .trans , gc. snap_mode );
383383 }
384384
385385 // Transfer the hatch to the main image buffer
@@ -468,7 +468,7 @@ RendererAgg::draw_path(GCAgg &gc, PathIterator &path, agg::trans_affine &trans,
468468 theRasterizer.reset_clipping ();
469469 rendererBase.reset_clipping (true );
470470 set_clipbox (gc.cliprect , theRasterizer);
471- bool has_clippath = render_clippath (gc.clippath .path , gc.clippath .trans );
471+ bool has_clippath = render_clippath (gc.clippath .path , gc.clippath .trans , gc. snap_mode );
472472
473473 trans *= agg::trans_affine_scaling (1.0 , -1.0 );
474474 trans *= agg::trans_affine_translation (0.0 , (double )height);
@@ -586,7 +586,7 @@ inline void RendererAgg::draw_markers(GCAgg &gc,
586586 theRasterizer.reset_clipping ();
587587 rendererBase.reset_clipping (true );
588588 set_clipbox (gc.cliprect , rendererBase);
589- bool has_clippath = render_clippath (gc.clippath .path , gc.clippath .trans );
589+ bool has_clippath = render_clippath (gc.clippath .path , gc.clippath .trans , gc. snap_mode );
590590
591591 double x, y;
592592
@@ -832,7 +832,7 @@ inline void RendererAgg::draw_image(GCAgg &gc,
832832 theRasterizer.reset_clipping ();
833833 rendererBase.reset_clipping (true );
834834 set_clipbox (gc.cliprect , theRasterizer);
835- bool has_clippath = render_clippath (gc.clippath .path , gc.clippath .trans );
835+ bool has_clippath = render_clippath (gc.clippath .path , gc.clippath .trans , gc. snap_mode );
836836
837837 agg::rendering_buffer buffer;
838838 buffer.attach (
@@ -941,7 +941,7 @@ inline void RendererAgg::_draw_path_collection_generic(GCAgg &gc,
941941 theRasterizer.reset_clipping ();
942942 rendererBase.reset_clipping (true );
943943 set_clipbox (cliprect, theRasterizer);
944- bool has_clippath = render_clippath (clippath, clippath_trans);
944+ bool has_clippath = render_clippath (clippath, clippath_trans, gc. snap_mode );
945945
946946 // Set some defaults, assuming no face or edge
947947 gc.linewidth = 0.0 ;
@@ -1249,7 +1249,7 @@ inline void RendererAgg::draw_gouraud_triangle(GCAgg &gc,
12491249 theRasterizer.reset_clipping ();
12501250 rendererBase.reset_clipping (true );
12511251 set_clipbox (gc.cliprect , theRasterizer);
1252- bool has_clippath = render_clippath (gc.clippath .path , gc.clippath .trans );
1252+ bool has_clippath = render_clippath (gc.clippath .path , gc.clippath .trans , gc. snap_mode );
12531253
12541254 _draw_gouraud_triangle (points, colors, trans, has_clippath);
12551255}
@@ -1263,7 +1263,7 @@ inline void RendererAgg::draw_gouraud_triangles(GCAgg &gc,
12631263 theRasterizer.reset_clipping ();
12641264 rendererBase.reset_clipping (true );
12651265 set_clipbox (gc.cliprect , theRasterizer);
1266- bool has_clippath = render_clippath (gc.clippath .path , gc.clippath .trans );
1266+ bool has_clippath = render_clippath (gc.clippath .path , gc.clippath .trans , gc. snap_mode );
12671267
12681268 for (int i = 0 ; i < points.dim (0 ); ++i) {
12691269 typename PointArray::sub_t point = points.subarray (i);
0 commit comments