Fix crash on close after latest changes, fundamental color swap
This commit is contained in:
parent
13020e793d
commit
8ed1859f92
1 changed files with 28 additions and 11 deletions
|
|
@ -364,6 +364,7 @@ static const struct {
|
||||||
{ "/Autinn/res/ZodModule.svg", {}, -1 },
|
{ "/Autinn/res/ZodModule.svg", {}, -1 },
|
||||||
*/
|
*/
|
||||||
// ??? used for testing, might get turned off
|
// ??? used for testing, might get turned off
|
||||||
|
{ "/Befaco/res/components/Knurlie.svg", {}, -1 },
|
||||||
{ "/Befaco/res/panels/ABC.svg", {}, -1 },
|
{ "/Befaco/res/panels/ABC.svg", {}, -1 },
|
||||||
{ "/Befaco/res/panels/ADSR.svg", {}, -1 },
|
{ "/Befaco/res/panels/ADSR.svg", {}, -1 },
|
||||||
{ "/Befaco/res/panels/ChoppingKinky.svg", {}, -1 },
|
{ "/Befaco/res/panels/ChoppingKinky.svg", {}, -1 },
|
||||||
|
|
@ -407,7 +408,6 @@ static const struct {
|
||||||
{ "/forsitan-modulare/res/palette.svg", {}, -1 },
|
{ "/forsitan-modulare/res/palette.svg", {}, -1 },
|
||||||
{ "/forsitan-modulare/res/pavo.svg", {}, -1 },
|
{ "/forsitan-modulare/res/pavo.svg", {}, -1 },
|
||||||
// GPLv3+
|
// GPLv3+
|
||||||
/* FIXME ends up transparent??
|
|
||||||
{ "/Fundamental/res/8vert.svg", {}, -1 },
|
{ "/Fundamental/res/8vert.svg", {}, -1 },
|
||||||
{ "/Fundamental/res/ADSR.svg", {}, -1 },
|
{ "/Fundamental/res/ADSR.svg", {}, -1 },
|
||||||
{ "/Fundamental/res/Delay.svg", {}, -1 },
|
{ "/Fundamental/res/Delay.svg", {}, -1 },
|
||||||
|
|
@ -434,7 +434,6 @@ static const struct {
|
||||||
{ "/Fundamental/res/VCO.svg", {}, -1 },
|
{ "/Fundamental/res/VCO.svg", {}, -1 },
|
||||||
{ "/Fundamental/res/WTLFO.svg", {}, -1 },
|
{ "/Fundamental/res/WTLFO.svg", {}, -1 },
|
||||||
{ "/Fundamental/res/WTVCO.svg", {}, -1 },
|
{ "/Fundamental/res/WTVCO.svg", {}, -1 },
|
||||||
*/
|
|
||||||
// MIT
|
// MIT
|
||||||
{ "/HamptonHarmonics/res/Arp.svg", {}, -1 },
|
{ "/HamptonHarmonics/res/Arp.svg", {}, -1 },
|
||||||
{ "/HamptonHarmonics/res/Progress.svg", {}, -1 },
|
{ "/HamptonHarmonics/res/Progress.svg", {}, -1 },
|
||||||
|
|
@ -472,6 +471,15 @@ static const struct {
|
||||||
// TODO bacon, chowdsp, ???
|
// TODO bacon, chowdsp, ???
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static inline
|
||||||
|
unsigned int invertColor(const unsigned int color) noexcept
|
||||||
|
{
|
||||||
|
return (color & 0xff000000)
|
||||||
|
| (0xff0000 - (color & 0xff0000))
|
||||||
|
| (0xff00 - (color & 0xff00))
|
||||||
|
| (0xff - (color & 0xff));
|
||||||
|
}
|
||||||
|
|
||||||
static inline
|
static inline
|
||||||
bool invertPaintForDarkMode(NSVGshape* const shape, NSVGpaint& paint, const char* const svgFileToInvert = nullptr)
|
bool invertPaintForDarkMode(NSVGshape* const shape, NSVGpaint& paint, const char* const svgFileToInvert = nullptr)
|
||||||
{
|
{
|
||||||
|
|
@ -737,10 +745,7 @@ bool invertPaintForDarkMode(NSVGshape* const shape, NSVGpaint& paint, const char
|
||||||
return true;
|
return true;
|
||||||
// all others (direct invert)
|
// all others (direct invert)
|
||||||
default:
|
default:
|
||||||
paint.color = (paint.color & 0xff000000)
|
paint.color = invertColor(paint.color);
|
||||||
| (0xff0000 - (paint.color & 0xff0000))
|
|
||||||
| (0xff00 - (paint.color & 0xff00))
|
|
||||||
| (0xff - (paint.color & 0xff));
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -748,11 +753,23 @@ bool invertPaintForDarkMode(NSVGshape* const shape, NSVGpaint& paint, const char
|
||||||
static inline
|
static inline
|
||||||
bool invertPaintForLightMode(NSVGshape* const shape, NSVGpaint& paint)
|
bool invertPaintForLightMode(NSVGshape* const shape, NSVGpaint& paint)
|
||||||
{
|
{
|
||||||
paint.color = (paint.color & 0xff000000)
|
switch(paint.type)
|
||||||
| (0xff0000 - (paint.color & 0xff0000))
|
{
|
||||||
| (0xff00 - (paint.color & 0xff00))
|
case NSVG_PAINT_NONE:
|
||||||
| (0xff - (paint.color & 0xff));
|
return true;
|
||||||
return true;
|
case NSVG_PAINT_LINEAR_GRADIENT:
|
||||||
|
for (int i=0; i<paint.gradient->nstops; ++i)
|
||||||
|
paint.gradient->stops[i].color = invertColor(paint.gradient->stops[i].color);
|
||||||
|
return true;
|
||||||
|
case NSVG_PAINT_COLOR:
|
||||||
|
paint.color = (paint.color & 0xff000000)
|
||||||
|
| (0xff0000 - (paint.color & 0xff0000))
|
||||||
|
| (0xff00 - (paint.color & 0xff00))
|
||||||
|
| (0xff - (paint.color & 0xff));
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue