aseprite/src
2015-08-10 12:54:50 -03:00
..
allegro Fix visual artifacts on Windows when the window is resized 2015-07-30 16:15:21 -03:00
app Add immediate feedback when Ctrl/Shift modifiers are pressed in TwoPointsController 2015-08-10 12:54:50 -03:00
base
cfg
css
doc Fix remapping decoded gif files to the global colormap when mask != 0 2015-07-31 13:32:23 -03:00
filters Fix target buttons in replace color command (fix #125) 2015-08-05 10:59:54 -03:00
fixmath
gen Remove SkinParts enum 2015-08-04 19:38:52 -03:00
gfx
iff
main
net
render Change zoom scale to avoid similar zoom levels 2015-08-04 12:26:58 -03:00
scripting
she Fix crash double-clicking a file on MacOS X Finder 2015-08-06 17:36:41 -03:00
tests
ui Remove SkinParts enum 2015-08-04 19:38:52 -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)

Debugging Tricks

On Windows, you can use F5 to show the amount of used memory. Also Ctrl+Shift+Q crashes the application in case that you want to test the anticrash feature or your need a memory dump file.