void UpdateCurrentPostEffect()
{
string name = GetListCompositorItemName( listBox.SelectedItem.ToString() );
bool enabled = checkBoxEnabled.Checked;
CompositorInstance instance = viewport.GetCompositorInstance( name );
if( enabled )
{
//Enable
instance = viewport.AddCompositor( name );
if( instance != null )
instance.Enabled = true;
}
else
{
//Disable
if( name == "MotionBlur" )
{
//MotionBlur game specific. No remove compositor. only disable.
if( instance != null )
instance.Enabled = false;
}
else
viewport.RemoveCompositor( name );
}
if( enabled )
{
//MotionBlur specific
if( name == "MotionBlur" )
{
//Update post effect parameters
MotionBlurCompositorInstance.Blur = scrollBarFloatParameters[ 0 ].Value;
}
//Blur specific
if( name == "Blur" )
{
//Update post effect parameters
BlurCompositorInstance.Fuzziness = scrollBarFloatParameters[ 0 ].Value;
}
//HDR specific
if( name == "HDR" )
{
//Update post effect parameters
HDRCompositorInstance.Adaptation = checkBoxBoolParameters[ 0 ].Checked;
HDRCompositorInstance.AdaptationVelocity = scrollBarFloatParameters[ 1 ].Value;
HDRCompositorInstance.AdaptationMiddleBrightness = scrollBarFloatParameters[ 2 ].Value;
HDRCompositorInstance.AdaptationMinimum = scrollBarFloatParameters[ 3 ].Value;
HDRCompositorInstance.AdaptationMaximum = scrollBarFloatParameters[ 4 ].Value;
HDRCompositorInstance.BloomBrightThreshold = scrollBarFloatParameters[ 5 ].Value;
HDRCompositorInstance.BloomScale = scrollBarFloatParameters[ 6 ].Value;
//Update controls
for( int n = 1; n <= 4; n++ )
scrollBarFloatParameters[ n ].Enable = HDRCompositorInstance.Adaptation;
}
//LDRBloom specific
if( name == "LDRBloom" )
{
//Update post effect parameters
LDRBloomCompositorInstance.BloomBrightThreshold = scrollBarFloatParameters[ 0 ].Value;
LDRBloomCompositorInstance.BloomScale = scrollBarFloatParameters[ 1 ].Value;
}
}
}