public void Apply(int pass)
 {
     shaderParams.Set(hslKey, HSL);
     shaderParams.Set(brightnessKey, Brightness);
     shaderParams.Set(contrastKey, Contrast);
     PlatformRenderer.SetBlendState(!Opaque ? Blending.GetBlendState() : disabledBlendingState);
     PlatformRenderer.SetShaderProgram(ColorCorrectionShaderProgram.GetInstance(RequiredBrightnessContrastProcess, RequiredHSLProcess, Opaque));
     PlatformRenderer.SetShaderParams(shaderParamsArray);
 }
        public static ColorCorrectionShaderProgram GetInstance(bool requiredBrightnessContrast = false, bool requiredHSL = false, bool opaque = false)
        {
            var key = GetInstanceKey(requiredBrightnessContrast, requiredHSL, opaque);

            return(instances.TryGetValue(key, out var shaderProgram) ? shaderProgram : (instances[key] = new ColorCorrectionShaderProgram(requiredBrightnessContrast, requiredHSL, opaque)));
        }