mirror of
https://github.com/The-Powder-Toy/The-Powder-Toy.git
synced 2025-08-01 06:00:15 +02:00
Make sRGB the default colour space for deco tools, see 51e5f2b
This commit is contained in:
@@ -430,8 +430,8 @@ OptionsView::OptionsView():
|
|||||||
decoSpace = new ui::DropDown(ui::Point(8, currentY), ui::Point(60, 16));
|
decoSpace = new ui::DropDown(ui::Point(8, currentY), ui::Point(60, 16));
|
||||||
decoSpace->SetActionCallback(new DecoSpaceAction(this));
|
decoSpace->SetActionCallback(new DecoSpaceAction(this));
|
||||||
scrollPanel->AddChild(decoSpace);
|
scrollPanel->AddChild(decoSpace);
|
||||||
decoSpace->AddOption(std::pair<String, int>("Linear", 0));
|
decoSpace->AddOption(std::pair<String, int>("sRGB", 0));
|
||||||
decoSpace->AddOption(std::pair<String, int>("sRGB", 1));
|
decoSpace->AddOption(std::pair<String, int>("Linear", 1));
|
||||||
decoSpace->AddOption(std::pair<String, int>("Gamma 2.2", 2));
|
decoSpace->AddOption(std::pair<String, int>("Gamma 2.2", 2));
|
||||||
decoSpace->AddOption(std::pair<String, int>("Gamma 1.8", 3));
|
decoSpace->AddOption(std::pair<String, int>("Gamma 1.8", 3));
|
||||||
|
|
||||||
|
@@ -917,12 +917,12 @@ void Simulation::SetDecoSpace(int newDecoSpace)
|
|||||||
{
|
{
|
||||||
switch (newDecoSpace)
|
switch (newDecoSpace)
|
||||||
{
|
{
|
||||||
case 0: // linear
|
case 0: // sRGB
|
||||||
default: // anything stupid
|
default: // anything stupid
|
||||||
deco_space = 0;
|
deco_space = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: // sRGB
|
case 1: // linear
|
||||||
deco_space = 1;
|
deco_space = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1049,16 +1049,16 @@ void Simulation::ApplyDecoration(int x, int y, int colR_, int colG_, int colB_,
|
|||||||
float pb = ((float)((part.dcolour )&0xFF)) / 255.f;
|
float pb = ((float)((part.dcolour )&0xFF)) / 255.f;
|
||||||
switch (deco_space)
|
switch (deco_space)
|
||||||
{
|
{
|
||||||
case 0: // linear
|
case 0: // sRGB
|
||||||
break;
|
|
||||||
|
|
||||||
case 1: // sRGB
|
|
||||||
pa = (pa <= 0.04045f) ? (pa / 12.92f) : pow((pa + 0.055f) / 1.055f, 2.4f);
|
pa = (pa <= 0.04045f) ? (pa / 12.92f) : pow((pa + 0.055f) / 1.055f, 2.4f);
|
||||||
pr = (pr <= 0.04045f) ? (pr / 12.92f) : pow((pr + 0.055f) / 1.055f, 2.4f);
|
pr = (pr <= 0.04045f) ? (pr / 12.92f) : pow((pr + 0.055f) / 1.055f, 2.4f);
|
||||||
pg = (pg <= 0.04045f) ? (pg / 12.92f) : pow((pg + 0.055f) / 1.055f, 2.4f);
|
pg = (pg <= 0.04045f) ? (pg / 12.92f) : pow((pg + 0.055f) / 1.055f, 2.4f);
|
||||||
pb = (pb <= 0.04045f) ? (pb / 12.92f) : pow((pb + 0.055f) / 1.055f, 2.4f);
|
pb = (pb <= 0.04045f) ? (pb / 12.92f) : pow((pb + 0.055f) / 1.055f, 2.4f);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 1: // linear
|
||||||
|
break;
|
||||||
|
|
||||||
case 2: // Gamma = 2.2
|
case 2: // Gamma = 2.2
|
||||||
pa = pow(pa, 2.2f);
|
pa = pow(pa, 2.2f);
|
||||||
pr = pow(pr, 2.2f);
|
pr = pow(pr, 2.2f);
|
||||||
@@ -1087,16 +1087,16 @@ void Simulation::ApplyDecoration(int x, int y, int colR_, int colG_, int colB_,
|
|||||||
tb = tbs / num;
|
tb = tbs / num;
|
||||||
switch (deco_space)
|
switch (deco_space)
|
||||||
{
|
{
|
||||||
case 0: // linear
|
case 0: // sRGB
|
||||||
break;
|
|
||||||
|
|
||||||
case 1: // sRGB
|
|
||||||
ta = (ta <= 0.0031308f) ? (ta * 12.92f) : (1.055f * pow(ta, 1.f / 2.4f) - 0.055f);
|
ta = (ta <= 0.0031308f) ? (ta * 12.92f) : (1.055f * pow(ta, 1.f / 2.4f) - 0.055f);
|
||||||
tr = (tr <= 0.0031308f) ? (tr * 12.92f) : (1.055f * pow(tr, 1.f / 2.4f) - 0.055f);
|
tr = (tr <= 0.0031308f) ? (tr * 12.92f) : (1.055f * pow(tr, 1.f / 2.4f) - 0.055f);
|
||||||
tg = (tg <= 0.0031308f) ? (tg * 12.92f) : (1.055f * pow(tg, 1.f / 2.4f) - 0.055f);
|
tg = (tg <= 0.0031308f) ? (tg * 12.92f) : (1.055f * pow(tg, 1.f / 2.4f) - 0.055f);
|
||||||
tb = (tb <= 0.0031308f) ? (tb * 12.92f) : (1.055f * pow(tb, 1.f / 2.4f) - 0.055f);
|
tb = (tb <= 0.0031308f) ? (tb * 12.92f) : (1.055f * pow(tb, 1.f / 2.4f) - 0.055f);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 1: // linear
|
||||||
|
break;
|
||||||
|
|
||||||
case 2: // Gamma = 2.2
|
case 2: // Gamma = 2.2
|
||||||
ta = pow(ta, 1.f / 2.2f);
|
ta = pow(ta, 1.f / 2.2f);
|
||||||
tr = pow(tr, 1.f / 2.2f);
|
tr = pow(tr, 1.f / 2.2f);
|
||||||
|
Reference in New Issue
Block a user