196 Commits

Author SHA1 Message Date
David Capello
a76a1117f1 Fix crash using RotSprite with width/height == 0 (fix #1056) 2016-04-12 17:29:23 -03:00
David Capello
221e9bf4fc Add base::normalize_path() 2016-04-11 19:17:39 -03:00
David Capello
8338784735 Fix crash using RotSprite algorithm on Sprite Size command 2016-04-04 11:39:32 -03:00
David Capello
8028cf64db Merge branch 'unicode-text'
# Conflicts:
#	third_party/libpng
#	third_party/zlib
2016-04-04 10:26:57 -03:00
David Capello
f696d895b4 Do not remap indexes between palette entries that are equal (fix #914) 2016-03-24 17:37:04 -03:00
David Capello
d4faf04946 Add a rgba_blender_normal() version without opacity
This can be used to speed up text rendering and rotation algorithm.
2016-03-22 18:40:47 -03:00
David Capello
ce02a31c01 Improve image_scale_tpl() performance using an iterator for source image 2016-03-22 18:23:03 -03:00
David Capello
14262c270c Fix crash on image_scale_tpl() and rotsprite_image() 2016-03-22 17:05:45 -03:00
David Capello
66e3cacbd0 Add RotSprite as a resize algorithm on Sprite > Resize Sprite menu 2016-03-22 17:02:41 -03:00
David Capello
0abe01c5f4 Merge she::LockedSurface/NonDisposableSurface with she::Surface 2016-03-09 11:00:17 -03:00
David Capello
451bf02b82 Remove unused variable from replace_image_colors() 2016-03-03 23:41:46 -03:00
David Capello
1ee3efd91d doc/image_buffer.h needs uint8_t definition 2016-03-03 23:25:49 -03:00
David Capello
285deb603e Define _CRT_SECURE_NO_WARNINGS on sub-libraries that need it 2016-03-03 19:22:52 -03:00
David Capello
8c9d9eb84c Replace NULL with nullptr on files that don't include base/base.h 2016-03-03 19:20:57 -03:00
David Capello
9a7ffab5a0 Move stdints to base/ints.h file 2016-03-03 19:20:00 -03:00
David Capello
5f97e66a8b Include base/base.h on files that use MIN/MID/MAX 2016-03-03 19:18:46 -03:00
David Capello
4f6a7a7742 Include base/debug.h on files that use ASSERT or TRACE 2016-03-03 19:17:07 -03:00
David Capello
c1a2cbebde Remove "typename" keyword in replace_image_colors() 2016-02-26 10:09:45 -03:00
David Capello
2da643ef56 Fix warning in doc::write_string() 2016-02-26 10:09:03 -03:00
David Capello
5c61e92193 Change custom brush color when we change fg/bg colors 2016-02-25 18:48:59 -03:00
David Capello
be57d0332f Fix setting opacity or user data of linked cels when the first cel isn't included in the active range 2016-02-01 18:05:40 -03:00
David Capello
6fb5258e51 Load/save custom brushes 2015-12-22 10:55:15 -03:00
David Capello
addddf78a5 Add color field to doc::UserData 2015-12-11 19:18:36 -03:00
David Capello
8b5d013b03 Serialize user data for layers and cel data
In this way undo/redo restore user data.
2015-12-11 15:11:24 -03:00
David Capello
08bef859e3 Add user data field on layers and cels 2015-12-10 18:34:25 -03:00
David Capello
e63dea61fd Include opacity and blend mode for each layer in JSON output 2015-12-09 11:00:57 -03:00
David Capello
2d2434daea Export AniDir field for FrameTags in JSON meta attribute 2015-12-03 12:07:46 -03:00
David Capello
e525fc10a6 Add --all-layers option to export hidden layers (fix #805)
Now Aseprite will export only visible layers by default.

- Added doc::LayersRange to simplify layer iteration
2015-11-05 13:01:53 -03:00
David Capello
4a67a96edd Use mask in flood fill as edges (fix #823) 2015-11-04 16:48:25 -03:00
David Capello
78daffba73 Fix shading mode on RGB mode when index 0 is involved (fix #794)
As now the RgbMap is generated correctly depending on the current layer
(if it’s opaque or transparent), we’ve fixed
LockAlpha/Transparent/Merge/Blur/Replace/JumbleInkProcessing for
Indexed images with a background layer, when a transparent layer is the
active one, and when a non-mask index has same RGB values than the mask
index.
2015-11-04 10:33:23 -03:00
David Capello
9225420eba Minor change in floodfill.h/cpp 2015-11-02 16:45:09 -03:00
David Capello
1bb0bca361 doc and gfx libraries depends on fixmath (fix #817) 2015-09-24 10:02:52 -03:00
David Capello
a9c3f82c11 Use a binary search to find cels in LayerImage 2015-09-15 08:18:52 -03:00
David Capello
510a686020 Change CelList and LayerList from std::list to std::vector
This change gives us an huge performance improvement to paint the
Timeline widget.
2015-09-14 17:37:21 -03:00
David Capello
dc9ee103f0 Make CelProperties dialog non-modal 2015-08-21 08:35:29 -03:00
David Capello
728432f9e5 Convert "Layer Properties" dialog in a non-modal window 2015-08-21 00:44:28 -03:00
David Capello
0ec21a461a Fix asserts in Palette::makeGradient() 2015-08-11 12:43:29 -03:00
David Capello
cc90c3e6f4 Fix remapping decoded gif files to the global colormap when mask != 0 2015-07-31 13:32:23 -03:00
David Capello
1b4ff37112 Simplify remap between old -> new palette
Now the remap is calculated from the old palette to the new palette when
the "Remap" button is pressed. In this way we can remap after loading
a new palette (fix #737), or after generating an optimized palette, or
changing colors (fix #563).
2015-07-28 17:16:32 -03:00
David Capello
58db0fba09 Fix bug clearing an Image with color=0 in rotsprite
Introduced in commit 35229e99a6196d71b90ef2762abb32b0a164f594
2015-07-28 11:06:35 -03:00
David Capello
8f891a4e25 Add asserts to detect bugs adding cels w/pixel format != sprite's pixel format 2015-07-27 12:40:02 -03:00
David Capello
35229e99a6 Add opaque/transparent mode in context bar for transformations (fix #546)
With this change now we add a "mask" image/parameter in rotation
functions. In this way we can identify which specific pixels are
inside the original mask/selection, and in opaque mode we can
include/scale/rotate all those pixels inside the mask, whatever
value they are, even if they are the mask color.

Fixes #730
2015-07-23 22:42:14 -03:00
David Capello
ba4c34a70f Add options to sort the palette by RGBA channels 2015-07-23 11:13:43 -03:00
David Capello
7f4d4936e1 Re-implement GIF encoder
- Correct usage of disposal methods (and possibility to generate records
  with "restore previous frame" disposal method)
- Create color maps for each frame when necessary
- Remove options to dither RGB images (to simplify encoder)
2015-07-22 16:40:44 -03:00
David Capello
cb867b7f84 Re-implement GIF decoder to load some .gif files correctly (fix #729)
- Better palette creation depending on local colormaps
- Reuse palette colors from previous frames
- Use frame transparent index correctly
- Convert to RGB automatically if the image has more than 256 colors
- Remove onPostLoad()
- Add progress bar feedback
2015-07-17 12:26:11 -03:00
David Capello
af9d5c917f Keep the relative order of equal entries in sort_palette() 2015-07-14 07:47:22 -03:00
David Capello
55f90d8b8b Add target_link_libraries() for sublibraries
With this change we remove some internal variables/lists like sys_libs,
libs3rdparty, etc. And we fix dependencies problems between targets.
2015-07-13 12:16:55 -03:00
David Capello
98297de464 Add backward compatibility for color palette in .ase files
With this change we save the new palette chunk when it's necessary, and
the old color2 chunk will be always present only for backward
compatibility. (So we can open a .ase file saved with v1.1 in v1.0.)
2015-07-07 12:18:56 -03:00
David Capello
8fd756c32a Add Edit > Shift commands (fix #681) 2015-07-06 18:48:55 -03:00
David Capello
210d9c7591 Add warning and correct undo information for unsafe remaps in 8-bit images (fix #715) 2015-07-06 16:15:54 -03:00