From bae2197a9a134bd45f983cd81ceb635d646620e3 Mon Sep 17 00:00:00 2001 From: Mark Slee Date: Fri, 8 Nov 2013 19:13:50 -0800 Subject: [PATCH] More optimization to unnecessary blending --- MarkSlee.pde | 6 +++++- _Internals.pde | 18 +++++++++++++++++- code/HeronLX.jar | Bin 86516 -> 87119 bytes 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/MarkSlee.pde b/MarkSlee.pde index 88759da..4a37206 100644 --- a/MarkSlee.pde +++ b/MarkSlee.pde @@ -1426,7 +1426,11 @@ class ColorFuckerEffect extends SCEffect { } if (fSharp > 0) { fSharp = 1/(1-fSharp); - hsb[2] = hsb[2] < .5 ? pow(hsb[2],fSharp) : 1-pow(1-hsb[2],fSharp); + if (hsb[2] < .5) { + hsb[2] = pow(hsb[2],fSharp); + } else { + hsb[2] = 1-pow(1-hsb[2],fSharp); + } } if (fSoft > 0) { if (hsb[2] > 0.5) { diff --git a/_Internals.pde b/_Internals.pde index 4716622..728e343 100644 --- a/_Internals.pde +++ b/_Internals.pde @@ -299,16 +299,32 @@ void drawDiagnostics(long drawNanos, long simulationNanos, long uiNanos, long ga noFill(); stroke(#999999); rect(x, y, tw, h); + h = 5; noStroke(); for (long val : new long[] { lx.engine.timer.deckNanos, + lx.engine.timer.copyNanos, lx.engine.timer.fxNanos}) { float amt = val / (float) lx.timer.drawNanos; fill(lx.hsb(hv % 360, 100, 80)); rect(xp, y, amt * tw, h-1); hv += 140; xp += amt * tw; - } + } + + xp = x; + y += h; + hv = 120; + for (long val : new long[] { + lx.engine.getDeck(0).timer.runNanos, + lx.engine.getDeck(1).timer.runNanos, + lx.engine.getDeck(1).getFaderTransition().timer.blendNanos}) { + float amt = val / (float) lx.timer.drawNanos; + fill(lx.hsb(hv % 360, 100, 80)); + rect(xp, y, amt * tw, h-1); + hv += 140; + xp += amt * tw; + } } void drawSimulation(color[] simulationColors) { diff --git a/code/HeronLX.jar b/code/HeronLX.jar index 04fa7fda66c57a3ddc8c02c282a4b73476e908a2..396a41ea97f45f63a09ad57052b6339d30f9d103 100755 GIT binary patch delta 7983 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 Oj5)EeRz#r)SpNrNB&q!X delta 7642 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