mirror of
https://github.com/aseprite/aseprite.git
synced 2025-02-06 12:39:57 +00:00
495a645917
This might be useful in extreme cases where the normal restoration procedure doesn't work/restore the whole sprite structure correctly.
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.
- steam: Steam API wrapper to avoid static linking to the .lib file.
- undo: Generic library to manage a history of undoable commands.
- wacom: Wacom definitions to use Wintab API.
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.
- pen (base, wacom): Library to handle graphics tablet input.
- webserver (base): HTTP web server
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, pen, 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.