a 2D scene graph based on SVG with OpenGL backend
Cloned from https://bitbucket.org/rndblnch/seagull/
Goals:
- 2D scene graph suitable for interactive rendering
- minimal set of dependencies
Non-goals:
- full SVG implementation
- optimized for speed
- pythonic API modeled after SVG spec & semantic
- SVG parsing and serialization
- scale dependent polygonalization
- analytical picking
- sub-pixel strokes rendering enhancement through width and opacity correction
- per-pixel gradients
- two modes text rendering: raster by freetype2 for high quality AA at small sizes, vector otherwise
implemented:
- shapes: path, rect, circle, ellipse, line, polyline, polygon, image
- text: (excluding decoration, text on path)
- structure: group, use (including attributes inheritance)
- painting: solid color, linear and radial gradients (including units, transform, spread, href);
- fill: rule (nonzero, evenodd)
- stroke: cap (butt, round, square), join (miter, round, bevel), miterlimit
- multi-pass rendering: clipping, masking, object opacity
- transforms: translate, rotate, scale, skewX, skewY
eventually:
- tspan
- painting: pattern
- stroke: dash, marker
- filters
never:
- DOM API
- PyOpenGL 3.0.2+ OpenGL python bindings
- Pillow 2+ Python Imaging Library (fork)
- freetype2 font engine
- GNU FreeFont Free UCS Outline Fonts
Needed to find fonts, fallbacks on FreeFont otherwise.
on the mac:
- pyobjc-framework-CoreText wrappers for the framework CoreText on Mac OS X