aseprite/src
2015-04-09 11:36:09 -03:00
..
allegro
app Remove unused variables/functions 2015-04-09 11:36:09 -03:00
base Add base::concurrent_queue::empty() member function 2015-04-06 11:52:04 -03:00
cfg
css
doc Remove implicit SharedPtr conversion to T* 2015-04-02 20:42:43 -03:00
filters Remove implicit SharedPtr conversion to T* 2015-04-02 20:42:43 -03:00
fixmath
gen Remove implicit SharedPtr conversion to T* 2015-04-02 20:42:43 -03:00
gfx
iff
main
net
render Remove implicit SharedPtr conversion to T* 2015-04-02 20:42:43 -03:00
scripting
she Fix flags to use Skia backend on OS X 2015-04-01 12:37:55 -03:00
tests
ui Replace StatusBar progress bars with a slider/progress bar in ui::Alert 2015-04-07 12:18:21 -03:00
undo
updater
webserver
CMakeLists.txt
config.h
README.md

Aseprite Source Code

If you are here is because you want to learn about Aseprite source code. We'll try to write in these README.md files a summary of each module/library.

Modules & Libraries

Aseprite is separated in the following layers/modules:

Level 0: Completely independent modules

These libraries are easy to be used and embedded in other software because they don't depend on any other component.

  • allegro: Modified version of Allegro library, used for keyboard/mouse input, and drawing 2D graphics on screen.
  • base: Core/basic stuff, multithreading, utf8, sha1, file system, memory, etc.
  • css: Pseudo-style sheet library.
  • gfx: Abstract graphics structures like point, size, rectangle, region, color, etc.
  • scripting: JavaScript engine (V8).
  • undo: Generic library to manage a history of undoable commands.

Level 1

  • cfg (base): Library to load/save .ini files.
  • doc (base, gfx): Document model library.
  • gen (base): Helper utility to generate C++ files from different XMLs.
  • net (base): Networking library to send HTTP requests.
  • she (base, gfx, allegro): A wrapper for the Allegro library.
  • webserver (base): HTTP web server (based on mongoose)

Level 2

  • filters (base, doc, gfx): Effects for images.
  • render (base, gfx, doc): Library to render documents.
  • ui (base, gfx, she): Portable UI library (buttons, windows, text fields, etc.)
  • updater (base, net): Component to check for updates.

Level 3

  • iff (base, doc, render): Image File Formats library (load/save documents).

Level 4

  • app (allegro, base, doc, filters, gfx, iff, render, scripting, she, ui, undo, updater, webserver)

Level 5

  • main (app, base, she, ui)