Skip to content
This repository was archived by the owner on Nov 30, 2020. It is now read-only.

Commit 05cca28

Browse files
committed
Optimized CPU usage
1 parent 4b7975c commit 05cca28

2 files changed

Lines changed: 22 additions & 2 deletions

File tree

PostProcessing/Runtime/ParameterOverride.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ public T GetValue<T>()
1414
{
1515
return ((ParameterOverride<T>)this).value;
1616
}
17+
18+
internal abstract void SetValue(ParameterOverride parameter);
1719
}
1820

1921
[Serializable]
@@ -56,6 +58,11 @@ public void Override(T x)
5658
value = x;
5759
}
5860

61+
internal override void SetValue(ParameterOverride parameter)
62+
{
63+
value = parameter.GetValue<T>();
64+
}
65+
5966
public override int GetHash()
6067
{
6168
unchecked
@@ -188,4 +195,4 @@ public override void Interp(Texture from, Texture to, float t)
188195
value = TextureLerper.instance.Lerp(from, to, t);
189196
}
190197
}
191-
}
198+
}

PostProcessing/Runtime/PostProcessManager.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,10 +265,23 @@ internal void Unregister(PostProcessVolume volume)
265265
Unregister(volume, layer);
266266
}
267267

268+
// Faster version of OverrideSettings to force replace values in the global state
269+
void ReplaceData(PostProcessLayer postProcessLayer)
270+
{
271+
foreach (var settings in m_BaseSettings)
272+
{
273+
var target = postProcessLayer.GetBundle(settings.GetType()).settings;
274+
int count = settings.parameters.Count;
275+
276+
for (int i = 0; i < count; i++)
277+
target.parameters[i].SetValue(settings.parameters[i]);
278+
}
279+
}
280+
268281
internal void UpdateSettings(PostProcessLayer postProcessLayer)
269282
{
270283
// Reset to base state
271-
postProcessLayer.OverrideSettings(m_BaseSettings, 1f);
284+
ReplaceData(postProcessLayer);
272285

273286
// If no trigger is set, only global volumes will have influence
274287
int mask = postProcessLayer.volumeLayer.value;

0 commit comments

Comments
 (0)