CVS commit by buis: Rgb/rgba fix for lines. M +25 -14 AggCanvasItems.cpp 1.68 --- kdegraphics/ksvg/plugin/backends/agg/AggCanvasItems.cpp #1.67:1.68 @@ -681,11 +681,4 @@ void AggLine::draw() if(isVisible()) { - typedef agg::pixfmt_rgb24 pixfmt; - typedef agg::renderer_base renderer_base; - typedef agg::renderer_scanline_p_solid renderer_solid; - - pixfmt pixf(m_canvas->buf()); - renderer_base rb(pixf); - renderer_solid ren(rb); agg::scanline_p8 sl; @@ -699,4 +692,5 @@ void AggLine::draw() { m_canvas->m_ras.reset(); + m_canvas->m_ras.add_path(m_curved_stroked_trans); QColor qcolor; if(m_style->getStrokeColor()->paintType() == SVG_PAINTTYPE_CURRENTCOLOR) @@ -706,11 +700,28 @@ void AggLine::draw() agg::rgba8 color(qcolor.red(), qcolor.green(), qcolor.blue()); color.opacity(m_style->getStrokeOpacity() * m_style->getOpacity()); + if(m_canvas->nrChannels() == 3) + { + typedef agg::pixfmt_rgb24 pixfmt; + typedef agg::renderer_base renderer_base; + typedef agg::renderer_scanline_p_solid renderer_solid; + + pixfmt pixf(m_canvas->buf()); + renderer_base rb(pixf); + renderer_solid ren(rb); ren.attribute(color); - /*m_curved_stroked.width(m_style->getStrokeWidth()->baseVal()->value()); - m_curved_stroked.line_join((agg::gen_stroke::line_join_e)m_style->getJoinStyle()); - m_curved_stroked.miter_limit(m_style->getStrokeMiterlimit()); - m_curved_stroked.line_cap(toAggLineCap(m_style->getCapStyle()));*/ - m_canvas->m_ras.add_path(m_curved_stroked_trans); m_canvas->m_ras.render(sl, ren); + } + else + { + typedef agg::pixfmt_rgba32 pixfmt; + typedef agg::renderer_base renderer_base; + typedef agg::renderer_scanline_p_solid renderer_solid; + + pixfmt pixf(m_canvas->buf()); + renderer_base rb(pixf); + renderer_solid ren(rb); + ren.attribute(color); + m_canvas->m_ras.render(sl, ren); + } } //m_transform = transform;