[mapserver-dev] Some questions to AGG and GD rendering

thomas bonfort thomas.bonfort at gmail.com
Wed Mar 12 08:46:40 EDT 2008


hello,

On Wed, Mar 12, 2008 at 1:27 PM, Kai Behncke <Kai-Behncke at gmx.de> wrote:
> Hello Mailinglist,
>  in some weeks I held a presentation about MapServer 5.0.0 at the German FOSSGIS-conference and some points I find still difficult.
>
>  I have some questions to AGG and GD-Rendering and I please you to give me some hints because I couldn`t figure it out with the online-documentation or the mailinglist archives.
>
>  Is it right that even if I use the following output:
>
>  OUTPUTFORMAT
>   NAME 'AGG'
>  DRIVER AGG/PNG
>  IMAGEMODE RGB
>  END
>
>  the GD library is used for LABELS, Textpositioning and Rasterlayers ?

gd is still used for the image i/o (loading and saving to/from png,
jpeg etc), for the calculation of label sizes (thus some subtle
discreptancies in label placement, mostly visible if using a label
backgroundcolor) and for raster layers (although in that case there's
not much gd code running as it's mostly setting individual pixels)

>
>  If I don`t use:
>  OUTPUTFORMAT
>   NAME 'AGG'
>  DRIVER AGG/PNG
>  IMAGEMODE RGB
>  END
>
>  is then nevertheless the command ANTIALIAS TRUE is ignored?

if not using the agg outputformats, you fall back to the pre-5.0
rendering with gd, and antialias is NOT ignored (though the
antialiasing produced by gd isn't particularly visible)

>
>  What about STYLES and SYMBOLS, is AGG used for them generally (even if I don`t put:
>  OUTPUTFORMAT
>   NAME 'AGG'
>  DRIVER AGG/PNG
>  IMAGEMODE RGB
>  END
>  ??
>
>  Or is GD used generally? In my tests I could`t figure it out.....
>
>  It is said that AGG and GD are combined.

no: with agg outputformat everuthing is rendered with agg (except for
the 3 items I pointed out at the beginning of this email). without the
agg outputformat *nothing* is rendered with agg

>
>  For which objects GD is used?
>  When is AGG used?
>
>  Is it right, that AGG renders slower than GD?

they are generally relatively equivalent, with agg roughly 10% slower
on a typical map (that's a very rough empirical estimation). some
specific cases that I've observed:
* very complex linework / polygons : gd can be more than 100% faster than agg
* text rendering is faster with agg
* polygon hatching is much faster with agg

HTH,
thomas


More information about the mapserver-dev mailing list