mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-14 04:19:12 +00:00
Mask and palettes do not need to be serialized with IDs because
they are not referenced by IDs in any other place.
This commit is contained in:
parent
98c306f587
commit
7dd873b1a7
@ -8,6 +8,7 @@
|
||||
|
||||
#include "undo/undo_history.h"
|
||||
|
||||
#include "raster/palette.h"
|
||||
#include "undo/undoers_stack.h"
|
||||
#include "undoers/add_cel.h"
|
||||
#include "undoers/add_image.h"
|
||||
@ -122,12 +123,12 @@ void UndoHistory::undo_set_layer(Sprite* sprite)
|
||||
|
||||
void UndoHistory::undo_add_palette(Sprite* sprite, Palette* palette)
|
||||
{
|
||||
pushUndoer(new undoers::AddPalette(getObjects(), sprite, palette));
|
||||
pushUndoer(new undoers::AddPalette(getObjects(), sprite, palette->getFrame()));
|
||||
}
|
||||
|
||||
void UndoHistory::undo_remove_palette(Sprite* sprite, Palette* palette)
|
||||
{
|
||||
pushUndoer(new undoers::RemovePalette(getObjects(), sprite, palette));
|
||||
pushUndoer(new undoers::RemovePalette(getObjects(), sprite, palette->getFrame()));
|
||||
}
|
||||
|
||||
void UndoHistory::undo_set_palette_colors(Sprite* sprite, Palette* palette, int from, int to)
|
||||
|
@ -28,9 +28,9 @@
|
||||
using namespace undo;
|
||||
using namespace undoers;
|
||||
|
||||
AddPalette::AddPalette(ObjectsContainer* objects, Sprite* sprite, Palette* palette)
|
||||
AddPalette::AddPalette(ObjectsContainer* objects, Sprite* sprite, int paletteFrame)
|
||||
: m_spriteId(objects->addObject(sprite))
|
||||
, m_paletteId(objects->addObject(palette))
|
||||
, m_paletteFrame(paletteFrame)
|
||||
{
|
||||
}
|
||||
|
||||
@ -42,9 +42,9 @@ void AddPalette::dispose()
|
||||
void AddPalette::revert(ObjectsContainer* objects, UndoersCollector* redoers)
|
||||
{
|
||||
Sprite* sprite = objects->getObjectT<Sprite>(m_spriteId);
|
||||
Palette* palette = objects->getObjectT<Palette>(m_paletteId);
|
||||
Palette* palette = sprite->getPalette(m_paletteFrame);
|
||||
|
||||
redoers->pushUndoer(new RemovePalette(objects, sprite, palette));
|
||||
redoers->pushUndoer(new RemovePalette(objects, sprite, m_paletteFrame));
|
||||
|
||||
sprite->deletePalette(palette);
|
||||
}
|
||||
|
@ -22,7 +22,6 @@
|
||||
#include "undo/object_id.h"
|
||||
#include "undoers/undoer_base.h"
|
||||
|
||||
class Palette;
|
||||
class Sprite;
|
||||
|
||||
namespace undoers {
|
||||
@ -30,7 +29,7 @@ namespace undoers {
|
||||
class AddPalette : public UndoerBase
|
||||
{
|
||||
public:
|
||||
AddPalette(undo::ObjectsContainer* objects, Sprite* sprite, Palette* palette);
|
||||
AddPalette(undo::ObjectsContainer* objects, Sprite* sprite, int palette_frame);
|
||||
|
||||
void dispose() OVERRIDE;
|
||||
int getMemSize() const OVERRIDE { return sizeof(*this); }
|
||||
@ -38,7 +37,7 @@ public:
|
||||
|
||||
private:
|
||||
undo::ObjectId m_spriteId;
|
||||
undo::ObjectId m_paletteId;
|
||||
int m_paletteFrame;
|
||||
};
|
||||
|
||||
} // namespace undoers
|
||||
|
@ -20,21 +20,21 @@
|
||||
|
||||
#include "undoers/remove_palette.h"
|
||||
|
||||
#include "base/unique_ptr.h"
|
||||
#include "raster/palette.h"
|
||||
#include "raster/palette_io.h"
|
||||
#include "raster/sprite.h"
|
||||
#include "undo/objects_container.h"
|
||||
#include "undo/undoers_collector.h"
|
||||
#include "undoers/add_palette.h"
|
||||
#include "undoers/object_io.h"
|
||||
|
||||
using namespace undo;
|
||||
using namespace undoers;
|
||||
|
||||
RemovePalette::RemovePalette(ObjectsContainer* objects, Sprite* sprite, Palette* palette)
|
||||
RemovePalette::RemovePalette(ObjectsContainer* objects, Sprite* sprite, int paletteFrame)
|
||||
: m_spriteId(objects->addObject(sprite))
|
||||
{
|
||||
write_object(objects, m_stream, palette, raster::write_palette);
|
||||
raster::write_palette(m_stream, sprite->getPalette(paletteFrame));
|
||||
}
|
||||
|
||||
void RemovePalette::dispose()
|
||||
@ -45,10 +45,10 @@ void RemovePalette::dispose()
|
||||
void RemovePalette::revert(ObjectsContainer* objects, UndoersCollector* redoers)
|
||||
{
|
||||
Sprite* sprite = objects->getObjectT<Sprite>(m_spriteId);
|
||||
UniquePtr<Palette> palette(read_object<Palette>(objects, m_stream, raster::read_palette));
|
||||
UniquePtr<Palette> palette(raster::read_palette(m_stream));
|
||||
|
||||
// Push an AddPalette as redoer
|
||||
redoers->pushUndoer(new AddPalette(objects, sprite, palette));
|
||||
redoers->pushUndoer(new AddPalette(objects, sprite, palette->getFrame()));
|
||||
|
||||
sprite->setPalette(palette, true);
|
||||
|
||||
|
@ -24,7 +24,6 @@
|
||||
|
||||
#include <sstream>
|
||||
|
||||
class Palette;
|
||||
class Sprite;
|
||||
|
||||
namespace undoers {
|
||||
@ -32,7 +31,7 @@ namespace undoers {
|
||||
class RemovePalette : public UndoerBase
|
||||
{
|
||||
public:
|
||||
RemovePalette(undo::ObjectsContainer* objects, Sprite* sprite, Palette* palette);
|
||||
RemovePalette(undo::ObjectsContainer* objects, Sprite* sprite, int paletteFrame);
|
||||
|
||||
void dispose() OVERRIDE;
|
||||
int getMemSize() const OVERRIDE { return sizeof(*this) + getStreamSize(); }
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include "raster/mask_io.h"
|
||||
#include "undo/objects_container.h"
|
||||
#include "undo/undoers_collector.h"
|
||||
#include "undoers/object_io.h"
|
||||
|
||||
using namespace undo;
|
||||
using namespace undoers;
|
||||
@ -36,7 +35,7 @@ SetMask::SetMask(ObjectsContainer* objects, Document* document)
|
||||
, m_isMaskVisible(document->isMaskVisible())
|
||||
{
|
||||
if (m_isMaskVisible)
|
||||
write_object(objects, m_stream, document->getMask(), raster::write_mask);
|
||||
raster::write_mask(m_stream, document->getMask());
|
||||
}
|
||||
|
||||
void SetMask::dispose()
|
||||
@ -52,7 +51,7 @@ void SetMask::revert(ObjectsContainer* objects, UndoersCollector* redoers)
|
||||
redoers->pushUndoer(new SetMask(objects, document));
|
||||
|
||||
if (m_isMaskVisible) {
|
||||
UniquePtr<Mask> mask(read_object<Mask>(objects, m_stream, raster::read_mask));
|
||||
UniquePtr<Mask> mask(raster::read_mask(m_stream));
|
||||
|
||||
document->setMask(mask);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user