closer to real batching
git-svn-id: svn://svn.ijw.co.nz/svn/OpenRa@1123 993157c7-ee19-0410-b2c4-bb4e9862e678
This commit is contained in:
BIN
BluntDx.dll
BIN
BluntDx.dll
Binary file not shown.
@@ -27,6 +27,8 @@ namespace OpenRa.Game
|
|||||||
|
|
||||||
FvfVertexBuffer<Vertex> vertexBuffer;
|
FvfVertexBuffer<Vertex> vertexBuffer;
|
||||||
|
|
||||||
|
Dictionary<Sheet, IndexBuffer> drawBatches = new Dictionary<Sheet, IndexBuffer>();
|
||||||
|
|
||||||
void LoadTextures()
|
void LoadTextures()
|
||||||
{
|
{
|
||||||
List<Sheet> tempSheets = new List<Sheet>();
|
List<Sheet> tempSheets = new List<Sheet>();
|
||||||
@@ -63,7 +65,6 @@ namespace OpenRa.Game
|
|||||||
void LoadVertexBuffer()
|
void LoadVertexBuffer()
|
||||||
{
|
{
|
||||||
Dictionary<Sheet, List<ushort>> indexMap = new Dictionary<Sheet, List<ushort>>();
|
Dictionary<Sheet, List<ushort>> indexMap = new Dictionary<Sheet, List<ushort>>();
|
||||||
|
|
||||||
Vertex[] vertices = new Vertex[4 * 128 * 128];//map.Width * map.Height];
|
Vertex[] vertices = new Vertex[4 * 128 * 128];//map.Width * map.Height];
|
||||||
|
|
||||||
for( int i = 0; i < 128; i++ )
|
for( int i = 0; i < 128; i++ )
|
||||||
@@ -94,8 +95,12 @@ namespace OpenRa.Game
|
|||||||
vertexBuffer = new FvfVertexBuffer<Vertex>(device, vertices.Length, Vertex.Format);
|
vertexBuffer = new FvfVertexBuffer<Vertex>(device, vertices.Length, Vertex.Format);
|
||||||
vertexBuffer.SetData(vertices);
|
vertexBuffer.SetData(vertices);
|
||||||
|
|
||||||
Dictionary<Sheet, IndexBuffer> indexBuffers = new Dictionary<Sheet, IndexBuffer>();
|
foreach (KeyValuePair<Sheet, List<ushort>> p in indexMap)
|
||||||
|
{
|
||||||
|
IndexBuffer indexBuffer = new IndexBuffer(device, p.Value.Count);
|
||||||
|
indexBuffer.SetData(p.Value.ToArray());
|
||||||
|
drawBatches.Add(p.Key, indexBuffer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public MainWindow()
|
public MainWindow()
|
||||||
@@ -133,10 +138,16 @@ namespace OpenRa.Game
|
|||||||
|
|
||||||
// render something :)
|
// render something :)
|
||||||
|
|
||||||
//vertexBuffer.Bind(0);
|
vertexBuffer.Bind(0);
|
||||||
//indexBuffer.Bind();
|
|
||||||
|
|
||||||
//device.DrawIndexedPrimitives(PrimitiveType.TriangleList, 2 * map.Width * map.Height);
|
foreach (KeyValuePair<Sheet, IndexBuffer> batch in drawBatches)
|
||||||
|
{
|
||||||
|
//todo: bind texture!
|
||||||
|
|
||||||
|
batch.Value.Bind();
|
||||||
|
device.DrawIndexedPrimitives(PrimitiveType.TriangleList,
|
||||||
|
vertexBuffer.Size, batch.Value.Size / 3);
|
||||||
|
}
|
||||||
|
|
||||||
device.End();
|
device.End();
|
||||||
device.Present();
|
device.Present();
|
||||||
|
|||||||
Reference in New Issue
Block a user