Use working color space to draw ColorSliders (#1576)

This commit is contained in:
David Capello 2018-10-23 16:16:03 -03:00
parent 6ca0ecf193
commit c0326f7d6b
2 changed files with 13 additions and 1 deletions

View File

@ -1,4 +1,5 @@
// Aseprite // Aseprite
// Copyright (C) 2018 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello // Copyright (C) 2001-2018 David Capello
// //
// This program is distributed under the terms of // This program is distributed under the terms of
@ -8,6 +9,8 @@
#include "config.h" #include "config.h"
#endif #endif
#include "app/app.h"
#include "app/color_spaces.h"
#include "app/color_utils.h" #include "app/color_utils.h"
#include "app/modules/gfx.h" #include "app/modules/gfx.h"
#include "app/ui/color_sliders.h" #include "app/ui/color_sliders.h"
@ -55,6 +58,9 @@ namespace {
return; return;
} }
// Color space conversion
auto convertColor = convert_from_current_to_screen_color_space();
gfx::Color color = gfx::ColorNone; gfx::Color color = gfx::ColorNone;
int w = MAX(rc.w-1, 1); int w = MAX(rc.w-1, 1);
@ -113,7 +119,7 @@ namespace {
app::Color::fromGray(255 * x / w)); app::Color::fromGray(255 * x / w));
break; break;
} }
g->drawVLine(color, rc.x+x, rc.y, rc.h); g->drawVLine(convertColor(color), rc.x+x, rc.y, rc.h);
} }
} }
@ -251,6 +257,9 @@ ColorSliders::ColorSliders()
addSlider(Channel::HslLightness, "L", 0, 100, -100, 100); addSlider(Channel::HslLightness, "L", 0, 100, -100, 100);
addSlider(Channel::Gray, "V", 0, 255, -100, 100); addSlider(Channel::Gray, "V", 0, 255, -100, 100);
addSlider(Channel::Alpha, "A", 0, 255, -100, 100); addSlider(Channel::Alpha, "A", 0, 255, -100, 100);
m_appConn = App::instance()
->ColorSpaceChange.connect([this]{ invalidate(); });
} }
void ColorSliders::setColor(const app::Color& color) void ColorSliders::setColor(const app::Color& color)

View File

@ -1,4 +1,5 @@
// Aseprite // Aseprite
// Copyright (c) 2018 Igara Studio S.A.
// Copyright (C) 2001-2018 David Capello // Copyright (C) 2001-2018 David Capello
// //
// This program is distributed under the terms of // This program is distributed under the terms of
@ -9,6 +10,7 @@
#pragma once #pragma once
#include "app/color.h" #include "app/color.h"
#include "obs/connection.h"
#include "obs/signal.h" #include "obs/signal.h"
#include "ui/event.h" #include "ui/event.h"
#include "ui/grid.h" #include "ui/grid.h"
@ -88,6 +90,7 @@ namespace app {
int m_lockSlider; int m_lockSlider;
int m_lockEntry; int m_lockEntry;
app::Color m_color; app::Color m_color;
obs::scoped_connection m_appConn;
}; };
////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////