|
Boost : |
From: Maxim Shemanarev (mcseem_at_[hidden])
Date: 2002-05-06 12:58:08
> Thus for the standard committee to accept a library that leaves some
> responsibility to the user (like copying the pixel buffer to a display),
it
> would have to be shown that this is something a potential user can easily
> and efficiently do, and the best way to demonstrate this is by proving
> demonstration code for actual operating systems and graphics packages.
Well, I realize, what a slippery topic I arose :-)
The thing is any graphical subsystem proposed for any standard will have
restrictions. AGG can render 2D vector graphics perfectly. All it needs, is
a very simple interface to display pixel frameworks.
But even this can be difficult on a number of systems. Not to mention
that the displaying equipment can be pure vectotial, like plotters. In this
case the rendering part of AGG cannot be used at all. Only the pipelne
concept is relatively applicable. But even in this case using AGG or
whatever algorithms is questionable, because plotters (for example)
most probably have embedded software to draw a lot of high-level
primivives such as ellipses, Bezier curves and all. And it's possible,
but would be silly to decompose, for example, a circle into a number
of line segments and then push this whole bunch of data through a
hardware interface while it's better just to say "draw circle".
Another example, is rendering triangles with color interpolation.
AGG allows to achieve perfectly quality (it's being implemented now),
but the performance is restricted with your CPU speed. At the same time
any modern graphic accelerator can render triangles without using CPU
and many times faster than AGG. Unfortunately there're no accelerators
now that can render high-quality and properly anti-aliased images;
even that very graphical monster SGI has very poor abilities of
anti-aliasing.
AGG definitely has its application fields, but maybe the concepts
are not mature enough for proposing as a potential standard.
On the other hand, all existing graphical standards are considerably
outdated, even new ones, like SVG. Remember the issues of
conversion from world to device coordinates, clipping,
transformations and so on. Not to mention their monster-looking
interfaces.
McSeem
http://www.antigrain.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk