Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
        }