From 8cfc0a3581cad5da07da69b70c71e67256739166 Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Wed, 4 Dec 2013 13:42:08 +0000 Subject: fadout parameter for echo trails --- rotord/src/nodes_channels.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'rotord/src/nodes_channels.h') diff --git a/rotord/src/nodes_channels.h b/rotord/src/nodes_channels.h index 8fca6a0..20fc86c 100644 --- a/rotord/src/nodes_channels.h +++ b/rotord/src/nodes_channels.h @@ -444,6 +444,7 @@ namespace Rotor { } int interval=(int)parameters["interval"]->value; int thisframe=((Time_spec)frame).frame(); + int duration=(int)parameters["number"]->value*interval; //iterate cache and throw out any obsolete frames auto i = std::begin(images); while (i != std::end(images)) { @@ -465,7 +466,7 @@ namespace Rotor { image=*(in); images[thisframe]=new Image(frame.w,frame.h); apply_LUT(image,*(images[thisframe])); - for (int i=1;i<(int)parameters["number"]->value*interval;i+=interval){ + for (int i=1;i-1){ @@ -478,7 +479,8 @@ namespace Rotor { else images[absframe]->clear(); } if (fless(1.0f,parameters["fadeto"]->value)){ - float amount=(((parameters["number"]->value-i)/parameters["number"]->value)*(1.0f-parameters["fadeto"]->value))+(1.0f-parameters["fadeto"]->value); + float fadetime=((float)i)/((float)duration); //0 to 1 + float amount=1.0f-(fadetime*(1.0f-parameters["fadeto"]->value)); Image *temp=*images[absframe]*amount; if (attributes["mode"]->value=="screen") { image+=*temp; -- cgit v1.2.3