Example #1
0
        protected override void DrawControl(Renderer renderer, Rectangle rect, GameTime gameTime)
        {
            if (image != null)
            {
                if (sizeMode == SizeMode.Normal)
                {
                    renderer.Draw(image, rect.X, rect.Y, sourceRect, Color);
                }
                else if (sizeMode == SizeMode.Auto)
                {
                    renderer.Draw(image, rect.X, rect.Y, sourceRect, Color);
                }
                else if (sizeMode == SizeMode.Stretched)
                {
                    renderer.Draw(image, rect, sourceRect, Color);
                }
                else if (sizeMode == SizeMode.Centered)
                {
                    var x = (rect.Width / 2) - (image.Width / 2);
                    var y = (rect.Height / 2) - (image.Height / 2);

                    renderer.Draw(image, x, y, sourceRect, Color);
                }
                else if (sizeMode == SizeMode.Tiled)
                {
                    renderer.DrawTileTexture(image, rect, Color);
                }
            }
        }
Example #2
0
        public override void DrawControl(Renderer renderer, Rectangle rect, GameTime gameTime)
        {
            if (image != null)
            {
                if (sizeMode == SizeMode.Normal)
                {
                    renderer.Draw(image, rect.X, rect.Y, sourceRect, Color);
                }
                else if (sizeMode == SizeMode.Auto)
                {
                    renderer.Draw(image, rect.X, rect.Y, sourceRect, Color);
                }
                else if (sizeMode == SizeMode.Stretched)
                {
                    renderer.Draw(image, rect, sourceRect, Color);
                }
                else if (sizeMode == SizeMode.Fit)
                {
                    float widthScale  = Width / (float)image.Width;
                    float heightScale = Height / (float)image.Height;
                    float scale       = MathHelper.Clamp((float)Math.Min(widthScale, heightScale), 0f, 1f);
                    rect.Width  = (int)Math.Round((image.Width * scale));
                    rect.Height = (int)Math.Round((image.Height * scale));
                    rect.Y      = rect.Y + ((this.Height - rect.Height) / 2);
                    rect.X      = rect.X + ((this.Width - rect.Width) / 2);
                    renderer.Draw(image, rect, sourceRect, Color);
                }
                else if (sizeMode == SizeMode.Centered)
                {
                    int x = rect.X + (rect.Width / 2) - (image.Width / 2);
                    int y = rect.Y + (rect.Height / 2) - (image.Height / 2);

                    renderer.Draw(image, x, y, sourceRect, Color);
                }
                else if (sizeMode == SizeMode.Tiled)
                {
                    renderer.DrawTileTexture(image, rect, Color);
                }
            }
        }