Architecture

The basic class hierarchy of libsugar-gl closely mimics the class hierarchy of libsugar, with a few important exceptions. Some of the classes in libsugar-gl have been generalized to cover multiple SVG elements. This has the affect of stripping away unnecessary information to streamline OpenGL rendering process. For example, the Sugar grouping objects (SugGroupElement, SugDefsElement, SugSymbolElement), are all generalized into a single class in libsugar-gl: GlSvgGroup. Likewise; SugRectElement, SugPathElement, SugPolygon, and SugPolyline are generalized into the GlSvgGeometry class.

The rest of libsugar-gl's architecture is straightforward. All the source files that make up the renderable hierarchy for libsugar-gl can be found in the sugar/src/libsugar-gl/renderer directory.