| using Microsoft.Xna.Framework;␍␊ |
| using Microsoft.Xna.Framework.Graphics;␍␊ |
| using System.Collections.Generic;␍␊ |
| ␍␊ |
| namespace Axios.Engine.Factories␍␊ |
| {␍␊ |
| public class Texture2DFactory␍␊ |
| {␍␊ |
| public static Texture2D CreateFromList(List<Texture2D> textures, int width, int height)␍␊ |
| {␍␊ |
| if (textures.Count <= 0)␍␊ |
| return (Texture2D)null;␍␊ |
| Texture2D texture2D1 = new Texture2D(textures[0].GraphicsDevice, width, height);␍␊ |
| Color[] data1 = new Color[width * height];␍␊ |
| texture2D1.GetData<Color>(data1);␍␊ |
| Rectangle rectangle = new Rectangle(0, 0, textures[0].Width, textures[0].Height);␍␊ |
| foreach (Texture2D texture2D2 in textures)␍␊ |
| {␍␊ |
| Color[] data2 = new Color[texture2D2.Width * texture2D2.Height];␍␊ |
| texture2D2.GetData<Color>(data2);␍␊ |
| texture2D1.SetData<Color>(0, new Rectangle?(rectangle), data2, 0, texture2D2.Width * texture2D2.Height);␍␊ |
| rectangle.X += texture2D2.Width;␍␊ |
| if (rectangle.X >= width)␍␊ |
| {␍␊ |
| rectangle.X = 0;␍␊ |
| rectangle.Y += texture2D2.Height;␍␊ |
| }␍␊ |
| }␍␊ |
| return texture2D1;␍␊ |
| }␍␊ |
| }␍␊ |
| }␍␊ |