Developer Documentation

From Synfig Studio :: Documentation
Jump to: navigation, search
m (add png lib)
m (formating)
Line 1: Line 1:
 +
<!-- Page info -->
 +
{{Title|Developer Documentation}}
 +
{{TOCright}}
 +
<!-- end Page info -->
 
The Developer Documentation part of this wiki is primarily for the following groups of people:
 
The Developer Documentation part of this wiki is primarily for the following groups of people:
  
Line 5: Line 9:
 
*Those interested in bug filing and generating ideas
 
*Those interested in bug filing and generating ideas
  
Index:
+
= Main pages =
  
 
* {{l|Dev:Build Instructions|Build Instructions}}
 
* {{l|Dev:Build Instructions|Build Instructions}}
Line 18: Line 22:
 
* {{l|Dev:ETL_replacement|ETL replacement}}
 
* {{l|Dev:ETL_replacement|ETL replacement}}
  
 
+
=Synfig components=
 
Synfig is divided into three main components: etl, synfig-core and synfig-studio.
 
Synfig is divided into three main components: etl, synfig-core and synfig-studio.
 
* '''[http://download.tuxfamily.org/synfig/api/ETL/annotated.html ETL]''' is the extended template library. One of its most important components is the shared object class, which is the base class for most other parts of the application. Using "handles" to shared objects instead of c++ pointers provides garbage collection via reference counting.
 
* '''[http://download.tuxfamily.org/synfig/api/ETL/annotated.html ETL]''' is the extended template library. One of its most important components is the shared object class, which is the base class for most other parts of the application. Using "handles" to shared objects instead of c++ pointers provides garbage collection via reference counting.
Line 25: Line 29:
 
* See also: {{l|Dev:How Synfig Works|How Synfig Works}}
 
* See also: {{l|Dev:How Synfig Works|How Synfig Works}}
  
 
+
= External libs =
Synfig use several external libs :
+
== Synfig use several external libs==
 
* [https://developer.gnome.org/gtkmm-tutorial/2.24/ Gtkmm 2], some work on branchs has been started to reach [https://developer.gnome.org/gtk3/ Gtkmm 3] ([https://developer.gnome.org/gtk3/3.4/gtk-migrating-2-to-3.html Migrating 2to3])
 
* [https://developer.gnome.org/gtkmm-tutorial/2.24/ Gtkmm 2], some work on branchs has been started to reach [https://developer.gnome.org/gtk3/ Gtkmm 3] ([https://developer.gnome.org/gtk3/3.4/gtk-migrating-2-to-3.html Migrating 2to3])
 
* [https://developer.gnome.org/gtkmm/2.24/namespaceGdk_1_1Cairo.html Cairo] (Cairo render mode)
 
* [https://developer.gnome.org/gtkmm/2.24/namespaceGdk_1_1Cairo.html Cairo] (Cairo render mode)
Line 35: Line 39:
 
* [http://www.libpng.org/pub/png/libpng.html libpng] (load and write .png files)
 
* [http://www.libpng.org/pub/png/libpng.html libpng] (load and write .png files)
  
Optionally you will also need :
+
==Optionally you will also need==
 
* [http://www.imagemagick.org/Magick++/ Magick++] the ImageMagick API (to build mod_magickpp, the magick++ module from synfig-core)
 
* [http://www.imagemagick.org/Magick++/ Magick++] the ImageMagick API (to build mod_magickpp, the magick++ module from synfig-core)
 
* libavcodec (to build mod_libavcodec, from synfig-core)
 
* libavcodec (to build mod_libavcodec, from synfig-core)
Line 42: Line 46:
  
  
Complete coding tutorials:
+
=Complete coding tutorials=
 
* {{l|Dev:Adding a Layer|Adding a Layer}}
 
* {{l|Dev:Adding a Layer|Adding a Layer}}
 
* Adding a Panel, {{l|Dev:Adding a Panel - Part I|Part I}} and {{l|Dev:Adding a Panel - Part II|Part II}}. '''Note: these are highly out of date''' please note that the directory "gtkmm" has been renamed to "gui", Panel is now know has Dock. Also, some files were moved into subfolders (take a look inside the "gui/docks" folder for example).
 
* Adding a Panel, {{l|Dev:Adding a Panel - Part I|Part I}} and {{l|Dev:Adding a Panel - Part II|Part II}}. '''Note: these are highly out of date''' please note that the directory "gtkmm" has been renamed to "gui", Panel is now know has Dock. Also, some files were moved into subfolders (take a look inside the "gui/docks" folder for example).
  
  
Other links:
+
=Other links=
 
+
 
* [http://download.tuxfamily.org/synfig/api/index.html ETL, Synfig, SynfigStudio Api documentation]
 
* [http://download.tuxfamily.org/synfig/api/index.html ETL, Synfig, SynfigStudio Api documentation]
 
* [http://synfig.org/wiki/index.php?title=Special:PrefixIndex&from=&namespace=102  All Dev namespace pages]
 
* [http://synfig.org/wiki/index.php?title=Special:PrefixIndex&from=&namespace=102  All Dev namespace pages]

Revision as of 14:38, 23 June 2015

Languages Language: 

English • čeština • español



The Developer Documentation part of this wiki is primarily for the following groups of people:

  • Current developers of the code
  • Future and potential developers
  • Those interested in bug filing and generating ideas

Main pages

Synfig components

Synfig is divided into three main components: etl, synfig-core and synfig-studio.

  • ETL is the extended template library. One of its most important components is the shared object class, which is the base class for most other parts of the application. Using "handles" to shared objects instead of c++ pointers provides garbage collection via reference counting.
  • Synfig-core is the core/command-line (cli) renderer ("synfig") contains the document data structure for the application: valuenodes, layers, and canvases.
  • Synfig Studio ("synfig-studio") provides the gui for the application.
  • See also: How Synfig Works

External libs

Synfig use several external libs

Optionally you will also need

  • Magick++ the ImageMagick API (to build mod_magickpp, the magick++ module from synfig-core)
  • libavcodec (to build mod_libavcodec, from synfig-core)
  • libmng (to build mod_mng, from synfig-core)

... check the Build Instructions page for more detailed informations.


Complete coding tutorials

  • Adding a Layer
  • Adding a Panel, Part I and Part II. Note: these are highly out of date please note that the directory "gtkmm" has been renamed to "gui", Panel is now know has Dock. Also, some files were moved into subfolders (take a look inside the "gui/docks" folder for example).


Other links


Languages Language: 

English • čeština • español