public void SetRenderTarget(IPreDrawable painter, Vector size)
 {
     this.drawImplementation.SetRenderTarget(painter, size);
 }
        public void SetRenderTarget(IPreDrawable painter, Vector size)
        {
            if (!this.renderTargetDictionary.TryGetValue(painter, out this.renderTargetWrap))
            {
                this.renderTargetWrap = new RenderTargetWrap();
                this.renderTargetDictionary.Add(painter, this.renderTargetWrap);
            }

            if (size.X > this.renderTargetWrap.ActualSize.X || size.Y > this.renderTargetWrap.ActualSize.Y)
            {
                this.renderTargetWrap.ActualSize = new Vector((int)(size.X * 1.2f), (int)(size.Y * 1.2f));

                this.renderTargetWrap.RenderTarget2D = new RenderTarget2D(this.spriteBatch.GraphicsDevice,
                    (int)this.renderTargetWrap.ActualSize.X, (int)this.renderTargetWrap.ActualSize.Y);
            }

            this.renderTargetWrap.Size = size;

            this.spriteBatch.GraphicsDevice.SetRenderTarget(this.renderTargetWrap.RenderTarget2D);

            this.SpriteBatchBegin();
            this.spriteBatch.GraphicsDevice.Clear(GameFramework.Color.Transparent.ToXnaColor());
        }
 public void DrawPreDrawn(IPreDrawable painter)
 {
     this.drawImplementation.DrawPreDrawn(painter);
 }
 public void DrawPreDrawn(IPreDrawable painter)
 {
     if (this.renderTargetDictionary.TryGetValue(painter, out this.renderTargetWrap))
     {
         this.spriteBatch.Draw(this.renderTargetWrap.RenderTarget2D, this.spriteBatch.GraphicsDevice.Viewport.Bounds,
             new Microsoft.Xna.Framework.Rectangle(0, 0, (int)this.renderTargetWrap.Size.X, (int)this.renderTargetWrap.Size.Y),
             Color.White);
     }
 }