ce77a38303
There are cases where we need to modify the list of observers of certain entity when we are in a notification loop (i.e. iterating its observers). E.g. A general update notification about the current document to all its observers could create the mini editor, which is a DocumentObserver, so a new observer is added to the list in the same notification loop. Anyway, as we cannot modify the observer list (std::vector) when we are notifying them (any modification in the std::vector invalidates its iterators), the fix is quite easy (but not optimal): we can create a copy of the observers list so we can iterate the list. Note: If we have performance issues about this, we could try a std::list, but at the moment this fix is quite enough. |
||
---|---|---|
cmake | ||
data | ||
docs | ||
scripts | ||
src | ||
third_party | ||
.gitignore | ||
CMakeLists.txt | ||
CONTRIBUTING.md | ||
INSTALL.md | ||
LICENSE.txt | ||
README.md | ||
TODO.md |
Aseprite
Copyright (C) 2001-2014 David Capello
THIS PROGRAM IS DISTRIBUTED WITHOUT ANY WARRANTY
See the license section for more information.
Introduction
Aseprite is an open source program to create animated sprites. Its main features are:
- Sprites are composed by layers & frames (as separated concepts).
- Supported color modes: RGBA, Indexed (palettes up to 256 colors), and Grayscale.
- Load/save sequence of PNG files and GIF animations (also FLC, FLI, JPG, BMP, PCX, TGA).
- Export/import animations to/from Sprite Sheets.
- Tiled drawing mode, useful to draw patterns and textures.
- Undo/Redo for every operation.
- Mini-editor with real-time animation preview.
- Multiple editors support.
- Pixel art specific tools like filled Contour & Polygon.
- Onion skinning
Issues
There are a list of Known Issues (things to be fixed or that aren't yet implemented).
If you found a bug, or you have a new idea/feature for the program, you can report them using the following links:
Support
You can ask for help in:
- Aseprite mailing list (subscribe)
- Website (IRC, G+, Facebook, deviantArt, etc.)
License
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Authors
- David Capello davidcapello@gmail.com
Programmer, designer, and maintainer.
http://dacap.com.ar/ - Ilija Melentijevic
New GUI skin (from Aseprite 0.8). A lot of good ideas.
http://ilkke.blogspot.com/
http://www.pixeljoint.com/p/9270.htm - Contributors
http://code.google.com/p/aseprite/people/list
Thanks to all the people who have contributed ideas, patches, bugs report, feature requests, donations, and help me developing Aseprite.
Credits
Aseprite uses libraries or parts of the original source code of the following projects created by third-parties:
- Allegro 4 - allegro4 license
- curl - curl license
- FreeType - FTL license
- giflib - giflib license
- GIMP - GPL license
- GTK+ - LGPL license
- Google Test - gtest license
- mongoose - MIT license
- libart - LGPL license
- libjpeg - libjpeg license
- libpng - libpng license
- loadpng - zlib license
- tinyxml - zlib license
- XFree86 - XFree86 license
- zlib - ZLIB license
Other parts of code by:
- Gary Oberbrunner
Code to quantize RGB images with ordered dither method.