mirror of
https://github.com/aseprite/aseprite.git
synced 2025-04-16 14:42:44 +00:00
As PixelsMovement class uses the extra cel to show the pixels that we're moving, we cannot show brush previews of quicktools (as the brush preview uses/destroy/regenerate the same extra cel for its own purpose).
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 undo history of undoable actions.
Level 1
- cfg (base, allegro): Library to handle configuration/settings/user preferences.
- gen (base): Helper utility to generate C++ files from different XMLs.
- net (base): Networking library to send HTTP requests.
- raster (base, gfx): Library to handle graphics entities like sprites, images, frames.
- she (base, gfx, allegro): A wrapper for the Allegro library.
- webserver (base): HTTP web server (based on mongoose)
Level 2
- doc (raster, base, gfx): Document model library.
- filters (base, gfx, raster): FX for raster images.
- 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): Image File Formats library (load/save documents).
Level 4
- app (allegro, base, doc, filters, gfx, iff, raster, scripting, she, ui, undo, updater, webserver)
Level 5
- main (app, base, she, ui)