Agg is a very powerful rendering engine. It uses standard C + + and basic C function implementations, but it does not use some template functions in C + + STL. So agg can be used in many situations, even in some end and embedded development. Agg can also be used on the Web server, you can render a picture on the server to return to the client, agg support various formats of data, has a good cross-platform.
Agg's design concept is also based on a plug-in development model, so you can use any other Third-party library in agg use. For example, you can use FreeType fonts or fonts provided under Windows, and you can add to the Third-party libraries you need for the color library.
Agg is a very complex formation, in the agg it has all the functions according to the level of division, divided into many levels. This allows users to use all levels of functionality, or use only a few of these features, and even the user can customize the development of the functionality. The specific levels are as follows:
The meaning of each level: vertex source: Vertex sources, arbitrary images are composed of dots; cordinate Conversion Pipeline: Coordinate conversion pipeline; Scanline rasterizer: Raster, The vertex data processing is synthesized into a group of lines; renderers: renderer; rendering buffer: Memory for storing pixel points
In this case, the main renderer renderers, for the renderer, it is the raster has been good data output to the rendering memory. For raster good data, it is only some point, line and surface geometry data, without any color transparency and other information, this information is the rendering layer process to complement.
For the rendering layer, it is divided into three layers:
The bottom layer is responsible for pixel packaging, which is implemented by PixelFormat renderer, the middle tier is the base level, provides more methods on the basis of PixelFormat renderer, is the basis of all high level renderer dependencies, and is realized by base renderer The high-level is responsible for rendering the line segments in the scanline by Scanline renderer.