Amanith Framework is a cross-platform (Linux, Win32, MacOS X, FreeBSD and IRIX) open source C++ framework for vector graphics. This version implements a new drawboard in OpenVG/SVG style, totally built on top of OpenGL, going from OpenGL 1.1 to OpenGL 2.0, using extensions where available and fragment programs too.
Main features are:
- The entire drawboard is adaptive, 3 quality levels are available: LOW, NORMAL, HIGH.
- Logical viewport can be modified independently by the physical one, at any time.
- Shapes can be stroked and/or filled, independently.
- Stroke can be solid or dashed and also stroke thickness can be changed.
- Supported stroke joins are: BEVEL, ROUND, MITER.
- Supported stroke caps are: BUTT, SQUARE, ROUND.
- Supported drawing styles are: COLOR, LINEAR/RADIAL/CONICAL GRADIENT, PATTERN.
- Supported color interpolation modes in gradients are: CONSTANT, LINEAR, HERMITE.
- Supported spread methods in gradients and patterns are: PAD, REPEAT, REFLECT.
- Gradients and patterns have their own transformation matrix.
- The opacity is always supported in colors, gradients, gradients color keys and patterns.
- Group opacity is also supported, it needs a 4bits (or more) stencil buffer.
- Clip paths are supported, they need a 4bits (or more) stencil buffer.
- Stroke and fill can be drawn using any of supported styles, independently.
- Supported geometric primitives are: LINE, QUADRATIC/CUBIC BEZIER, ELLIPTICAL ARC, RECTANGLE, ROUND RECTANGLE, CIRCLE, ELLIPSE, POLYGON, PATH.
- Path can be specified using SVG commands or directly with SVG string.
- All Amanith curves and path can be drawn directly.
- Every shape can be transformed specifying a model-view matrix.