And suddenly BGRABitmap usage also looks quite complex [or no different to AggPas]. At least it does for me - speaking as somebody that is not familiar with BGRABitmap. 
Indeed, in this case it is similar. That's what I am saying, that you want to do something usual with BGRABitmap, it is simple, and if you want to do something a bit more special, you can do it, it becomes a bit more complicated, but that's possible. Now if something is used often, people can request that it would be integrated, that there would be a function that would do exactly that.
That's also why I am inviting you to actually write those classes that make life simpler so that people can use AggPas without too much thinking. Otherwise it is a steep learning curve and it is out of reach for many people.
Other useful AGG features are pixel buffer formats - AggPas already contains quite a few formats as standard though. It is quite easy to add new buffer layouts. eg: One could add a FPImage pixel buffer format where color channels are Word size instead of the more common Byte size.
From the name, I'm assuming BGRABitmap only supports pixel buffers in the BGRA32 format?
Yes. I am considering adding other pixel formats, but for now that's indeed BGRA or RGBA 32-bit. That's the bit I agreed with you as we started this conversation.
For me there are two advantages to AggPas, as I said from the start:
- it is faster on average for software rendering
- it has different pixel formats for the rendering buffers
There are two drawback:
- it is complicated, not readable, using a peculiar object model
- you need to add ten or twenty units to the uses clause for the simplest program and lots of initialization code
It is more or less equal to BGRABitmap regarding:
- quality of drawing
- doing specific things (with AggPas using the pipeline and with BGRABitmap using scanners, paths, arrays of points)
There are things that are not better but some ready-to-use features are in one library and not the other.
AggPas has some 2D transformation features for path and images that are not available in BGRABitmap and better SVG support
BGRABitmap has Phong shading, Foyd-Steinberg dithering and color number reduction, lots of ready-to-use filters, OpenGL 2D and 3D acceleration, lots of raster image formats including layered images