Fix eyedropper when composite groups option is enabled (#3225)

This commit is contained in:
David Capello 2024-06-25 11:09:02 -03:00
parent c61a5c9a01
commit 874ab55581
3 changed files with 15 additions and 9 deletions

View File

@ -1,5 +1,5 @@
// Aseprite
// Copyright (C) 2019-2023 Igara Studio S.A.
// Copyright (C) 2019-2024 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello
//
// This program is distributed under the terms of
@ -93,10 +93,12 @@ void ColorPicker::pickColor(const Site& site,
m_alpha = 255;
m_color = app::Color::fromMask();
auto& pref = Preferences::instance();
// Check tiled mode
if (sprite && site.document()) {
auto doc = static_cast<const Doc*>(site.document());
DocumentPreferences& docPref = Preferences::instance().document(doc);
DocumentPreferences& docPref = pref.document(doc);
pos = wrap_pointF(docPref.tiled.mode(),
site.sprite()->size(), pos);
@ -107,7 +109,7 @@ void ColorPicker::pickColor(const Site& site,
// Pick from the composed image
case FromComposition: {
doc::RenderPlan plan;
doc::RenderPlan plan(pref.experimental.composeGroups());
plan.addLayer(sprite->root(), site.frame());
doc::CelList cels;
@ -136,7 +138,8 @@ void ColorPicker::pickColor(const Site& site,
sprite->pixelFormat(),
render::get_sprite_pixel(sprite, pos.x, pos.y,
site.frame(), proj,
Preferences::instance().experimental.newBlend()));
pref.experimental.newBlend(),
pref.experimental.composeGroups()));
}
break;
}
@ -182,7 +185,7 @@ void ColorPicker::pickColor(const Site& site,
}
case FromFirstReferenceLayer: {
doc::RenderPlan plan;
doc::RenderPlan plan(pref.experimental.composeGroups());
for (doc::Layer* refLayer : sprite->allVisibleReferenceLayers())
plan.addLayer(refLayer, site.frame());

View File

@ -1,5 +1,5 @@
// Aseprite Render Library
// Copyright (c) 2019 Igara Studio S.A.
// Copyright (c) 2019-2024 Igara Studio S.A.
// Copyright (c) 2001-2018 David Capello
//
// This file is released under the terms of the MIT license.
@ -22,7 +22,8 @@ color_t get_sprite_pixel(const Sprite* sprite,
const double y,
const frame_t frame,
const Projection& proj,
const bool newBlend)
const bool newBlend,
const bool composeGroups)
{
color_t color = 0;
@ -32,6 +33,7 @@ color_t get_sprite_pixel(const Sprite* sprite,
render::Render render;
render.setNewBlend(newBlend);
render.setComposeGroups(composeGroups);
render.setRefLayersVisiblity(true);
render.setProjection(proj);
render.renderSprite(

View File

@ -1,5 +1,5 @@
// Aseprite Render Library
// Copyright (c) 2019 Igara Studio S.A.
// Copyright (c) 2019-2024 Igara Studio S.A.
// Copyright (c) 2001-2016 David Capello
//
// This file is released under the terms of the MIT license.
@ -28,7 +28,8 @@ namespace render {
const double y,
const frame_t frame,
const Projection& proj,
const bool newBlend);
const bool newBlend,
const bool composeGroups);
} // namespace render