Ejemplo n.º 1
0
        public static void RenderRectangle(IRenderConfiguration renderConfig, RectangleF destRect, Color col, int BorderWidth = 1)
        {
            if (renderConfig == null)
            {
                throw new ArgumentNullException(nameof(renderConfig));
            }

            Vector2 Scale        = renderConfig.Scale;
            Vector2 ScaledOffset = renderConfig.ScaledOffset;

            destRect = new RectangleF(ScaledOffset.X + (int)(destRect.X * Scale.X), ScaledOffset.Y + (int)(destRect.Y * Scale.Y),
                                      (int)(destRect.Width * Scale.X), (int)(destRect.Height * Scale.Y));

            Rectangle singleRect = new Rectangle(0, 0, 1, 1);
            Rectangle leftRect   = new Rectangle((int)destRect.X, (int)destRect.Y, BorderWidth, (int)destRect.Height);
            Rectangle topRect    = new Rectangle((int)destRect.X, (int)destRect.Y, (int)destRect.Width, BorderWidth);
            Rectangle rightRect  = new Rectangle((int)destRect.X + (int)destRect.Width - BorderWidth, (int)destRect.Y, BorderWidth, (int)destRect.Height);
            Rectangle bottomRect = new Rectangle((int)destRect.X, (int)destRect.Y + (int)destRect.Height - BorderWidth, (int)destRect.Width, BorderWidth);

            renderConfig.PrimitiveRenderManager.SpriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, SamplerState.PointWrap, DepthStencilState.None, RasterizerState.CullNone);
            renderConfig.PrimitiveRenderManager.SpriteBatch.Draw(Texture.SingleWhite.nativeTexture, leftRect, singleRect, col);
            renderConfig.PrimitiveRenderManager.SpriteBatch.Draw(Texture.SingleWhite.nativeTexture, topRect, singleRect, col);
            renderConfig.PrimitiveRenderManager.SpriteBatch.Draw(Texture.SingleWhite.nativeTexture, rightRect, singleRect, col);
            renderConfig.PrimitiveRenderManager.SpriteBatch.Draw(Texture.SingleWhite.nativeTexture, bottomRect, singleRect, col);
            renderConfig.PrimitiveRenderManager.SpriteBatch.End();
        }
Ejemplo n.º 2
0
        public void RenderOnScreen(RectangleF display_rect, bool flipX, bool flipY, float rotation = 0.0f)
        {
            RectangleF sourceRect = new RectangleF(
                flipX ? (float)this.Width : 0,
                flipY ? (float)this.Height : 0,
                flipX ? -(float)this.Width : (float)this.Width,
                flipY ? -(float)this.Height : (float)this.Height);

            RenderOnScreen(sourceRect,
                           new RectangleF(display_rect.X, display_rect.Y, display_rect.Width, display_rect.Height),
                           Color.White, rotation, flipX, flipY);
        }
Ejemplo n.º 3
0
        public void RenderOnScreen(RectangleF sourceRect, RectangleF destRect, Color col, float rotation, bool flipX = false, bool flipY = false)
        {
            Vector2 Scale        = renderConfig.Scale;
            Vector2 ScaledOffset = renderConfig.ScaledOffset;

            Vector2 scale = new Vector2(flipX ? -Scale.X : Scale.X, flipY ? -Scale.Y : Scale.Y);

            scale    = new Vector2(Scale.X, Scale.Y);
            scale.X *= destRect.Width / sourceRect.Width;
            scale.Y *= destRect.Height / sourceRect.Height;

            float radRotation = rotation * ((float)Math.PI / 180.0f);

            ScreenQuad.RenderQuad(new Vector2(destRect.X, destRect.Y),
                                  new Vector2(destRect.Width, destRect.Height),
                                  col, radRotation, this.nativeTexture,
                                  renderConfig);
        }
Ejemplo n.º 4
0
 public void RenderOnScreen(RectangleF sourceRect, RectangleF destRect, float rotation = 0.0f)
 {
     RenderOnScreen(sourceRect, destRect, Color.White, rotation);
 }
Ejemplo n.º 5
0
 public void RenderOnScreen(RectangleF display_rect)
 {
     RenderOnScreen(display_rect, false, false);
 }