aseprite/src
David Capello a088bf46a2 Remember exact window position (e.g. in which monitor it was closed)
It's working on alleg4 port on Windows only.
2015-12-11 19:40:18 -03:00
..
allegro
app Remember exact window position (e.g. in which monitor it was closed) 2015-12-11 19:40:18 -03:00
base Support for FreeBSD get_app_path 2015-12-09 00:43:15 -06:00
cfg
css
doc Include opacity and blend mode for each layer in JSON output 2015-12-09 11:00:57 -03:00
filters Minor change in get_neighboring_pixels() 2015-12-04 17:46:50 -03:00
fixmath
flic@da184cbc57
gen
gfx Refactor several "getNoun()" getters to "noun()" 2015-12-04 14:39:04 -03:00
iff
main
net
render
scripting
she Remember exact window position (e.g. in which monitor it was closed) 2015-12-11 19:40:18 -03:00
tests
ui Rename PopupWindow enums 2015-12-05 15:56:32 -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.
  • fixmath: Fixed point operations (original code from Allegro code by Shawn Hargreaves).
  • flic: Library to load/save FLI/FLC files.
  • scripting: JavaScript engine.
  • undo: Generic library to manage a history of undoable commands.

Level 1

  • cfg (base): Library to load/save .ini files.
  • gen (base): Helper utility to generate C++ files from different XMLs.
  • gfx (fixmath): Abstract graphics structures like point, size, rectangle, region, color, etc.
  • net (base): Networking library to send HTTP requests.
  • webserver (base): HTTP web server (based on mongoose)

Level 2

  • doc (base, fixmath, gfx): Document model library.
  • she (allegro, base, gfx): A wrapper for the Allegro library.

Level 3

  • filters (base, doc, gfx): Effects for images.
  • render (base, doc, gfx): 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 4

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

Level 5

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

Level 6

  • 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.