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(); }
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); }
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); }
public void RenderOnScreen(RectangleF sourceRect, RectangleF destRect, float rotation = 0.0f) { RenderOnScreen(sourceRect, destRect, Color.White, rotation); }
public void RenderOnScreen(RectangleF display_rect) { RenderOnScreen(display_rect, false, false); }