||Re: OT: AggPasMod - a "modernized" AggPas fork
Mattias Andersson <firstname.lastname@example.org>
||Mon, 26 Mar 2012 23:19:15 +0200
Christian-W. Budde wrote:
> Under https://sourceforge.net/projects/aggpasmod/ I just published my
> fork of AggPas (based itself on Anti-Grain Geometry), which is another
> graphic library with a focus on vector graphics (beside other features
> that can be found in GR32 as well).
> The project is not perfectly compatible with the original releases,
> since I converted objects to classes/records and applied the Object
> Pascal Style Guide (see edn.embarcadero.com/article/10280) where
> possible. However, it should be fairly possible to convert existing
> projects using AggPas to the new "modernized" version.
Ah, this is an excellent initiative. Agg is a great library and the ported
code looks very clean and well-structured.
> Note that the project ships without .dproj files (see
> for the reason why). Thus paths must be adapted by the user and
> eventually example images must be copied manually in order to test some
> of the simple examples.
Note to self: check existing open source projects for .dproj files. ;)
> The project also contains a firemonkey canvas implementation, which can
> be used as a replacement for existing backends in FireMonkey HD
> applications. Although it should work for some simple examples, it is
> still only a proof of concept, which is likely to fail for large
> applications, especially when it comes to performance.
Very cool -- I did this myself (with VPR), so I know that you've invested
a lot of time in this. I should try
> Speaking of performance, the fork has been slightly optimized using
> assembler language where suitable. In some simple cases a performance
> gain of factor 10 can be shown, but even with this the library is rather
> slow, especially if compared to solutions with GR32 in combination with
> VPR (for example), which are written directly in the pascal language.
I remember that I was benchmarking a library that was called "AggLite",
which was performing slightly better than AggPas. It didn't perform as
well as VPR, but in some of the tests it was almost comparable (e.g. when
rendering text.) Of course, unless I'm mistaken, AGG's rasterizer is based
on the FreeType engine, so perhaps it explains the good text rendering
> One main goal of my approach was to understand how things work in AggPas
> / Anti-Grain Geometry. I hope to be able to transfer some of the
> knowledge (and not the code) into either GR32 / VPR, especially in
> regards of text rendering / font typography.
Maybe you would be interested in collaborating on my FMX.Canvas.VPR
project? I know that the implementation still has some issues that need to
Henri Gourvest sent me a notification about his "embedded chromium" web
browser, which has a good demo project that shows some of the rendering
problems when using FMX.Canvas.VPR:
I was planning to do further debugging to try to fix these issues, but
I've been too occupied with other projects.
Text rendering is a very interesting subject -- there are so many
different aspects (antialiasing, cleartype rendering, kerning, subpixel
alignment, spline to polygon conversion, complex scripts, etc.)