mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-19 19:21:08 +00:00
Fix Quantize command call (sprite was locked).
This commit is contained in:
parent
b600706e37
commit
47a265745c
@ -706,6 +706,9 @@ static bool sort_by_criteria(Palette* palette, int from, int to, JList selected_
|
||||
|
||||
static void quantize_command(JWidget widget)
|
||||
{
|
||||
Palette* palette = NULL;
|
||||
|
||||
{
|
||||
const CurrentSpriteReader& sprite(UIContext::instance());
|
||||
|
||||
if (sprite == NULL) {
|
||||
@ -718,12 +721,11 @@ static void quantize_command(JWidget widget)
|
||||
return;
|
||||
}
|
||||
|
||||
Palette* palette = new Palette(0, 256);
|
||||
{
|
||||
SpriteWriter sprite_writer(sprite);
|
||||
sprite_quantize_ex(sprite_writer, palette);
|
||||
set_new_palette(palette, "Quantize Palette");
|
||||
palette = new Palette(0, 256);
|
||||
sprite_quantize_ex(sprite, palette);
|
||||
}
|
||||
|
||||
set_new_palette(palette, "Quantize Palette");
|
||||
delete palette;
|
||||
}
|
||||
|
||||
@ -922,8 +924,8 @@ static void update_current_sprite_palette(const char* operationName)
|
||||
sprite->setPalette(newPalette, false);
|
||||
}
|
||||
}
|
||||
catch (...) {
|
||||
// Ignore
|
||||
catch (ase_exception& e) {
|
||||
e.show();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -29,14 +29,14 @@
|
||||
#include "raster/sprite.h"
|
||||
#include "raster/stock.h"
|
||||
|
||||
static ImageRef* images_ref_get_from_layer(Sprite* sprite, Layer* layer, int target, bool write);
|
||||
static ImageRef* images_ref_get_from_layer(Layer* layer, int target, bool write);
|
||||
|
||||
ImageRef* images_ref_get_from_sprite(Sprite* sprite, int target, bool write)
|
||||
ImageRef* images_ref_get_from_sprite(const Sprite* sprite, int target, bool write)
|
||||
{
|
||||
Layer* layer = target & TARGET_ALL_LAYERS ? sprite->getFolder():
|
||||
sprite->getCurrentLayer();
|
||||
|
||||
return images_ref_get_from_layer(sprite, layer, target, write);
|
||||
return images_ref_get_from_layer(layer, target, write);
|
||||
}
|
||||
|
||||
void images_ref_free(ImageRef* image_ref)
|
||||
@ -49,7 +49,7 @@ void images_ref_free(ImageRef* image_ref)
|
||||
}
|
||||
}
|
||||
|
||||
static ImageRef* images_ref_get_from_layer(Sprite* sprite, Layer* layer, int target, bool write)
|
||||
static ImageRef* images_ref_get_from_layer(Layer* layer, int target, bool write)
|
||||
{
|
||||
#define ADD_IMAGES(images) \
|
||||
{ \
|
||||
@ -70,7 +70,7 @@ static ImageRef* images_ref_get_from_layer(Sprite* sprite, Layer* layer, int tar
|
||||
{ \
|
||||
ImageRef* image_ref = jnew(ImageRef, 1); \
|
||||
\
|
||||
image_ref->image = layer->getSprite()->getStock()->getImage(cel->image); \
|
||||
image_ref->image = sprite->getStock()->getImage(cel->image); \
|
||||
image_ref->layer = layer; \
|
||||
image_ref->cel = cel; \
|
||||
image_ref->next = NULL; \
|
||||
@ -78,6 +78,7 @@ static ImageRef* images_ref_get_from_layer(Sprite* sprite, Layer* layer, int tar
|
||||
ADD_IMAGES(image_ref); \
|
||||
}
|
||||
|
||||
const Sprite* sprite = layer->getSprite();
|
||||
ImageRef* first_image = NULL;
|
||||
ImageRef* last_image = NULL;
|
||||
int frame = sprite->getCurrentFrame();
|
||||
@ -112,7 +113,7 @@ static ImageRef* images_ref_get_from_layer(Sprite* sprite, Layer* layer, int tar
|
||||
LayerIterator end = static_cast<LayerFolder*>(layer)->get_layer_end();
|
||||
|
||||
for (; it != end; ++it) {
|
||||
sub_images = images_ref_get_from_layer(sprite, *it, target, write);
|
||||
sub_images = images_ref_get_from_layer(*it, target, write);
|
||||
if (sub_images != NULL)
|
||||
ADD_IMAGES(sub_images);
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ struct ImageRef
|
||||
ImageRef* next;
|
||||
};
|
||||
|
||||
ImageRef* images_ref_get_from_sprite(Sprite* sprite, int target, bool write);
|
||||
ImageRef* images_ref_get_from_sprite(const Sprite* sprite, int target, bool write);
|
||||
void images_ref_free(ImageRef* image_ref);
|
||||
|
||||
#endif
|
||||
|
@ -43,7 +43,7 @@ void sprite_quantize(Sprite *sprite)
|
||||
delete palette;
|
||||
}
|
||||
|
||||
void sprite_quantize_ex(Sprite *sprite, Palette *palette)
|
||||
void sprite_quantize_ex(const Sprite *sprite, Palette *palette)
|
||||
{
|
||||
Image* flat_image;
|
||||
Image** image_array;
|
||||
|
@ -24,7 +24,7 @@ class Sprite;
|
||||
class Stock;
|
||||
|
||||
void sprite_quantize(Sprite* sprite);
|
||||
void sprite_quantize_ex(Sprite* sprite, Palette* palette);
|
||||
void sprite_quantize_ex(const Sprite* sprite, Palette* palette);
|
||||
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user