Keep the transparent color index on the output of Export Sprite Sheet

This commit is contained in:
David Capello 2019-10-01 10:08:07 -03:00
parent 5e25d5a021
commit b6fceaf549

View File

@ -680,6 +680,7 @@ Doc* DocExporter::createEmptyTexture(const Samples& samples) const
Palette* palette = nullptr;
int maxColors = 256;
gfx::ColorSpacePtr colorSpace;
color_t transparentColor = 0;
for (const auto& sample : samples) {
if (sample.isDuplicated() ||
@ -702,12 +703,15 @@ Doc* DocExporter::createEmptyTexture(const Samples& samples) const
else if (sample.sprite()->getPalettes().size() > 1) {
colorMode = ColorMode::RGB;
}
else if (palette != NULL
&& palette->countDiff(sample.sprite()->palette(frame_t(0)), NULL, NULL) > 0) {
else if (palette &&
palette->countDiff(sample.sprite()->palette(frame_t(0)),
nullptr, nullptr) > 0) {
colorMode = ColorMode::RGB;
}
else
else if (!palette) {
palette = sample.sprite()->palette(frame_t(0));
transparentColor = sample.sprite()->transparentColor();
}
}
}
@ -720,8 +724,9 @@ Doc* DocExporter::createEmptyTexture(const Samples& samples) const
(colorSpace ? colorSpace: gfx::ColorSpace::MakeNone())),
maxColors));
if (palette != NULL)
if (palette)
sprite->setPalette(palette, false);
sprite->setTransparentColor(transparentColor);
std::unique_ptr<Doc> document(new Doc(sprite.get()));
sprite.release();