From c853ffb5b2f75f5a889ed2e3ef89b818a736e87a Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 13 Apr 2024 13:50:49 +0200 Subject: Adding upstream version 1.3+ds. Signed-off-by: Daniel Baumann --- doc/architecture.svg | 826 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 826 insertions(+) create mode 100644 doc/architecture.svg (limited to 'doc/architecture.svg') diff --git a/doc/architecture.svg b/doc/architecture.svg new file mode 100644 index 0000000..3c332a3 --- /dev/null +++ b/doc/architecture.svg @@ -0,0 +1,826 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + Module subsystem + (src/modules/*) + + + + SPModules (aka plugins) handle filtering, input and export of + SPModuleDocs (wrapped SPDocuments) and to eventually + encompass more functionality like e.g. providing tool + implementations. + + + + + + + New Renderer + (src/libnr/*) + + + + New Renderer Typesetting (src/libnr/libnrtype/*) + + + + Display Glue + (src/display/*) + + + + View subsystem + (src/view.*, src/desktop*.*, src/svg-view.* and others) + + + + SPView is an abstract class representing a "view" of an SPDocument. It + has a companion SPViewWidget class for the associated display widget. + + SPDesktop is an editable SPView, and SPSVGView is a display-only view + (e.g. the about box). Both maintain an SPCanvas and provide an + SPCanvasArena for SPObjects to display on. They have associated + SPViewWidget subclasses: SPDesktopWidget and SPSVGViewWidget. + SPDesktop is also responsible for maintaining the current selection in + an SPSelection. + + SPDesktopWidget isn't just a bare canvas; it includes the scrollbars and + other decorations. + + SPEventContexts handle tool state and interaction. + + + + This subsystem provides a lightweight arena abstraction. + + NRArena - a collection of lightweight renderable NRArenaItems. + + SPCanvasArena - an SPCanvasItem that renders the contents of an + NRArena. + + + + The new rendering subsystem mostly replaces libart. It renders + filled/stroked bezier curves and polygons into NRPixBlocks (image + buffers) + + + + Adaptor routines for using Xft, Win32, Gnome, and Freetype 2 to manage + font metrics and outlines. + + + + + SPCanvas - handles input events + SPCanvasItem - objects that can be displayed on SPCanvas + + + + SVG Canvas + (src/helper/sp-canvas*) + + + + + + SVG document model + (src/sp-*.h and others) + + + + Enforces validity constraints on the SPRepr document. + + SPDocument - an SVG document containing SPObjects. + + SPObjects - handles short term changes & propagates + longer term ones to the SPRepr + + SPItems - SPObjects that can be rendered. They have hide() and show() + methods for creating an associated NRArenaItem in a given NRArena. + + + + + XML doc model + (src/xml/*) + + + + SPRepr - node in an XML + document (elements, + attributes, and text nodes). + Transactions are logged + for replaying/undoing + changes. + + + Cruft subsystem - (src/svg/*) + + + + Assorted stuff left over from + when Sodipodi forked from + Gill which doesn't have a better + home. + + + Inkscape Graphical User Interface (src/widgets, src/dialogs) + + + + widgets/* - Utilities and custom widgets to assist in implementing + the Inkscape GUI and to enforce a common look and feel style + across the application. + + + + dialogs/* - Code for creating the various UI dialogs in the + application. + + + + dialogs/xml-tree.* - Code for + creating and maintaining an + interface for editing XML trees. + + -- cgit v1.2.3