Myre.Graphics.Renderer.Draw C# (CSharp) Method

Draw() public method

public Draw ( ) : void
return void
        public override void Draw()
        {
            var targets = _device.GetRenderTargets();

            #if PROFILE
            Statistic.Create("Graphics.Primitives").Set(0);
            Statistic.Create("Graphics.Draws").Set(0);
            #endif

            foreach (var view in _views)
            {
                view.Begin(this);
                {
                    view.SetMetadata(_data);
                    var output = Plan.Execute();

                    _viewResults.Enqueue(output);
                }
                view.End(this);
            }

            if (targets.Length != 0)
                _device.SetRenderTargets(targets);
            else
                _device.SetRenderTarget(null);

            _spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);
            foreach (var view in _views)
            {
                var output = _viewResults.Dequeue();
                var viewport = view.Viewport;

                if (output.Image.Format.IsFloatingPoint())
                    _device.SamplerStates[0] = SamplerState.PointClamp;
                else
                    _device.SamplerStates[0] = SamplerState.LinearClamp;

                _spriteBatch.Draw(output.Image, viewport.Bounds, Color.White);
                output.Finalise();
            }
            _spriteBatch.End();

            base.Draw();
        }