void draw_aliased() { pixfmt pixf(rbuf_window()); renderer_base rb(pixf); renderer_bin ren_bin(rb); agg::path_storage path; path.move_to(m_x[0] - 200, m_y[0]); path.line_to(m_x[1] - 200, m_y[1]); path.line_to(m_x[2] - 200, m_y[2]); path.close_polygon(); ren_bin.color(agg::rgba(0.1, 0.5, 0.7, m_alpha.value())); m_ras.gamma(agg::gamma_threshold(m_gamma.value())); m_ras.add_path(path); agg::render_scanlines(m_ras, m_sl_bin, ren_bin); //-- Drawing an outline with subpixel accuracy (aliased) //typedef agg::renderer_primitives<renderer_base> renderer_pr; //renderer_pr ren_pr(rb); //agg::rasterizer_outline<renderer_pr> ras_line(ren_pr); //ren_pr.line_color(agg::rgba(0.0, 0.0, 0.0)); //ras_line.add_path(path); }
grid_vertex_adapter(PathType & path, T dx, T dy, box2d<T> box) : dx_(dx), dy_(dy), img_(create_bitmap(box)), vt_(img_.width(), img_.height(), box), si_(box.width() / dx, box.height() / dy) { transform_path<PathType, coord_type, view_transform> tp(path, vt_); tp.rewind(0); agg::rasterizer_scanline_aa<> ras; ras.add_path(tp); agg::rendering_buffer buf(img_.data(), img_.width(), img_.height(), img_.row_size()); agg::pixfmt_gray8 pixfmt(buf); using renderer_base = agg::renderer_base<agg::pixfmt_gray8>; using renderer_bin = agg::renderer_scanline_bin_solid<renderer_base>; renderer_base rb(pixfmt); renderer_bin ren_bin(rb); ren_bin.color(agg::gray8(1)); agg::scanline_bin sl_bin; agg::render_scanlines(ras, sl_bin, ren_bin); }