@@ -251,7 +251,7 @@ class RendererAgg
251
251
template <class R >
252
252
void set_clipbox (const agg::rect_d &cliprect, R &rasterizer);
253
253
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 );
255
255
256
256
template <class PathIteratorType >
257
257
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,
379
379
// function
380
380
set_clipbox (gc.cliprect , theRasterizer);
381
381
if (has_clippath) {
382
- render_clippath (gc.clippath .path , gc.clippath .trans );
382
+ render_clippath (gc.clippath .path , gc.clippath .trans , gc. snap_mode );
383
383
}
384
384
385
385
// Transfer the hatch to the main image buffer
@@ -468,7 +468,7 @@ RendererAgg::draw_path(GCAgg &gc, PathIterator &path, agg::trans_affine &trans,
468
468
theRasterizer.reset_clipping ();
469
469
rendererBase.reset_clipping (true );
470
470
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 );
472
472
473
473
trans *= agg::trans_affine_scaling (1.0 , -1.0 );
474
474
trans *= agg::trans_affine_translation (0.0 , (double )height);
@@ -586,7 +586,7 @@ inline void RendererAgg::draw_markers(GCAgg &gc,
586
586
theRasterizer.reset_clipping ();
587
587
rendererBase.reset_clipping (true );
588
588
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 );
590
590
591
591
double x, y;
592
592
@@ -832,7 +832,7 @@ inline void RendererAgg::draw_image(GCAgg &gc,
832
832
theRasterizer.reset_clipping ();
833
833
rendererBase.reset_clipping (true );
834
834
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 );
836
836
837
837
agg::rendering_buffer buffer;
838
838
buffer.attach (
@@ -941,7 +941,7 @@ inline void RendererAgg::_draw_path_collection_generic(GCAgg &gc,
941
941
theRasterizer.reset_clipping ();
942
942
rendererBase.reset_clipping (true );
943
943
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 );
945
945
946
946
// Set some defaults, assuming no face or edge
947
947
gc.linewidth = 0.0 ;
@@ -1249,7 +1249,7 @@ inline void RendererAgg::draw_gouraud_triangle(GCAgg &gc,
1249
1249
theRasterizer.reset_clipping ();
1250
1250
rendererBase.reset_clipping (true );
1251
1251
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 );
1253
1253
1254
1254
_draw_gouraud_triangle (points, colors, trans, has_clippath);
1255
1255
}
@@ -1263,7 +1263,7 @@ inline void RendererAgg::draw_gouraud_triangles(GCAgg &gc,
1263
1263
theRasterizer.reset_clipping ();
1264
1264
rendererBase.reset_clipping (true );
1265
1265
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 );
1267
1267
1268
1268
for (int i = 0 ; i < points.dim (0 ); ++i) {
1269
1269
typename PointArray::sub_t point = points.subarray (i);
0 commit comments