From a7d35c32da9936236251dda5f39b5f155192cf8b Mon Sep 17 00:00:00 2001 From: chrisf Date: Sat, 7 Jul 2007 04:56:42 +0000 Subject: [PATCH] closer to real batching git-svn-id: svn://svn.ijw.co.nz/svn/OpenRa@1123 993157c7-ee19-0410-b2c4-bb4e9862e678 --- BluntDx.dll | Bin 76288 -> 76800 bytes OpenRa.Game/MainWindow.cs | 23 +++++++++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/BluntDx.dll b/BluntDx.dll index 0644a43f5d597ccd21db0163fb1e4bd98644bedd..89dd1b3e4b44af0797ff0d7507e509816d32212b 100644 GIT binary patch delta 23194 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 delta 22924 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 vertexBuffer; + Dictionary drawBatches = new Dictionary(); + void LoadTextures() { List tempSheets = new List(); @@ -63,7 +65,6 @@ namespace OpenRa.Game void LoadVertexBuffer() { Dictionary> indexMap = new Dictionary>(); - Vertex[] vertices = new Vertex[4 * 128 * 128];//map.Width * map.Height]; for( int i = 0; i < 128; i++ ) @@ -94,8 +95,12 @@ namespace OpenRa.Game vertexBuffer = new FvfVertexBuffer(device, vertices.Length, Vertex.Format); vertexBuffer.SetData(vertices); - Dictionary indexBuffers = new Dictionary(); - + foreach (KeyValuePair> p in indexMap) + { + IndexBuffer indexBuffer = new IndexBuffer(device, p.Value.Count); + indexBuffer.SetData(p.Value.ToArray()); + drawBatches.Add(p.Key, indexBuffer); + } } public MainWindow() @@ -133,10 +138,16 @@ namespace OpenRa.Game // render something :) - //vertexBuffer.Bind(0); - //indexBuffer.Bind(); + vertexBuffer.Bind(0); - //device.DrawIndexedPrimitives(PrimitiveType.TriangleList, 2 * map.Width * map.Height); + foreach (KeyValuePair batch in drawBatches) + { + //todo: bind texture! + + batch.Value.Bind(); + device.DrawIndexedPrimitives(PrimitiveType.TriangleList, + vertexBuffer.Size, batch.Value.Size / 3); + } device.End(); device.Present();