Animated sprite editor & pixel art tool (Windows, macOS, Linux)
Go to file
David Capello f178941f2c Fix crash copying, pasting, and transforming selection (fix #4249)
Regression introduced with 8722c8ec16
and d3562b140c.

Our re-entrant RWLock implementation is tricky because it doesn't
support to unlock in different order than it was locked.

E.g. If we create a DocWriter (e.g. paste command), and try to create
a DocReader (e.g. PixelsMovement) inside the DocWriter scope, the
reader will return a LockResult::Reentrant, but if we unlock the
write, then the reader cannot be used to upgradeToWrite() because the
lock will have just 0 locks (the re-entrant one didn't modify the
count of the RWLock). This is because it was thought that the
DocReader was going to be unlocked before the writer lock (in the
exact inverse order).

Basically these re-entrant RWLocks will not work fine if we mix up the
order of locks/unlocks in the same thread.
2023-12-29 17:22:10 -03:00
.github Add a workflow to close spammy PRs 2023-11-10 10:42:46 -03:00
cmake Rename src/tests/test.h -> src/tests/app_test.h to avoid confusion with observable tests/test.h 2021-12-23 21:38:17 -03:00
data [i18n] Update credits README 2023-12-29 10:33:31 -03:00
docs Add support to match flipped tiles automatically in Auto/Stack modes 2023-11-09 16:44:46 -03:00
laf@157533d160 A Tx now will always try to lock the document if possible (#2430) 2023-12-27 11:05:15 -03:00
src Fix crash copying, pasting, and transforming selection (fix #4249) 2023-12-29 17:22:10 -03:00
tests [lua] Fix crashes setting values out of bounds in JSON objects (fix #4166) 2023-11-30 18:40:02 -03:00
third_party Update submodules: laf, simpleini 2023-12-06 12:51:29 -03:00
.clang-format Update clang-format file 2023-05-24 14:23:42 -03:00
.clang-tidy Add ENABLE_CLANG_TIDY option 2019-05-03 09:34:02 -03:00
.editorconfig EditorConfig: Don't use tabs in .md files 2023-10-31 20:05:01 -03:00
.gitignore Ignore all generated files when we run CLI tests 2022-12-19 17:23:01 -03:00
.gitmodules [lua] Add native API to decode/encode JSON text (fix #3233) 2023-07-17 09:25:13 -03:00
CMakeLists.txt Remove cmake policies that aren't used anymore 2023-11-26 21:46:20 -03:00
CODE_OF_CONDUCT.md Update code of conduct to v1.2.0 2015-09-21 18:44:13 -03:00
CODEOWNERS Add CODEOWNERS file to assign PRs automatically 2019-02-17 23:09:53 -03:00
CONTRIBUTING.md Update CLA signing process 2022-11-11 17:13:58 -03:00
EULA.txt Update EULA 2018-12-06 12:25:23 -03:00
INSTALL.md Clarify Windows instructions for 64-bit Skia 2023-10-02 09:55:25 -03:00
README.md Fix typo in README from the solo project era 2023-12-12 18:41:23 -03:00

Aseprite

build Translation Status Discourse Community Discord Server

Introduction

Aseprite is a program to create animated sprites. Its main features are:

Issues

There is a list of Known Issues (things to be fixed or that aren't yet implemented).

If you found a bug or have a new idea/feature for the program, you can report them.

Support

You can ask for help in:

Authors

Aseprite is being developed by Igara Studio:

Credits

The default Aseprite theme was introduced in v0.8, created by:

A modified dark version of this theme introduced in v1.3-beta1 was created by:

Aseprite includes color palettes created by:

It tries to replicate some pixel-art algorithms:

Thanks to third-party open source projects, to contributors, and all the people who have contributed ideas, patches, bugs report, feature requests, donations, and help us to develop Aseprite.

License

This program is distributed under three different licenses:

  1. Source code and official releases/binaries are distributed under our End-User License Agreement for Aseprite (EULA). Please check that there are modules/libraries in the source code that are distributed under the MIT license (e.g. laf, clip, undo, observable, ui, etc.).
  2. You can request a special educational license in case you are a teacher in an educational institution and want to use Aseprite in your classroom (in-situ).
  3. Steam releases are distributed under the terms of the Steam Subscriber Agreement.

You can get more information about Aseprite license in the FAQ.