本文整理汇总了C++中agg::rasterizer_scanline_aa::gamma方法的典型用法代码示例。如果您正苦于以下问题:C++ rasterizer_scanline_aa::gamma方法的具体用法?C++ rasterizer_scanline_aa::gamma怎么用?C++ rasterizer_scanline_aa::gamma使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类agg::rasterizer_scanline_aa
的用法示例。
在下文中一共展示了rasterizer_scanline_aa::gamma方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: draw_aliased
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);
}
示例2: draw_anti_aliased
void draw_anti_aliased()
{
pixfmt pixf(rbuf_window());
renderer_base rb(pixf);
renderer_aa ren_aa(rb);
agg::path_storage path;
path.move_to(m_x[0], m_y[0]);
path.line_to(m_x[1], m_y[1]);
path.line_to(m_x[2], m_y[2]);
path.close_polygon();
ren_aa.color(agg::rgba(0.7, 0.5, 0.1, m_alpha.value()));
m_ras.gamma(agg::gamma_power(m_gamma.value() * 2.0));
m_ras.add_path(path);
agg::render_scanlines(m_ras, m_sl_p8, ren_aa);
}
示例3: on_draw
virtual void on_draw()
{
typedef agg::renderer_base<pixfmt> ren_base;
pixfmt pixf(rbuf_window());
ren_base rbase(pixf);
trans_roundoff roundoff;
if(m_redraw_flag)
{
g_rasterizer.gamma(agg::gamma_none());
rbase.clear(agg::rgba8(255,255,255));
g_rasterizer.filling_rule(agg::fill_non_zero);
agg::render_ctrl(g_rasterizer, g_scanline, rbase, m_rotate);
agg::render_ctrl(g_rasterizer, g_scanline, rbase, m_even_odd);
agg::render_ctrl(g_rasterizer, g_scanline, rbase, m_draft);
agg::render_ctrl(g_rasterizer, g_scanline, rbase, m_roundoff);
agg::render_ctrl(g_rasterizer, g_scanline, rbase, m_angle_delta);
m_redraw_flag = false;
}
else
{
rbase.copy_bar(0,
int(32.0 * rbuf_window().height() / m_dy),
rbuf_window().width(),
rbuf_window().height(),
agg::rgba8(255,255,255));
}
if(m_draft.status())
{
g_rasterizer.gamma(agg::gamma_threshold(0.4));
}
agg::trans_affine mtx;
mtx.reset();
mtx *= agg::trans_affine_rotation(g_angle * agg::pi / 180.0);
mtx *= agg::trans_affine_translation(m_dx / 2, m_dy / 2 + 10);
mtx *= agg::trans_affine_scaling(rbuf_window().width() / m_dx,
rbuf_window().height() / m_dy);
agg::conv_transform<agg::path_storage> fill(g_path, mtx);
agg::conv_transform
<
agg::conv_transform<agg::path_storage>,
trans_roundoff
>
fill_roundoff(fill, roundoff);
agg::conv_stroke
<
agg::conv_transform<agg::path_storage>
>
stroke(fill);
agg::conv_stroke
<
agg::conv_transform
<
agg::conv_transform<agg::path_storage>,
trans_roundoff
>
>
stroke_roundoff(fill_roundoff);
g_pflag = m_even_odd.status() ? agg::fill_even_odd : agg::fill_non_zero;
unsigned i;
for(i = 0; i < g_npaths; i++)
{
g_rasterizer.filling_rule(g_pflag);
if(m_roundoff.status()) g_rasterizer.add_path(fill_roundoff, g_attr[i].index);
else g_rasterizer.add_path(fill, g_attr[i].index);
if(m_draft.status())
{
agg::render_scanlines_bin_solid(g_rasterizer, g_scanline, rbase, g_attr[i].fill_color);
}
else
{
agg::render_scanlines_aa_solid(g_rasterizer, g_scanline, rbase, g_attr[i].fill_color);
}
if(g_attr[i].stroke_width > 0.001)
{
stroke.width(g_attr[i].stroke_width * mtx.scale());
stroke_roundoff.width(g_attr[i].stroke_width * mtx.scale());
if(m_roundoff.status()) g_rasterizer.add_path(stroke_roundoff, g_attr[i].index);
else g_rasterizer.add_path(stroke, g_attr[i].index);
if(m_draft.status())
{
agg::render_scanlines_bin_solid(g_rasterizer, g_scanline, rbase, g_attr[i].stroke_color);
}
else
{
agg::render_scanlines_aa_solid(g_rasterizer, g_scanline, rbase, g_attr[i].stroke_color);
}
}
}
//.........这里部分代码省略.........