Skip to content

Latest commit

 

History

History
 
 

src

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 undo history of undoable actions.

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.
  • 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): Image File Formats library (load/save documents).

Level 4

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

Level 5

  • main (app, base, she, ui)