Files
OpenRA/OpenRa.Game/Sheet.cs

53 lines
995 B
C#

using System;
using System.Collections.Generic;
using System.Text;
using BluntDirectX.Direct3D;
using System.Drawing;
using System.IO;
namespace OpenRa.Game
{
class Sheet
{
readonly Renderer renderer;
protected readonly Bitmap bitmap;
Texture texture;
static int suffix = 0;
public Sheet(Renderer renderer, Size size)
{
this.renderer = renderer;
this.bitmap = new Bitmap(size.Width, size.Height);
}
void Resolve()
{
string filename = string.Format("../../../sheet-{0}.png", suffix++);
bitmap.Save(filename);
using (Stream s = File.OpenRead(filename))
texture = Texture.Create(s, renderer.Device);
}
public Texture Texture
{
get
{
if (texture == null)
Resolve();
return texture;
}
}
public Size Size { get { return bitmap.Size; } }
public Color this[Point p]
{
get { return bitmap.GetPixel(p.X, p.Y); }
set { bitmap.SetPixel(p.X, p.Y, value); }
}
}
}