/// <summary> /// Constructor /// </summary> /// <param name="game">Game</param> public SceneRendererDeferred(Game game) : base(game) { this.lightDrawer = new SceneRendererDeferredLights(game.Graphics); this.UpdateRectangleAndView(); this.geometryBuffer = new RenderTarget(game, Format.R32G32B32A32_Float, false, 3); this.lightBuffer = new RenderTarget(game, Format.R32G32B32A32_Float, false, 1); this.blendDeferredComposer = EngineBlendState.DeferredComposer(game.Graphics, 3); this.blendDeferredComposerTransparent = EngineBlendState.DeferredComposerTransparent(game.Graphics, 3); this.blendDeferredLighting = EngineBlendState.DeferredLighting(game.Graphics); }
/// <summary> /// Dispose objects /// </summary> protected override void Dispose(bool disposing) { if (disposing) { if (geometryBuffer != null) { geometryBuffer.Dispose(); geometryBuffer = null; } if (lightBuffer != null) { lightBuffer.Dispose(); lightBuffer = null; } if (lightDrawer != null) { lightDrawer.Dispose(); lightDrawer = null; } if (blendDeferredLighting != null) { blendDeferredLighting.Dispose(); blendDeferredLighting = null; } if (blendDeferredComposer != null) { blendDeferredComposer.Dispose(); blendDeferredComposer = null; } if (blendDeferredComposerTransparent != null) { blendDeferredComposerTransparent.Dispose(); blendDeferredComposerTransparent = null; } } base.Dispose(disposing); }