This delay has been eliminated in Rainmeter 2.3, and a calc measure that uses another measure as the source will have the same value as the source measure on the same Update.
However, this "undocumented feature" was being used by some folks on purpose to resolve a situation where an IfxxxxAction on the source measure was being used to !SetVariable something like a color or image or text. Since the !SetVariable happens on the current update but is not used by the meter(s) in question until the next, this can also cause an "out of sync" effect. So some authors would "pass the value through a calc measure" to delay the raw output (say a string meter) of the source measure, thus allowing the text display and the color or image to be in sync, while again one update behind from reality.
While for most folks most of the time, the change to eliminate the delay with calc measures is a good thing, there may be cases as above where it is in fact desirable. The way this is handled is that:
- If a calc measure comes "after" the source measure referenced in the formula in the skin, there will be no delay. The value of the source measure and the calc will be the same on the same update.
- If a calc measure comes "before" the source measure referenced in the formula in the skin, the one update difference between the two will still be there. So simply changing where in the skin you put the calc measure can be used to determine if you want the delay or not.
Here is a little skin that demonstrates this functionality:
Code: Select all
[Rainmeter]
Update=1000
DynamicWindowSize=1
[MeasureCalcBefore]
Measure=Calc
Formula=MeasureCPU
MinValue=0
MaxValue=100
[MeasureCPU]
Measure=CPU
MinValue=0
MaxValue=100
[MeasureCalcAfter]
Measure=Calc
Formula=MeasureCPU
MinValue=0
MaxValue=100
[MeterBefore]
Meter=String
MeasureName=MeasureCalcBefore
FontSize=13
FontColor=255,255,255,255
AntiAlias=1
Text=Before: %1
[MeterBarBefore]
Meter=BAR
MeasureName=MeasureCalcBefore
BarColor=214,255,223
BarOrientation=Horizontal
DynamicVariables=1
Y=2R
W=800
H=6
[MeterActual]
Meter=String
MeasureName=MeasureCPU
Y=2R
FontSize=13
FontColor=255,255,255,255
AntiAlias=1
Text=Actual: %1
[MeterBarActual]
Meter=BAR
MeasureName=MeasureCPU
BarColor=214,255,223
BarOrientation=Horizontal
DynamicVariables=1
Y=2R
W=800
H=6
[MeterAfter]
Meter=String
MeasureName=MeasureCalcAfter
Y=2R
FontSize=13
FontColor=255,255,255,255
AntiAlias=1
Text=After: %1
[MeterBarAfter]
Meter=BAR
MeasureName=MeasureCalcAfter
BarColor=214,255,223
BarOrientation=Horizontal
DynamicVariables=1
Y=2R
W=800
H=6