A few more light mode modules

This commit is contained in:
falkTX 2022-09-14 14:48:52 +01:00
parent 2472b06f59
commit 9116eb61fb
4 changed files with 123 additions and 35 deletions

View file

@ -1155,7 +1155,11 @@ endif
# -------------------------------------------------------------- # --------------------------------------------------------------
# Build targets # Build targets
ifeq ($(NOPLUGINS),true)
TARGET = noplugins.a
else
TARGET = plugins.a TARGET = plugins.a
endif
all: $(TARGET) all: $(TARGET)

@ -1 +1 @@
Subproject commit 4d95ace8b073e9e8e30b8671ecdb04101d943905 Subproject commit 8d2796da76e5d7f79bbf461c95a7858035bb0736

View file

@ -110,7 +110,11 @@ endif
# -------------------------------------------------------------- # --------------------------------------------------------------
# Extra libraries to link against # Extra libraries to link against
ifeq ($(NOPLUGINS),true)
RACK_EXTRA_LIBS = ../../plugins/noplugins.a
else
RACK_EXTRA_LIBS = ../../plugins/plugins.a RACK_EXTRA_LIBS = ../../plugins/plugins.a
endif
RACK_EXTRA_LIBS += ../rack.a RACK_EXTRA_LIBS += ../rack.a
RACK_EXTRA_LIBS += $(DEP_LIB_PATH)/libquickjs.a RACK_EXTRA_LIBS += $(DEP_LIB_PATH)/libquickjs.a

View file

@ -378,11 +378,15 @@ enum LightMode {
kModeCardinal, kModeCardinal,
kModeFehlerFabrik, kModeFehlerFabrik,
kModeForsitan, kModeForsitan,
kModeFundamental, // FIXME remove kModeFundamental,
kModeGoodSheperd, kModeGoodSheperd,
kModeH4n4, kModeH4n4,
kModeHamptonHarmonics, kModeHamptonHarmonics,
kModeLomas, kModeLomas,
kModeMockba,
kModeMog,
kModePrism,
kModeRepelzen,
kModeSonusmodular, kModeSonusmodular,
}; };
@ -525,15 +529,31 @@ static const struct {
{ kModeLomas, "/LomasModules/res/AdvancedSampler.svg", {}, -1 }, { kModeLomas, "/LomasModules/res/AdvancedSampler.svg", {}, -1 },
{ kModeLomas, "/LomasModules/res/GateSequencer.svg", {}, -1 }, { kModeLomas, "/LomasModules/res/GateSequencer.svg", {}, -1 },
// MIT // MIT
// TODO Mockba { kModeMockba, "/MockbaModular/res/Blank.svg", {}, -1 },
// TODO
// CC0 // CC0
// TODO Mog { kModeMog, "/Mog/res/Network.svg", {}, -1 },
{ kModeMog, "/Mog/res/Nexus.svg", {}, -1 },
// CC-BY-NC-ND-4.0 // CC-BY-NC-ND-4.0
// TODO Orbits - non compat license // TODO Orbits - non compat license
// CC-BY-SA-4.0 // CC-BY-SA-4.0
// TODO Prism { kModePrism, "/Prism/res/prism_Droplet.svg", {}, -1 },
{ kModePrism, "/Prism/res/prism_Rainbow.svg", {}, -1 },
{ kModePrism, "/Prism/res/RainbowScaleExpander.svg", {}, -1 },
// CC-BY-SA-4.0 // CC-BY-SA-4.0
// TODO repelzen { kModeRepelzen, "/repelzen/res/reface/reburst_bg.svg", {}, -1 },
{ kModeRepelzen, "/repelzen/res/reface/refold_bg.svg", {}, -1 },
{ kModeRepelzen, "/repelzen/res/reface/repelzen_bg1.svg", {}, -1 },
{ kModeRepelzen, "/repelzen/res/reface/repelzen_bg2.svg", {}, -1 },
{ kModeRepelzen, "/repelzen/res/reface/repelzen_bg3.svg", {}, -1 },
{ kModeRepelzen, "/repelzen/res/reface/repelzen_bg4.svg", {}, -1 },
{ kModeRepelzen, "/repelzen/res/reface/repelzen_bg5.svg", {}, -1 },
{ kModeRepelzen, "/repelzen/res/reface/repelzen_bg6.svg", {}, -1 },
{ kModeRepelzen, "/repelzen/res/reface/repelzen_bg7.svg", {}, -1 },
{ kModeRepelzen, "/repelzen/res/reface/repelzen_bg8.svg", {}, -1 },
{ kModeRepelzen, "/repelzen/res/reface/retrig_bg.svg", {}, -1 },
{ kModeRepelzen, "/repelzen/res/reface/rewin_bg.svg", {}, -1 },
{ kModeRepelzen, "/repelzen/res/reface/rexmix_bg.svg", {}, -1 },
// GPLv3+ // GPLv3+
{ kModeSonusmodular, "/sonusmodular/res/addiction.svg", {}, -1 }, { kModeSonusmodular, "/sonusmodular/res/addiction.svg", {}, -1 },
{ kModeSonusmodular, "/sonusmodular/res/bitter.svg", {}, -1 }, { kModeSonusmodular, "/sonusmodular/res/bitter.svg", {}, -1 },
@ -852,19 +872,33 @@ bool invertPaintForDarkMode(const DarkMode mode, NSVGshape* const shape, NSVGpai
static inline static inline
bool invertPaintForLightMode(const LightMode mode, NSVGshape* const shape, NSVGpaint& paint) bool invertPaintForLightMode(const LightMode mode, NSVGshape* const shape, NSVGpaint& paint)
{ {
switch (paint.type) if (paint.type == NSVG_PAINT_LINEAR_GRADIENT)
{ {
case NSVG_PAINT_NONE: switch (mode)
{
case kModeFundamental:
paint.gradient->stops[0].color = 0xffffffff;
paint.gradient->stops[1].color = 0xffe6d6d6;
return true; return true;
case NSVG_PAINT_LINEAR_GRADIENT: default:
for (int i=0; i<paint.gradient->nstops; ++i) for (int i=0; i<paint.gradient->nstops; ++i)
paint.gradient->stops[i].color = invertColor(paint.gradient->stops[i].color); paint.gradient->stops[i].color = invertColor(paint.gradient->stops[i].color);
return true; return true;
case NSVG_PAINT_COLOR:
break;
default:
return false;
} }
}
if (paint.type == NSVG_PAINT_RADIAL_GRADIENT && mode == kModeMog)
{
std::free(paint.gradient);
paint.type = NSVG_PAINT_COLOR;
paint.color = 0xffe5e5e5;
return true;
}
if (paint.type == NSVG_PAINT_NONE)
return true;
if (paint.type != NSVG_PAINT_COLOR)
return false;
switch (mode) switch (mode)
{ {
@ -931,15 +965,73 @@ bool invertPaintForLightMode(const LightMode mode, NSVGshape* const shape, NSVGp
return true; return true;
} }
break; break;
case kModeMog:
switch (paint.color)
{
case 0xff442499:
case 0xff587ee2:
case 0xff1ecae8:
case 0xff2dd6ac:
case 0xffcf924c:
case 0xffd8b3bb:
case 0xff29165d:
case 0xff354d89:
case 0xff127b8d:
case 0xff1b8269:
case 0xff7e592e:
case 0xff836d72:
return false;
}
break;
case kModePrism:
switch (paint.color)
{
case 0xff000000:
case 0xff505770:
case 0xff657c9b:
case 0xff7ba357:
case 0xff7f64f2:
case 0xff99e4ff:
case 0xffa7ff6c:
case 0xffc279e2:
case 0xffe079c4:
case 0xffe5ff66:
case 0xffff88d0:
case 0xffffa369:
return false;
case 0xff0f0f0f:
if (std::strcmp(shape->id, "path10") == 0 || std::strcmp(shape->id, "circle506") == 0)
{
paint.color = 0xffffffff;
return true;
}
return false;
case 0xffbababa:
paint.color = 0xff000000;
return true;
}
break;
case kModeRepelzen:
switch (paint.color)
{
case 0xff4c4ccc:
case 0xff87a610:
case 0xffb78e09:
return false;
case 0xff44bbd8:
paint.color = 0xff228ba5;
return true;
}
break;
case kModeSonusmodular: case kModeSonusmodular:
switch (paint.color) switch (paint.color)
{ {
case 0xff2a2aff: case 0xff2a2aff:
case 0xff87cdde:
case 0xffe9afaf:
case 0xff4e4ed3: case 0xff4e4ed3:
case 0xff55ddff: case 0xff55ddff:
case 0xff87cdde:
case 0xffdbdbe3: case 0xffdbdbe3:
case 0xffe9afaf:
return false; return false;
case 0xff0a1284: case 0xff0a1284:
paint.color = 0xff7a82f5; paint.color = 0xff7a82f5;
@ -950,20 +1042,8 @@ bool invertPaintForLightMode(const LightMode mode, NSVGshape* const shape, NSVGp
break; break;
} }
switch (paint.type)
{
case NSVG_PAINT_NONE:
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 = invertColor(paint.color); paint.color = invertColor(paint.color);
return true; return true;
default:
return false;
}
} }
extern "C" { extern "C" {
@ -1169,13 +1249,13 @@ NSVGimage* nsvgParseFromFileCardinal(const char* const filename, const char* con
if (std::strncmp(filename + (filenamelen-filterlen), svgFileToInvert, filterlen) != 0) if (std::strncmp(filename + (filenamelen-filterlen), svgFileToInvert, filterlen) != 0)
continue; continue;
const LightMode mode = svgFilesToInvertForLightMode[i].mode;
hasLightMode = true; hasLightMode = true;
handleMOD = nullptr; handleMOD = nullptr;
shapesOrig = handle->shapes; shapesOrig = handle->shapes;
shapesMOD = nsvg__duplicateShapes(shapesOrig); shapesMOD = nsvg__duplicateShapes(shapesOrig);
const LightMode mode = svgFilesToInvertForLightMode[i].mode;
// shape paint inversion // shape paint inversion
for (NSVGshape* shape = shapesMOD; shape != nullptr; shape = shape->next) for (NSVGshape* shape = shapesMOD; shape != nullptr; shape = shape->next)
{ {