Sign in to follow this  

Scaling sprites in 2D

Recommended Posts

I'm trying to create a resizable UI using sprites in SlimDX. I am drawing them in screen/window coordinates using Sprite.Draw, but I can't figure out how to scale sprites in screen coordinates.

For instance I need 9 sprites to draw the background of a button control. One for each corner and edge of the rectangle, and one for the center area. I want to stretch the center sprite so it fills the buttons background when it changes size.


I know how to get the scalar value of 2 integers but I don't know how this would apply in scaling the sprite. Any help would be greatly appreciated.

float scaleWidth = ?
float scaleHeight = ?

Sprite.Transform = Matrix.Transformation2D(new Vector2(p_Bounds.X + MiddleLeft.Width, p_Bounds.Y + TopCenter.Height), 0.0f, new Vector2(scaleWidth, scaleHeight), new Vector2(), 0.0f, new Vector2());
Sprite.Draw(Texture, MiddleCenter, new Vector3(), new Vector3(p_Bounds.X + MiddleLeft.Width, p_Bounds.Y + TopCenter.Height, 0.0f), new Color4(Color.White));

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this