<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.graphics.agg">
    <title>gmane.comp.graphics.agg</title>
    <link>http://blog.gmane.org/gmane.comp.graphics.agg</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5440"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5439"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5438"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5437"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5436"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5435"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5434"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5433"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5432"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5431"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5430"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5429"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5428"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5427"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5426"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5425"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5424"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5423"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5422"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.graphics.agg/5421"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5440">
    <title>Re: Occasional crash rendering a bitmap</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5440</link>
    <description>&lt;pre&gt;Hi Michael, thanks for sugessting posible problem origin.

The fact of being a random crash suggests unititialized variables or
memory corruption problems. I tried to find both but I couldn't find
any evidence. The fact of not getting differences in rendered images
when the hack clips 'y' to 0 if negative, supports discarding the
hypothesis of memory corruption problems, as they would have affected
not only the rendered image but also sub-sequent renderings in the
test loop. As all variables seem to be properly initialized, in a
desperate move, I did the hack I posted, to see what happens. To my
surprise, everything works now perfectly, and the hack does not
produce any noticeable change in images, nor artifacts, no clippings,
.. nothing!

As said, probably the error is in my code. But I can not go further.
Neither enough knowledge nor instrumentation tools. So, for now I've
closed the incident in my app with this hack.

Here is the code I'm using to render the bitmap (not applicable lines removed):


    template&amp;lt;class Renderer&amp;gt;
    void render_bitmap(Renderer&amp;amp; ren, RenderingBuffer&amp;amp; bmap,
                       double srcX1, double srcY1, double srcX2, double srcY2,
                       double dstX1, double dstY1, double dstX2, double dstY2,
                       EResamplingQuality quality,
                       const TransAffine&amp;amp; mtx,
                       double alpha=1.0)
    {
        //pipeline:
        // the path to render is a rectangle, and the span generator
fills it with
        // the image. During filling, the image is scaled by img_mtx

        //mtx to clip and scale the image
        double parallelogram[6] = { dstX1, dstY1, dstX2, dstY1, dstX2, dstY2 };
        agg::trans_affine img_mtx(srcX1, srcY1, srcX2, srcY2, parallelogram);
        img_mtx.invert();

        //lineal inerpolator, to re-dimension the image
        typedef agg::span_interpolator_linear&amp;lt;agg::trans_affine&amp;gt;
InterpolatorType;
        InterpolatorType interpolator(img_mtx);

        //attach the image to a pixel renderer
        typedef agg::pixfmt_rgba32   ImgPixFmt;
        ImgPixFmt img_pixf(bmap);

        //define an accesor to bitmap pixels
        typedef agg::image_accessor_no_clip&amp;lt;ImgPixFmt&amp;gt; img_accessor_type;
        img_accessor_type source(img_pixf);

        //define the rasterizer
        agg::rasterizer_scanline_aa&amp;lt;&amp;gt; ras;
        ras.clip_box(dstX1, dstY1, dstX2, dstY2);
        ras.gamma(agg::gamma_power(m_gamma));

        //add rectangle path
        ras.move_to_d(dstX1, dstY1);
        ras.line_to_d(dstX2, dstY1);
        ras.line_to_d(dstX2, dstY2);
        ras.line_to_d(dstX1, dstY2);

        //define the scanline class we are going to use (u8)
        agg::scanline_u8 sl;

        //define an allocator for spanlines
        agg::span_allocator&amp;lt;ColorType&amp;gt; sa;


        //define a span generator to fill lines with the image and do
renderization
        {
            //nearest-neighbor filter
            typedef agg::span_image_filter_rgba_nn&amp;lt;img_accessor_type,
                                                InterpolatorType&amp;gt; span_gen_type;
            span_gen_type sg(source, interpolator);
            agg::render_scanlines_aa(ras, sl, m_renBase, sa, sg);
        }

    }

It is invoked using 'RenderedSolid' as 'Rendered' type, defined as:

    //renderers types
    typedef agg::renderer_base&amp;lt;PixFormat&amp;gt;                   RendererBase;
    typedef agg::renderer_scanline_aa_solid&amp;lt;RendererBase&amp;gt;   RendererSolid;



2012/5/9, Michael Ryan &amp;lt;mikryan90&amp;lt; at &amp;gt;gmail.com&amp;gt;:

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>cecilio</dc:creator>
    <dc:date>2012-05-09T14:28:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5439">
    <title>Re: Occasional crash rendering a bitmap</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5439</link>
    <description>&lt;pre&gt;Did you ever print out the variables  that are being passed to agg? Maybe you left something uninitialized.



On May 7, 2012, at 1:12 PM, cecilio &amp;lt;s.cecilio&amp;lt; at &amp;gt;gmail.com&amp;gt; wrote:


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>Michael Ryan</dc:creator>
    <dc:date>2012-05-09T00:59:33</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5438">
    <title>Occasional crash rendering a bitmap</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5438</link>
    <description>&lt;pre&gt;Hi,

I'm using AGG to render documents with texts, images and music scores.
While testing rendering images, I've been experiencing occasional
crashes. Problem was finally located in file
agg_span_image_filter_rgba.h, in method [line 61]:
    void generate(color_type* span, int x, int y, unsigned len)

I've found that the crashes were caused because variable 'y' was
assigned a negative value in line 67:
    base_type::interpolator().coordinates(&amp;amp;x, &amp;amp;y);

I don't know the reason. It is a random issue. In a loop of
re-rendering the same bitmap, it will run 15 to 20 times OK before
crashing. So I tried to by-pass the problem by adding the following
lines [new lines 68 &amp;amp; 69]
    if (y &amp;lt; 0) y = 0;   //CSG. 7/May/2012. Bug by-pass.
    if (x &amp;lt; 0) x = 0;   //CSG. 7/May/2012. Bug by-pass.

Now, everything seems to work OK and I have no longer experienced any
problem. Also, I have not noticed any 'glitch' in the drawings.due to
this hack.

I'm just posting this just in case anyone is interested, although it
is probably a bug in my code due to not properly using AGG.

Best regards,
Cecilio

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>cecilio</dc:creator>
    <dc:date>2012-05-07T17:12:38</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5437">
    <title>Re: Advice on new project</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5437</link>
    <description>&lt;pre&gt;AGG supports FreeType, but probably you will need platform dependent
code for things such as finding the installed fonts, finding the best
font to use when selecting font based on family name, font size, etc.,
and getting the ttf file for the desired font.


2012/5/4 NickMtl &amp;lt;valerianmusic&amp;lt; at &amp;gt;gmail.com&amp;gt;:

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
&lt;/pre&gt;</description>
    <dc:creator>cecilio</dc:creator>
    <dc:date>2012-05-05T14:09:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5436">
    <title>Re: Advice on new project</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5436</link>
    <description>&lt;pre&gt;Ali,

AGG supports FreeType 2 on Windows, Mac and Linux. I'm using it on Mac OS-X and it works great.

See the following pages for details:
http://www.antigrain.com/research/font_rasterization/
http://trac.osgeo.org/mapserver/ticket/2215

&lt;/pre&gt;</description>
    <dc:creator>NickMtl</dc:creator>
    <dc:date>2012-05-04T14:58:24</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5435">
    <title>Advice on new project</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5435</link>
    <description>&lt;pre&gt;Hello everyone!

 

I'm about to impart on a project involving agg thanks to its lack of
reliance on OS specific libraries and was hoping I could receive a little
pre-advise before setting off on the long journey of much code and little
result until I emerge at the end.

I'm wishing to integrate agg with the ShiVa3D game engine (which provides
access to pixelbuffers for rendering results) and run my app on anything
from Windows to Android.

 

My only question is: Is it possible to render text with agg in a manner that
is not os dependant? Any advice/examples on the process if so is much
appreciated.

 

Any help and advice is much appreciated.

 

Many thanks,

Ali

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________
Vector-agg-general mailing list
Vector-agg-general&amp;lt; at &amp;gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vector-agg-general
&lt;/pre&gt;</description>
    <dc:creator>Alistair Lowe</dc:creator>
    <dc:date>2012-05-04T14:44:12</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5434">
    <title>Re: Some experiences in OpenGL / Agg</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5434</link>
    <description>&lt;pre&gt;Hi Nicolas,

Nice work!



Not sure if you considered this... Instead of tesselating the curve, you
could use the method described by Loop and Blinn.
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch25.html
http://research.microsoft.com/en-us/um/people/cloop/LoopBlinn05.pdf
A nice implementation here: http://www.rpenalva.com/blog/?p=107

Thick and thin Bezier curves could be drawn by modifying the fragment
shader like what you do in demo-line-aa.c

- Jaideep

PS : This being my first mail to the list, I would like to thank the
big-guns for keeping AGG alive over the years. [Let's please not start
another debate :)]



On Sat, Apr 21, 2012 at 12:31 AM, Nicolas Rougier
&amp;lt;Nicolas.Rougier&amp;lt; at &amp;gt;inria.fr&amp;gt;wrote:

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________
Vector-agg-general mailing list
Vector-agg-general&amp;lt; at &amp;gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vector-agg-general
&lt;/pre&gt;</description>
    <dc:creator>Jaideep Jeyakar</dc:creator>
    <dc:date>2012-04-24T11:01:47</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5433">
    <title>Re: Some experiences in OpenGL / Agg</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5433</link>
    <description>&lt;pre&gt;
On Apr 20, 2012, at 20:32 , NickMtl wrote:



For bezier curves (gl-agg), I used agg adaptive subdivision directly.

For text (freetype-gl), zoom is done using distance fields (if you don't want to rasterize at higher size).



Thanks.


Nicolas


------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
&lt;/pre&gt;</description>
    <dc:creator>Nicolas Rougier</dc:creator>
    <dc:date>2012-04-20T19:01:14</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5432">
    <title>Re: Some experiences in OpenGL / Agg</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5432</link>
    <description>&lt;pre&gt;
Apple's Quartz bezier drawing is adaptive: the drawing step is redefined continuously to provide the highest quality at all time. Your implementation uses a fixed step size and therefore shows tessellation artifacts when zoomed out. 

I suspect you would obtain the same results if you were to adopt QuartzGL's approach. 

You &amp;amp; Apple have different priorities &amp;amp; that's cool ;)

Thanks for working on this and sharing. Many people have speculated about an GPU/AGG implementation but never came up with anything.

&lt;/pre&gt;</description>
    <dc:creator>NickMtl</dc:creator>
    <dc:date>2012-04-20T18:32:20</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5431">
    <title>Re: Some experiences in OpenGL / Agg</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5431</link>
    <description>&lt;pre&gt;

For the text, I'm a bit surprised by the performances between QuatzGL and CPU. For example, for freetype-gl, I've only to rasterize each glyph once and GPU can handle all important stuff. This allow to have very high quality at high speed. A single OpenGL call is needed to render a bunch of text with different size/colors/markups, etc (like in the markup demo). Subpixel positioning is also done by the GPU to allow for exact kerning.


Nicolas



On Apr 20, 2012, at 20:02 , NickMtl wrote:



------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
&lt;/pre&gt;</description>
    <dc:creator>Nicolas Rougier</dc:creator>
    <dc:date>2012-04-20T18:15:03</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5430">
    <title>Re: Some experiences in OpenGL / Agg</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5430</link>
    <description>&lt;pre&gt;

I did not not do any benchmark yet but I suspect it should be pretty fast since I'm using some very common GL stuff and antialias is done by GPU only. Comparison images for agg were done using python/matplotlib since it was easiest method for me. Of course, this method disqualifies any benchmark comparison. If someone masterize agg enough for reproducing images, I could compare.

Also, I suspect the comparison is not fair to agg in terms of quality. For the straight lines, I suspect it might be possible to tweak output but I do not know how to do it from within python.



Nicolas



On Apr 20, 2012, at 19:38 , Jim Crafton wrote:



------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
&lt;/pre&gt;</description>
    <dc:creator>Nicolas Rougier</dc:creator>
    <dc:date>2012-04-20T18:02:26</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5429">
    <title>Re: Some experiences in OpenGL / Agg</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5429</link>
    <description>&lt;pre&gt;Nicolas,

Very interesting. Apple tried this a few years ago with QuartzGL. Quartz is their 2D API and they tried to make it faster by rewriting most of the algorithms as OpenGL shaders. They eventually gave up because of the high cost of running arbitrary shaders didn't result in a significant speed gain.

You can see a recent review of the technique here:
http://cocoawithlove.com/2011/03/mac-quartzgl-2d-drawing-on-graphics.html

Personally, I'm simply drawing onto a RGBA FBO texture and displaying that. It's what Apple ended up doing for Core Animation, it's fast while still supporting a multi-layered composited approach to UI drawing.

&lt;/pre&gt;</description>
    <dc:creator>NickMtl</dc:creator>
    <dc:date>2012-04-20T18:02:02</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5428">
    <title>Re: Some experiences in OpenGL / Agg</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5428</link>
    <description>&lt;pre&gt;Very cool! How are you finding performance? How does it compare to
just a plain old vanilla CPU bound AGG app?

On Fri, Apr 20, 2012 at 11:38 AM, Nicolas Rougier
&amp;lt;Nicolas.Rougier&amp;lt; at &amp;gt;inria.fr&amp;gt; wrote:

------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
&lt;/pre&gt;</description>
    <dc:creator>Jim Crafton</dc:creator>
    <dc:date>2012-04-20T17:38:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5427">
    <title>Some experiences in OpenGL / Agg</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5427</link>
    <description>&lt;pre&gt;

Hi,


I'm currently exploring an OpenGL implementation of the Agg library using GPU and it might interest some of you:


Font rendering
--------------

For font rendering, you can find some screenshots at:
http://code.google.com/p/freetype-gl/

I think the quality is quite decent compared to the agg quality (no wonder, I just translated agg concepts).


Spines, lines and circles
-------------------------

I'm now exploring lines, arcs and surfaces rendering. Early experiments are available at:
http://code.google.com/p/gl-agg/

I think the quality is also quite decent some far (but maybe I'm not really objective).

Bezier curves are simply interpolated using the agg tesselation algorithm.
Antialias is done by parametrizing the curve with texture coordinates and then the shader does the "magic" stuff.
(I know it's possible to render thin bezier directly on the GPU but I did not find a solution for thick ones).

Circle are made of 2 triangles and computed/antialiase by the GPU

Straight lines are made of 6 triangles and antialiased by the GPU.



Of course, you're welcome to contribute (technics, examples, etc...)



Nicolas
------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
&lt;/pre&gt;</description>
    <dc:creator>Nicolas Rougier</dc:creator>
    <dc:date>2012-04-20T15:38:56</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5426">
    <title>Re: render polyline and polygons</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5426</link>
    <description>&lt;pre&gt;Can I use LGPL with AGG

On Sun, Mar 11, 2012 at 8:14 PM, Stephan Aßmus &amp;lt;superstippi&amp;lt; at &amp;gt;gmx.de&amp;gt; wrote:




&lt;/pre&gt;</description>
    <dc:creator>Mohammed Rashad</dc:creator>
    <dc:date>2012-03-12T19:32:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5425">
    <title>Re: render polyline and polygons</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5425</link>
    <description>&lt;pre&gt;Hi,

On 11.03.2012 14:58, Mohammed Rashad wrote:
[...]

Yes, easily possible. To the rasterizer, your path_storage object is 
just a "vertex source". You can use this vertex source to act as the 
input for another type of vertex source, and then feed the output of 
that vertex source to the rasterizer instead. In this way, you can chain 
vertex sources which take other vertex sources as input. Such type of 
vertex sources are called "converters" in AGG.

So as for the code example:

agg::conv_stroke&amp;lt;agg::path_storage&amp;gt; my_stroke(my_path);
// my_stroke.width(2);
// ...
ras.add_path(my_stroke);

With this in mind, I would suggest you look at more examples that deal 
with converters. There is a ton of stuff to play with and explore. Some 
interesting converters take a "transformation" (another AGG interface) 
and a "vertex source" as input.

Best regards,
-Stephan


------------------------------------------------------------------------------
Virtualization &amp;amp; Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
&lt;/pre&gt;</description>
    <dc:creator>Stephan Aßmus</dc:creator>
    <dc:date>2012-03-11T14:44:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5424">
    <title>render polyline and polygons</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5424</link>
    <description>&lt;pre&gt;Hi,
I was using libgd for a long time. now I want to try AGG which says will
pays off better in performance for vector rendering


i have to render some points,lines and polygons at different times;
i rendered polygon using this code

typedef agg::pixfmt_rgb24 pixfmt;
int width =640;
int height = 480;
unsigned char* buffer = new unsigned char[width *height*3];
agg::rasterizer_scanline_aa&amp;lt;&amp;gt; ras;
agg::scanline_u8 sl;
agg::rendering_buffer rbuf;
rbuf =  agg::rendering_buffer(buffer, width, height, width * 3);



 pixfmt pixf(rbuf);
         agg::renderer_base&amp;lt;pixfmt&amp;gt; ren_base =
agg::renderer_base&amp;lt;pixfmt&amp;gt;(pixf);
         agg::renderer_scanline_aa_solid&amp;lt;agg::renderer_base&amp;lt;pixfmt&amp;gt; &amp;gt;
ren_sl(ren_base);


 agg::path_storage my_path;




   for(pIt = pointList-&amp;gt;begin();pIt!= pointList-&amp;gt;end();++pIt)
         {
VectorPoint point = *(pIt);
my_path.line_to(point.x,point.y)
}

ras.add_path(my_path);

ren_sl.color(agg::rgba(255, 0, 0));
agg::render_scanlines(ras, sl, ren_sl);



with this code i can render polygon.

But my question is how to render polyline? Is it possible?
if yes please provide me with a bit of code

&lt;/pre&gt;</description>
    <dc:creator>Mohammed Rashad</dc:creator>
    <dc:date>2012-03-11T13:58:08</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5423">
    <title>Re: Z-Buffer</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5423</link>
    <description>&lt;pre&gt;春节快乐！给您拜年了！祝您龙年吉祥！
Happy new year! Wish you a merry Year! Wish you auspicious in Long Year!

A gift from my new year:) All chinan sweet sleeping, but I'm working:)

When this thread start, my first ideal, there is no need zbuffer at all.
Just layered, from back to front. CompositionRender is employed, that's OK.
Maybe my bsp-tree confuse me.

Seems compound-aa maybe employed  and more simple. I not deep into it:)

OK, back again, agg zbuffer should easy, but not POC.

seudo code maybe,
foreach layer by back2front{
create scanline to layer;
give render to layer;
if(rewindscanline(scanline)) cache raster.outline;
}
give render buffer,
clear buffer with 0 alpha;//if not employ additional buffer to cache
backface to hide
foreach layer by front2back{
foreach (layer.outline)
foreach(y in outline.ymin to ymax)
{
foreach(x in outline.xmin to xmax)
{
alpha = buffer.getcolor(x, y);
if(alpha=mask) continue;
while(;){
alpha = render.render(layer.scanline, x, y);
if(alpha==mask) break;
layer.prev;
}
}
}
}

And I checked out the compound-aa,
follow code in examples,
        agg::rasterizer_compound_aa&amp;lt;agg::rasterizer_sl_clip_dbl&amp;gt; rasc;
...
        rasc.master_alpha(3, m_alpha1.value());
        rasc.master_alpha(2, m_alpha2.value());
        rasc.master_alpha(1, m_alpha3.value());
        rasc.master_alpha(0, m_alpha4.value());

        agg::ellipse ell(220.0, 180.0, 120.0, 10.0, 128, false);
        agg::conv_stroke&amp;lt;agg::ellipse&amp;gt; str_ell(ell);
        str_ell.width(m_width.value() / 2);

        rasc.styles(3, -1);
        rasc.add_path(str_ell);

        rasc.styles(2, -1);
        rasc.add_path(ell);

        rasc.styles(1, -1);
        rasc.add_path(stroke);

        rasc.styles(0, -1);
        rasc.add_path(curve);

        agg::render_scanlines_compound_layered(rasc, sl, renb_pre, alloc, sh);

So, maybe the expected effect, just compound-aa ok.

Regards,
qinxian

春节快乐！

致敬
向雅

BTW knowledge: Long is Long, not dragon. Indeed, Long word just like
saint or seint word, both from China.

2012/1/18 向雅 &amp;lt;fyaoxy&amp;lt; at &amp;gt;gmail.com&amp;gt;:

------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Vector-agg-general mailing list
Vector-agg-general&amp;lt; at &amp;gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vector-agg-general
&lt;/pre&gt;</description>
    <dc:creator>向雅</dc:creator>
    <dc:date>2012-01-22T22:46:31</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5422">
    <title>Re: Z-Buffer</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5422</link>
    <description>&lt;pre&gt;Sooooorry, I didn't get you last time.
I guess,
As to zbuffer at agg, maybe just make some additional process in the loop:
while (raster.sweepScanline(scanline))
{
//do some additional process, maybe zbuffer
render.doSolid(scanline, color);
}

I don't do any sort of zbuffer work.

In my last reply, your zbuffer different with my zbuffer. sorry again.

致敬
向雅



2012/1/14 向雅 &amp;lt;fyaoxy&amp;lt; at &amp;gt;gmail.com&amp;gt;:

------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
Vector-agg-general mailing list
Vector-agg-general&amp;lt; at &amp;gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vector-agg-general
&lt;/pre&gt;</description>
    <dc:creator>向雅</dc:creator>
    <dc:date>2012-01-17T16:09:31</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5421">
    <title>Re: Z-Buffer</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5421</link>
    <description>&lt;pre&gt;In your case it is probably easier to depth sort the faces manually and 
render them back to front.

In any case, if you were rendering on 3d hardware using anti-aliased 
lines (not FSAA), then you get order dependent artifacts, so you would 
have to depth sort your faces..  Its the same issue you get trying to 
render translucent objects unless you implement depth-peeling in a pixel 
shader (which is only feasible for high end gfx cards).  In some cases 
you can reduce the artifacts by using a weighted blending system.

Pete



On 13/01/2012 20:56, Edgar 't Hart wrote:

------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
&lt;/pre&gt;</description>
    <dc:creator>Pete Bannister</dc:creator>
    <dc:date>2012-01-17T12:48:06</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.graphics.agg/5420">
    <title>Re: Z-Buffer</title>
    <link>http://permalink.gmane.org/gmane.comp.graphics.agg/5420</link>
    <description>&lt;pre&gt;Please give a second to nonsense:)
I think, Seems AGG renders should be refactor to adopt more flexible
application.
Give me a reason?
I tried to port agg 2 years ago to java and DigtalMars D, so many
reasons let me give up.
last July, porting to java restarted, and success. 2 turns,
1, follow AGG to make a prototype.
2, make some refactor.

Now I want to start turn3.
Seems the renderXXX template method should add some additional process
to employ more flexible GeneratorXXX class hierarchy.
In a word, more OO.

Back to the thread,

Maybe the span generator should extended, which internal employ
gradient function and interpolator,
f.e. subclass a triangle gradient function by refer to the diamond
gradient function, may be need some kind of new interpolator.
If so, clipping,  polish or burnish, (IMO the words more approach to
nature means of antalias) already in AGG scope.

As to Z-Buffer and depth, IMO, depends on more concrete requirement.
f.e. If there is svg like graphics tree, maybe layerd buffer need,
depth already exist in the tree.
'cause, the svg like graphics tree, in nature, it also means some kind
of Z-buffer and depth.

If I wrong, please correct me. appreciate!
BTW, If you guys have some intrest my java code, I can git it.

致敬
向雅



2012/1/14 Edgar 't Hart &amp;lt;edgar.t.hart&amp;lt; at &amp;gt;gmail.com&amp;gt;:

------------------------------------------------------------------------------
RSA(R) Conference 2012
Mar 27 - Feb 2
Save $400 by Jan. 27
Register now!
http://p.sf.net/sfu/rsa-sfdev2dev2
_______________________________________________
Vector-agg-general mailing list
Vector-agg-general&amp;lt; at &amp;gt;lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vector-agg-general
&lt;/pre&gt;</description>
    <dc:creator>向雅</dc:creator>
    <dc:date>2012-01-14T06:43:44</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.graphics.agg">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.graphics.agg</link>
  </textinput>
</rdf:RDF>

