mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-01 10:13:22 +00:00
This is needed if we change the user data color for some cels and we're navigating the Undo History to undo/redo those changes. In this way we see how the user data is updated in the Timeline.
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.