From b9e0eee019483fde8ebe8b95b8b75611dffd75cd Mon Sep 17 00:00:00 2001 From: p989 Date: Thu, 9 Jul 2009 15:52:22 +0000 Subject: [PATCH] marker renderer --- desmume/src/aggdraw.cpp | 3 +++ desmume/src/aggdraw.h | 21 ++++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/desmume/src/aggdraw.cpp b/desmume/src/aggdraw.cpp index 3373d6e4b..dfbdf0c6c 100644 --- a/desmume/src/aggdraw.cpp +++ b/desmume/src/aggdraw.cpp @@ -216,6 +216,9 @@ void AGGDraw() { aggDraw.target->render_text(60,60, "testing testing testing"); aggDraw.target->line(60, 90, 100, 100, 4); + + aggDraw.target->marker(200, 200, 40, 4); + aggDraw.target->marker(100, 300, 40, 3); // //agg_draw_line_pattern(64, 19, 14, 126, 118, 266, 19, 265, .76, 4.69, "C:\\7.bmp"); } diff --git a/desmume/src/aggdraw.h b/desmume/src/aggdraw.h index 85ffb77d0..0687a8581 100644 --- a/desmume/src/aggdraw.h +++ b/desmume/src/aggdraw.h @@ -37,6 +37,7 @@ #include "agg_renderer_mclip.h" #include "agg_renderer_outline_aa.h" +#include "agg_renderer_markers.h" class AggDrawTarget { @@ -53,6 +54,7 @@ public: virtual void solid_rectangle(int x1, int y1, int x2, int y2) = 0; virtual void solid_triangle(int x1, int y1, int x2, int y2, int x3, int y3) = 0; virtual void line(int x1, int y1, int x2, int y2, double w) = 0; + virtual void marker(int x, int y, int size, int type) = 0; static const agg::int8u* lookupFont(const std::string& name); }; @@ -162,7 +164,8 @@ public: agg::render_scanlines(m_ras, m_sl_p8, ren_aa); } - virtual void line(int x1, int y1, int x2, int y2, double w){ + virtual void line(int x1, int y1, int x2, int y2, double w) + { agg::line_profile_aa profile; profile.width(w); @@ -183,6 +186,22 @@ public: ras.render(false); } + virtual void marker(int x, int y, int size, int type) + { + + typedef agg::renderer_mclip base_ren_type; + + base_ren_type r(pixf); + agg::renderer_scanline_aa_solid rs(r); + + agg::renderer_markers m(r); + + m.line_color(renderState.color); + m.fill_color(renderState.color); + + m.marker(x, y, size, agg::marker_e(type % agg::end_of_markers)); + } + };