mirror of
https://github.com/aseprite/aseprite.git
synced 2025-01-28 18:32:50 +00:00
cd07acb6a0
This fixes a lag problem using the arrow keys to move the selection content.
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.