53 Commits

Author SHA1 Message Date
David Capello
9dfec919e4 Fix issue merging frames that weren't rendered on any editor at least once
This bug is because the mask color of cel images were fixed when they
were used in the rendering process. Now, the mask color is fixed when the
image is added to the raster::Stock structure.
2014-06-09 22:36:42 -03:00
David Capello
09027fdee4 Fix issue #258 - bug moving a cel from a transparent layer to background
The problem was in DocumentApi::moveCel(). We cannot move a Cel between
layers and frames at the same time easily (it's not possible to do it
without being in a temporal invalid state, e.g. where two cels are in the
same frame position). It's better if we create completely new cel for
the target and remove the previous one in all cases (undoers are already
prepared to do those operations correctly).

- Add Sprite::getImageRefs() member function.
2014-05-02 11:28:03 -03:00
David Capello
942dba36fd Timeline: add support to move/copy ranges (multiple cels/frames/layers)
- Merge Timeline::STATE_MOVING_LAYER/CEL/FRAME to STATE_MOVING_RANGE.
- Remove celmove.h/cpp and move_cel/copy_cel functions. Now they are
  in the Timeline as dropRange/Cels/Frames/Layers member functions.
- Add DocumentApi::copyFrame/moveCel/copyCel member functions.
- Add timeline_drop_layer_deco and timeline_drop_frame_deco skin parts.
- Move code from DuplicateLayerCommand::onExecute() to new member
  function DocumentApi::duplicateLayer().
- Fix a bug changing Cel's frame number: we weren't updating the Cel
  position properly inside the LayerImage::m_cels collection. Now we use
  LayerImage::moveCel() to change the Cel frame number.
- Other fixes to DocumentApi: Change bgcolor from int to color_t.
2014-04-09 21:56:06 -03:00
David Capello
e5ba8e0922 Encapsulate Image implementation (private members, accessors, iterators, etc.)
- Rename _rgba/_graya to raster::rgba()/graya()
- Add raster::color_t type (alias for uint32_t)
- Rename raster::GfxObj to Object. And GfxObj::getType() to Object::type()
- Move conversion from raster::Image/Palette to Allegro BITMAP/RGB
  to raster/conversion_alleg.h file
- Add raster/color_scales.h
- Rename image_* functions to raster/primitives.h
- Reimplement ink processing with templates instead of macros
2013-11-09 19:59:05 -03:00
David Capello
cde54f3682 Change BSD license to MIT in sublibraries and fix headers 2013-08-08 21:01:20 -03:00
David Capello
c88f9b172b Refactor: Move app files to src/app subdirectory inside app namespace
- Add HAVE_CONFIG_H wrapper to #include "config.h"
- Removed widgets namespace (it's in app now)
- Move some functions from src/file/file.h to src/base/cfile.h
- Move Vector2d to base library
- Rename MenuItem2 to AppMenuItem
2013-08-05 21:20:19 -03:00
David Capello
527c85e26e Replace image_free() with UniquePtrs 2013-03-30 19:53:52 -03:00
David Capello
9b8e87da10 Update copyright year to 2013 2013-01-27 12:13:13 -03:00
David Capello
c5cf588370 Rename some member_functions to memberFunctions 2013-01-11 12:43:25 -03:00
David Capello
85f7bf8ba8 Rename Layer::add/remove/move_layer member functions to add/remove/stackLayer. 2012-08-18 22:21:42 -03:00
David Capello
c3030b9daa Add FrameNumber type. 2012-07-08 21:09:09 -03:00
David Capello
3bbf7af991 Rename layer_new_flatten_copy() to create_flatten_layer_copy() and moved to src/flatten.cpp file. 2012-06-08 21:34:53 -03:00
David Capello
041140f528 Change "imgtype" int type to PixelFormat enumeration. 2012-02-12 23:21:06 -03:00
David Capello
1345919aaa Replace image_new* functions with Image:create*() member functions. 2012-02-11 22:57:21 -03:00
David Capello
b8fbaad7fb Replace Allegro Sprite Editor or ASE with ASEPRITE in all files. 2012-01-06 01:12:57 -03:00
David Capello
02a9d50524 Update copyright year to 2012. 2012-01-06 00:52:11 -03:00
David Capello
ed6090bc36 Convert all newline to LF style and remove all tabs.
This was done to avoid mixed files (CRLF & LF) in the repository.
2012-01-05 19:45:03 -03:00
David Capello
c32551db64 Fix issue #9: GIF files are loaded as Indexed images now.
+ Added support for non-zero transparent index.
+ Added fop_post_load() to do post-load processing which need user-interaction.
+ Added FileFormat::onPostLoad/onDestroyData members.
+ Added Document::addSprite().
2011-06-25 17:12:08 -03:00
David Capello
a17c767e65 Remove all public fields of Cel adding accessors. 2011-03-28 00:24:27 -03:00
David Capello
9077ab8357 Implement duplicate sprite with flatten layers (it was removed
temporally with the introduction of Document class).
2011-03-27 23:21:22 -03:00
David Capello
682e7152b7 Replace UndoHistory::undo_int/data/double methods with new safe-undoers.
+ Added SetCelFrame/Opacity/Position, SetMaskPosition, SetStockImgType,
  and SetLayerFlags undoers.
+ Finally removed the Layer::flags_addr() atrocity.
+ Removed RawData undoer.
+ Renamed SetImgType to SetSpriteImgType.
2011-03-27 18:15:00 -03:00
David Capello
a524fae9ba Implement LayerImage::getCel() in terms of LayerImage::getCel() const. 2011-03-26 18:49:29 -03:00
David Capello
bf3232c640 Rename Layer::destroy_all_cels() to destroyAllCels(). 2011-03-24 13:15:09 -03:00
David Capello
5ff24c794c Minor fixes to #include directives in raster/ dir. 2011-03-24 13:10:48 -03:00
David Capello
9182f0f14a Move UndoHistory from raster/ to undo/ directory. 2011-03-24 11:50:00 -03:00
David Capello
6e60d3200d Add Document class, to remove app specific properties from Sprite.
+ Moved some properties from Sprite to Document: lock/unlock/mutex,
  filename, isModified flag, undo history, mask boundaries, file
  format options, preferred editor settings, extra cel.
+ A Context now has an active document (instead of an active sprite).
+ Renamed all sprite wrappers to be document wrappers (as the mutex is
  in the Document now).
+ Modifications to SharedPtr<> to be more like C++0x shared_ptr<>.
2011-03-22 21:11:25 -03:00
David Capello
9b32ebdad6 Rename Undo class to UndoHistory. 2011-03-13 17:33:42 -03:00
David Capello
d6eb20ef7e Update copyright year to 2011. 2011-01-18 20:49:53 -03:00
David Capello
6a64fa311f Remove unnecessaries #include <allegro/...> in raster/. 2010-12-26 18:35:12 -03:00
David Capello
7ace9a2099 Remove blend modes from ImageLayers. 2010-12-05 11:44:01 -03:00
David Capello
514d666747 Add virtual method getMemSize() to GfxObj class (overriden by Image, Cel, Layer, etc.).
These methods will be used for a new implementation of Undo.
2010-10-03 15:51:03 -03:00
David Capello
ffd0f17879 Move all undo_*() functions as members of Undo class. 2010-09-30 23:55:35 -03:00
David Capello
9e419c418f Refactor Stock class to contains methods instead of stock_*() functions. 2010-09-30 22:38:26 -03:00
David Capello
cb3dd70fb8 Move Jinete library to src/gui directory (future gui-lib). 2010-09-26 15:59:32 -03:00
David Capello
12ce788d11 Remove undo_new/free/enable/disable/is_enabled/is_disabled, add Undo::is/setEnabled. 2010-09-19 15:23:15 -03:00
David Capello
198bd648e5 Refactor Layer::add/remove/get_cel to add/remove/getCel. 2010-09-19 00:26:33 -03:00
David Capello
5faa31517e Refactor Layer::configure_as_background -> configureAsBackground(). 2010-09-19 00:17:21 -03:00
David Capello
4d21dd0b5a Refactor Layer::get_cel_begin/end to getCelBegin/End, and get_cels to getCels. 2010-09-19 00:15:44 -03:00
David Capello
4874f455f1 Refactor Layer::get/set_name to Layer::get/setName. 2010-09-19 00:03:32 -03:00
David Capello
2fc785553d Modify GfxObj class to keep its members private. Public members come from old C code where "GfxObj"s were "struct"s.
- Add GfxObj::getId and GfxObj::getType.
- GfxObj type enumeration now is called GfxObjType.
2010-09-18 20:49:13 -03:00
David Capello
4e72997a02 Use Allegro's ASSERT() instead of assert(). 2010-08-03 23:33:44 -03:00
David Capello
89e15da176 Fix bug in LayerImage::get_cels(). (it was introduced in commit cbc0bf22bde2287cc697737ebf52d349fa1d15f8) 2010-03-30 22:04:28 -03:00
David Capello
475d0eeb1b Refactored Sprite class: no public variable members, all functions sprite_* go as Sprite function members, pimpl idiom. 2010-03-30 21:43:18 -03:00
David Capello
b676b74166 Fixed bug in LayerImage::destroy_all_cels() using cel_is_link() in deleted cels.
Removed cel_is_link() function because link cels do not exist anymore.
2010-03-26 11:44:27 -03:00
David Capello
c4afb1a236 Renamed get_sprite() to getSprite() in Layer class and Undoable class. 2010-03-01 22:59:16 -02:00
David Capello
b747ccdaa6 Updated copyright year to 2010 2010-02-01 21:25:40 +00:00
David Capello
cbc0bf22bd Refactored Layer class to include all layer_* functions as member functions. 2009-11-17 13:12:26 +00:00
David Capello
05803abaa1 Fixed a lot of VC++8 warnings with /W3 flag. 2009-08-17 18:00:38 +00:00
David Capello
dd003a8f33 - Now "Image" is a C++ class with virtual methods;
- Removed ImageMethods (the C vtable for old "Image" structure);
- Added ImageImpl and ImageTraits;
- Added "Sprite Size" command (feature #2671468);
- Added "Canvas Size" command;
2009-05-31 16:02:32 +00:00
David Capello
8e498470d5 Fixed bug #2511762 (thanks to Clayton Enga for the patch).
Added the feature #2419098 (David Campo idea).
2009-01-24 00:41:01 +00:00