void TryExecuteCommandBuffer <T>(BasePostEffect component, CameraEvent evt) { if (component.active) { var cb = GetCommandBuffer <T>(evt, component.GetName()); cb.Clear(); component.PopulateCommandBuffer(cb); } else { RemoveCommandBuffer <T>(); } }
void OnDestroy() { for (int i = 0; i < postEffectList.Count; i++) { BasePostEffect postEffect = postEffectList[i]; postEffect.OnDestroy(); } if (renderTextureFactory != null) { renderTextureFactory.ReleaseAll(); } postEffectList.Clear(); }
private void OnDisable() { for (int i = 0; i < postEffectList.Count; i++) { BasePostEffect postEffect = postEffectList[i]; postEffect.OnDisable(); } foreach (var cb in m_CommandBuffers.Values) { m_Camera.RemoveCommandBuffer(cb.Key, cb.Value); cb.Value.Dispose(); } m_CommandBuffers.Clear(); }
private bool CheckResources() { CheckSupport(false); for (int i = 0; i < postEffectList.Count; i++) { BasePostEffect postEffect = postEffectList[i]; postEffect.CheckShaderAndCreateMaterial(); } if (!isSupported) { ReportAutoDisable(); } return(isSupported); }
public void OnEnable() { rendererCamera = Camera.main; isSupported = true; m_CommandBuffers = new Dictionary <Type, KeyValuePair <CameraEvent, CommandBuffer> >(); renderTextureFactory = new RenderTextureFactory(); m_Camera = gameObject.GetComponent <Camera>(); PostEffectModelContainer postEffectModel = Resources.Load("PostEffectModelContainer") as PostEffectModelContainer; blurEffect = new BlurEffect(); blurEffect.renderTextureFactory = renderTextureFactory; blurEffectModel = postEffectModel.blurEffectModel; blurEffect.SetPostEffectModel <BlurEffectModel>(blurEffectModel); oldFilmEffect = new OldFilmEffect(); oldFilmEffect.renderTextureFactory = renderTextureFactory; oldFilmEffectModel = postEffectModel.oldFilmEffectModel; oldFilmEffect.SetPostEffectModel <OldFilmEffectModel>(oldFilmEffectModel); nightVisionEffect = new NightVisionEffect(); nightVisionEffect.renderTextureFactory = renderTextureFactory; nightVisionEffectModel = postEffectModel.nightVisionEffectModel; nightVisionEffect.SetPostEffectModel <NightVisionEffectModel>(nightVisionEffectModel); ambientOcclusionEffect = new AmbientOcclusionEffect(); ambientOcclusionEffect.renderTextureFactory = renderTextureFactory; ambientOcclusionModel = postEffectModel.ambientOcclusionModel; ambientOcclusionEffect.SetPostEffectModel(ambientOcclusionModel); postEffectList.Add(blurEffect); postEffectList.Add(oldFilmEffect); postEffectList.Add(nightVisionEffect); postEffectList.Add(ambientOcclusionEffect); for (int i = 0; i < postEffectList.Count; i++) { BasePostEffect postEffect = postEffectList[i]; postEffect.OnEnable(); } CheckResources(); }
void inputs() { if (Input.GetKeyDown(KeyCode.F1)) { posteffectType = PosteffecTypes.TROUGH; postEffect = this.GetComponent <Through>(); postEffect.IsActive = true; } else if (Input.GetKeyDown(KeyCode.F2)) { posteffectType = PosteffecTypes.INVERTCOLOR; postEffect = this.GetComponent <InvertColor>(); postEffect.IsActive = true; if (SwitchMode == SwitchModes.MomentaryHumanMode) { isEffectOn[1] = false; } } else if (Input.GetKeyDown(KeyCode.F3)) { posteffectType = PosteffecTypes.ZOOM; postEffect = this.GetComponent <Zoom>(); postEffect.IsActive = true; if (SwitchMode == SwitchModes.MomentaryHumanMode) { isEffectOn[2] = false; } } else if (Input.GetKeyDown(KeyCode.F4)) { posteffectType = PosteffecTypes.RGBSHIFT; postEffect = this.GetComponent <RGBShift>(); postEffect.IsActive = true; if (SwitchMode == SwitchModes.MomentaryHumanMode) { isEffectOn[3] = false; } } else if (Input.GetKeyDown(KeyCode.F5)) { posteffectType = PosteffecTypes.GLITCH; postEffect.GetComponent <Glitch>(); postEffect.IsActive = true; if (SwitchMode == SwitchModes.MomentaryHumanMode) { isEffectOn[4] = false; } } else if (Input.GetKeyDown(KeyCode.F6)) { posteffectType = PosteffecTypes.GRIDFLASH; postEffect = this.GetComponent <GridFlash>(); postEffect.IsActive = true; if (SwitchMode == SwitchModes.MomentaryHumanMode) { isEffectOn[5] = false; } } else if (Input.GetKeyDown(KeyCode.F7)) { posteffectType = PosteffecTypes.VERTICALSYMMETRY; postEffect = this.GetComponent <VerticalSymmetry>(); postEffect.IsActive = true; if (SwitchMode == SwitchModes.MomentaryHumanMode) { isEffectOn[6] = false; } } else if (Input.GetKeyDown(KeyCode.F8)) { posteffectType = PosteffecTypes.HORIZONTALSYMMETRY; postEffect = this.GetComponent <HorizontalSymmetry>(); postEffect.IsActive = true; if (SwitchMode == SwitchModes.MomentaryHumanMode) { isEffectOn[7] = false; } } else if (Input.GetKeyDown(KeyCode.F9)) { posteffectType = PosteffecTypes.MOSAIC; postEffect = this.GetComponent <Mosaic>(); postEffect.IsActive = true; if (SwitchMode == SwitchModes.MomentaryHumanMode) { isEffectOn[8] = false; } } else if (Input.GetKeyDown(KeyCode.F10)) { posteffectType = PosteffecTypes.TILE; postEffect = this.GetComponent <Tile>(); postEffect.IsActive = true; if (SwitchMode == SwitchModes.MomentaryHumanMode) { isEffectOn[9] = false; } } else if (Input.GetKeyDown(KeyCode.F11)) { posteffectType = PosteffecTypes.FEEDBACK; postEffect = this.GetComponent <Feedback>(); postEffect.IsActive = true; if (SwitchMode == SwitchModes.MomentaryHumanMode) { isEffectOn[10] = false; } } else if (Input.GetKeyDown(KeyCode.F12)) { posteffectType = PosteffecTypes.EDGE; postEffect = this.GetComponent <SobelEdge>(); postEffect.IsActive = true; if (SwitchMode == SwitchModes.MomentaryHumanMode) { isEffectOn[11] = false; } } else if (Input.GetKeyDown(KeyCode.Alpha1)) { posteffectType = PosteffecTypes.DISTORTION; postEffect = this.GetComponent <Distortion>(); postEffect.IsActive = true; if (SwitchMode == SwitchModes.MomentaryHumanMode) { isEffectOn[12] = false; } } else if (Input.GetKeyDown(KeyCode.Alpha2)) { posteffectType = PosteffecTypes.PIXLESORTING; postEffect = this.GetComponent <PixleSorting>(); postEffect.IsActive = true; if (SwitchMode == SwitchModes.MomentaryHumanMode) { isEffectOn[13] = false; } } else if (Input.GetKeyDown(KeyCode.Alpha3)) { posteffectType = PosteffecTypes.PINGPONGFLASH; postEffect = this.GetComponent <PingPongFlash>(); postEffect.IsActive = true; if (SwitchMode == SwitchModes.MomentaryHumanMode) { isEffectOn[14] = false; } } else if (SwitchMode == SwitchModes.HumanMode) { if (temp != postEffect) { if (temp != null) { temp.IsActive = false; } } temp = postEffect; } }