From 0315c226c013b74693dac6fede2abe1f3b76f464 Mon Sep 17 00:00:00 2001 From: Michael Droettboom Date: Mon, 29 Aug 2016 16:23:07 -0400 Subject: [PATCH 1/2] Fix #6794: Clipping rectangle needs to be inverted --- src/_backend_agg.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/_backend_agg.h b/src/_backend_agg.h index a792852a282e..6f6214f482b4 100644 --- a/src/_backend_agg.h +++ b/src/_backend_agg.h @@ -738,14 +738,14 @@ inline void RendererAgg::draw_text_image(GCAgg &gc, ImageArray &image, int x, in typedef agg::renderer_scanline_aa renderer_type; + theRasterizer.reset_clipping(); + rendererBase.reset_clipping(true); if (angle != 0.0) { agg::rendering_buffer srcbuf( image.data(), (unsigned)image.dim(1), (unsigned)image.dim(0), (unsigned)image.dim(1)); agg::pixfmt_gray8 pixf_img(srcbuf); - theRasterizer.reset_clipping(); - rendererBase.reset_clipping(true); set_clipbox(gc.cliprect, theRasterizer); agg::trans_affine mtx; @@ -786,9 +786,9 @@ inline void RendererAgg::draw_text_image(GCAgg &gc, ImageArray &image, int x, in agg::rect_i clip; clip.init(int(mpl_round(gc.cliprect.x1)), - int(mpl_round(gc.cliprect.y1)), + int(mpl_round(height - gc.cliprect.y2)), int(mpl_round(gc.cliprect.x2)), - int(mpl_round(gc.cliprect.y2))); + int(mpl_round(height - gc.cliprect.y1))); text.clip(clip); } From 3a51240fac7a3651d7a0769eef9d53af53b46a82 Mon Sep 17 00:00:00 2001 From: Michael Droettboom Date: Tue, 30 Aug 2016 08:23:12 -0400 Subject: [PATCH 2/2] Add test --- .../baseline_images/test_text/agg_text_clip.png | Bin 0 -> 29843 bytes lib/matplotlib/tests/test_text.py | 11 +++++++++++ 2 files changed, 11 insertions(+) create mode 100644 lib/matplotlib/tests/baseline_images/test_text/agg_text_clip.png diff --git a/lib/matplotlib/tests/baseline_images/test_text/agg_text_clip.png b/lib/matplotlib/tests/baseline_images/test_text/agg_text_clip.png new file mode 100644 index 0000000000000000000000000000000000000000..25f47cec61284a591e0abebc3bf85ef9b133e01f GIT binary patch literal 29843 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

<~I@S0lLEzS@U5ZDjWhL}&L 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 literal 0 HcmV?d00001 diff --git a/lib/matplotlib/tests/test_text.py b/lib/matplotlib/tests/test_text.py index beddb9edb75a..54492607b304 100644 --- a/lib/matplotlib/tests/test_text.py +++ b/lib/matplotlib/tests/test_text.py @@ -393,3 +393,14 @@ def test_text_stale(): assert not ax1.stale assert not ax2.stale assert not fig.stale + + +@image_comparison(baseline_images=['agg_text_clip'], + extensions=['png']) +def test_agg_text_clip(): + np.random.seed(1) + fig, (ax1, ax2) = plt.subplots(2) + for x, y in np.random.rand(10, 2): + ax1.text(x, y, "foo", clip_on=True) + ax2.text(x, y, "foo") + plt.show()