/// <summary> /// /// </summary> /// <param name="b"></param> /// <param name="storeInVideoMemory"></param> /// <param name="keyColor"></param> /// <returns></returns> public ISprite LoadSprite(BitmapBuilder b, bool storeInVideoMemory, Color keyColor) { if (!AllowLoadTextures) { throw new InvalidOperationException("Loading sprites is only allowed inside the LoadSprites event"); } Format format = Format.A8R8G8B8; if (keyColor == System.Drawing.Color.Transparent) { format = Format.R8G8B8; } Bitmap bmp = new Bitmap(b.GetStream()); int w = (int)(b.Width * XRatio), h = (int)(b.Height * YRatio); if (keyColor != Color.Transparent) { bmp.MakeTransparent(keyColor); } bmp = new Bitmap(bmp, w, h); using (MemoryStream s = new MemoryStream()) { bmp.Save(s, System.Drawing.Imaging.ImageFormat.Bmp); bmp.Dispose(); s.Seek(0, SeekOrigin.Begin); return(new SDXSprite(Texture.FromStream(Device, s, w, h, 0, Usage.None, format, storeInVideoMemory ? Pool.Managed : Pool.Managed, Filter.None, Filter.None, keyColor.ToArgb()))); } //return new SDXSprite(Texture.FromMemory(Device, b.BitmapData, (int)b.Width, (int)b.Height, 0, Usage.None, format, // storeInVideoMemory ? Pool.Default : Pool.Managed, Filter.None, Filter.None, keyColor.ToArgb())); }
/// <summary> /// /// </summary> /// <param name="b"></param> /// <param name="storeInVideoMemory"></param> /// <param name="keyColor"></param> /// <returns></returns> public ISprite LoadSprite(BitmapBuilder b, bool storeInVideoMemory, Color keyColor) { Bitmap bitmap = new Bitmap(b.GetStream()); bitmap.MakeTransparent(keyColor); return(new Sprite(bitmap)); }