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)
|
static void quantize_command(JWidget widget)
|
||||||
{
|
{
|
||||||
|
Palette* palette = NULL;
|
||||||
|
|
||||||
|
{
|
||||||
const CurrentSpriteReader& sprite(UIContext::instance());
|
const CurrentSpriteReader& sprite(UIContext::instance());
|
||||||
|
|
||||||
if (sprite == NULL) {
|
if (sprite == NULL) {
|
||||||
@ -718,12 +721,11 @@ static void quantize_command(JWidget widget)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Palette* palette = new Palette(0, 256);
|
palette = new Palette(0, 256);
|
||||||
{
|
sprite_quantize_ex(sprite, palette);
|
||||||
SpriteWriter sprite_writer(sprite);
|
|
||||||
sprite_quantize_ex(sprite_writer, palette);
|
|
||||||
set_new_palette(palette, "Quantize Palette");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set_new_palette(palette, "Quantize Palette");
|
||||||
delete palette;
|
delete palette;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -922,8 +924,8 @@ static void update_current_sprite_palette(const char* operationName)
|
|||||||
sprite->setPalette(newPalette, false);
|
sprite->setPalette(newPalette, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (...) {
|
catch (ase_exception& e) {
|
||||||
// Ignore
|
e.show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,14 +29,14 @@
|
|||||||
#include "raster/sprite.h"
|
#include "raster/sprite.h"
|
||||||
#include "raster/stock.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():
|
Layer* layer = target & TARGET_ALL_LAYERS ? sprite->getFolder():
|
||||||
sprite->getCurrentLayer();
|
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)
|
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) \
|
#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); \
|
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->layer = layer; \
|
||||||
image_ref->cel = cel; \
|
image_ref->cel = cel; \
|
||||||
image_ref->next = NULL; \
|
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); \
|
ADD_IMAGES(image_ref); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const Sprite* sprite = layer->getSprite();
|
||||||
ImageRef* first_image = NULL;
|
ImageRef* first_image = NULL;
|
||||||
ImageRef* last_image = NULL;
|
ImageRef* last_image = NULL;
|
||||||
int frame = sprite->getCurrentFrame();
|
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();
|
LayerIterator end = static_cast<LayerFolder*>(layer)->get_layer_end();
|
||||||
|
|
||||||
for (; it != end; ++it) {
|
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)
|
if (sub_images != NULL)
|
||||||
ADD_IMAGES(sub_images);
|
ADD_IMAGES(sub_images);
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@ struct ImageRef
|
|||||||
ImageRef* next;
|
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);
|
void images_ref_free(ImageRef* image_ref);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -43,7 +43,7 @@ void sprite_quantize(Sprite *sprite)
|
|||||||
delete palette;
|
delete palette;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sprite_quantize_ex(Sprite *sprite, Palette *palette)
|
void sprite_quantize_ex(const Sprite *sprite, Palette *palette)
|
||||||
{
|
{
|
||||||
Image* flat_image;
|
Image* flat_image;
|
||||||
Image** image_array;
|
Image** image_array;
|
||||||
|
@ -24,7 +24,7 @@ class Sprite;
|
|||||||
class Stock;
|
class Stock;
|
||||||
|
|
||||||
void sprite_quantize(Sprite* sprite);
|
void sprite_quantize(Sprite* sprite);
|
||||||
void sprite_quantize_ex(Sprite* sprite, Palette* palette);
|
void sprite_quantize_ex(const Sprite* sprite, Palette* palette);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user