///<summary> /// @see RenderTargetListener.PreViewportUpdate ///</summary> public virtual void BeforeViewportUpdate(RenderTargetViewportEventArgs evt) { // Only set up if there is at least one compositor enabled, and it's this viewport if (evt.Viewport != this.viewport || !this.anyCompositorsEnabled) { return; } // set original scene details from viewport var pass = this.originalScene.Technique.OutputTarget.Passes[0]; var passParent = pass.Parent; if (pass.ClearBuffers != this.viewport.ClearBuffers || pass.ClearColor != this.viewport.BackgroundColor || passParent.VisibilityMask != this.viewport.VisibilityMask || passParent.MaterialScheme != this.viewport.MaterialScheme || passParent.ShadowsEnabled != this.viewport.ShowShadows) { pass.ClearBuffers = this.viewport.ClearBuffers; pass.ClearColor = this.viewport.BackgroundColor; pass.ClearDepth = this.viewport.ClearDepth; passParent.VisibilityMask = this.viewport.VisibilityMask; passParent.MaterialScheme = this.viewport.MaterialScheme; passParent.ShadowsEnabled = this.viewport.ShowShadows; Compile(); } var camera = this.viewport.Camera; if (camera != null) { // Prepare for output operation PreTargetOperation(this.outputOperation, this.viewport, this.viewport.Camera); } }
///<summary> /// @see RenderTargetListener.ViewportRemoved ///</summary> public virtual void OnViewportRemoved(RenderTargetViewportEventArgs evt) { // check this is the viewport we're attached to (multi-viewport targets) if (evt.Viewport == this.viewport) { // this chain is now orphaned // can't delete it since held from outside, but release all resources being used DestroyResources(); } }
///<summary> /// @see RenderTargetListener.PostViewportUpdate ///</summary> public virtual void AfterViewportUpdate(RenderTargetViewportEventArgs evt) { // Only tidy up if there is at least one compositor enabled, and it's this viewport if (evt.Viewport != this.viewport || !this.anyCompositorsEnabled) { return; } if (this.viewport.Camera != null) { PostTargetOperation(this.outputOperation, this.viewport, this.viewport.Camera); } }
///<summary> /// @see RenderTargetListener.ViewportRemoved ///</summary> public virtual void OnViewportRemoved( RenderTargetViewportEventArgs evt ) { // check this is the viewport we're attached to (multi-viewport targets) if ( evt.Viewport == this.viewport ) { // this chain is now orphaned // can't delete it since held from outside, but release all resources being used DestroyResources(); } }
///<summary> /// @see RenderTargetListener.PostViewportUpdate ///</summary> public virtual void AfterViewportUpdate( RenderTargetViewportEventArgs evt ) { // Only tidy up if there is at least one compositor enabled, and it's this viewport if ( evt.Viewport != this.viewport || !this.anyCompositorsEnabled ) { return; } if ( this.viewport.Camera != null ) { PostTargetOperation( this.outputOperation, this.viewport, this.viewport.Camera ); } }
///<summary> /// @see RenderTargetListener.PreViewportUpdate ///</summary> public virtual void BeforeViewportUpdate( RenderTargetViewportEventArgs evt ) { // Only set up if there is at least one compositor enabled, and it's this viewport if ( evt.Viewport != this.viewport || !this.anyCompositorsEnabled ) { return; } // set original scene details from viewport var pass = this.originalScene.Technique.OutputTarget.Passes[ 0 ]; var passParent = pass.Parent; if ( pass.ClearBuffers != this.viewport.ClearBuffers || pass.ClearColor != this.viewport.BackgroundColor || passParent.VisibilityMask != this.viewport.VisibilityMask || passParent.MaterialScheme != this.viewport.MaterialScheme || passParent.ShadowsEnabled != this.viewport.ShowShadows ) { pass.ClearBuffers = this.viewport.ClearBuffers; pass.ClearColor = this.viewport.BackgroundColor; pass.ClearDepth = this.viewport.ClearDepth; passParent.VisibilityMask = this.viewport.VisibilityMask; passParent.MaterialScheme = this.viewport.MaterialScheme; passParent.ShadowsEnabled = this.viewport.ShowShadows; Compile(); } var camera = this.viewport.Camera; if ( camera != null ) { // Prepare for output operation PreTargetOperation( this.outputOperation, this.viewport, this.viewport.Camera ); } }