protected virtual void OnRenderImage(RenderTexture source, RenderTexture destination) { if (blurAlgorithm == null || BlurConfig == null) { goto draw_unmodified; } if (shouldUpdateBlur()) { //Resize final texture if base downsample changed if (Downsample != lastDownsample || !BlurRegion.Approximately(lastBlurRegion)) { CreateNewBlurredScreen(); lastDownsample = Downsample; lastBlurRegion = BlurRegion; } blurAlgorithm.Blur(source, BlurRegion, ref blurredScreen); } if (preview) { previewMaterial.SetVector(ShaderProperties.blurTextureCropRegion, BlurRegion.ToMinMaxVector()); Graphics.Blit(BlurredScreen, destination, previewMaterial); return; } draw_unmodified: Graphics.Blit(source, destination); }
public void OnBeforeBlur() { if (BlurredScreen == null || !BlurredScreen.IsCreated() || Downsample != lastDownsample || !BlurRegion.Approximately(lastBlurRegion)) { CreateNewBlurredScreen(); lastDownsample = Downsample; lastBlurRegion = BlurRegion; } }