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))); }