diff --git a/OpenRa.Game/OpenRa.Game.csproj b/OpenRa.Game/OpenRa.Game.csproj
index 31029a5c52..d4946ddac4 100644
--- a/OpenRa.Game/OpenRa.Game.csproj
+++ b/OpenRa.Game/OpenRa.Game.csproj
@@ -44,6 +44,7 @@
+
diff --git a/OpenRa.Game/TileSheetBuilder.cs b/OpenRa.Game/TileSheetBuilder.cs
new file mode 100644
index 0000000000..e8f26ac01e
--- /dev/null
+++ b/OpenRa.Game/TileSheetBuilder.cs
@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Drawing;
+
+namespace OpenRa.Game
+{
+ // T is probably going to be BluntDirectX.Direct3D.Texture
+
+
+ public delegate T Provider();
+
+ class TileSheetBuilder
+ where T : class
+ {
+ readonly Size pageSize;
+ readonly Provider pageProvider;
+
+ public TileSheetBuilder(Size pageSize, Provider pageProvider)
+ {
+ this.pageSize = pageSize;
+ this.pageProvider = pageProvider;
+ }
+
+ public SheetRectangle AddImage(Size imageSize)
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public class SheetRectangle
+ where T : class
+ {
+ readonly PointF origin;
+ readonly SizeF size;
+ readonly T sheet;
+
+ internal SheetRectangle(T sheet, PointF origin, SizeF size)
+ {
+ this.origin = origin;
+ this.size = size;
+ this.sheet = sheet;
+ }
+ }
+}