From 8ff04fef2e0c48bd9114afc84d2e9381e96ee890 Mon Sep 17 00:00:00 2001 From: Glatzemann Date: Thu, 19 Jan 2012 05:57:54 +0000 Subject: [PATCH] implemented DrawInstancedPrimitives for RenderSystem DX10 and DX11 (currently untested) Primitives sample is now rendering (issue #531) but BasicEffect is not complete --- .../GraphicsDeviceWindowsDX10.cs | 11 +++++++++-- .../Properties/AssemblyInfo.cs | 4 ++-- .../GraphicsDeviceWindowsDX11.cs | 11 +++++++++-- .../Properties/AssemblyInfo.cs | 4 ++-- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/RenderSystems/ANX.Framework.Windows.DX10/GraphicsDeviceWindowsDX10.cs b/RenderSystems/ANX.Framework.Windows.DX10/GraphicsDeviceWindowsDX10.cs index 1f022fe9..fa1a98da 100644 --- a/RenderSystems/ANX.Framework.Windows.DX10/GraphicsDeviceWindowsDX10.cs +++ b/RenderSystems/ANX.Framework.Windows.DX10/GraphicsDeviceWindowsDX10.cs @@ -318,7 +318,7 @@ namespace ANX.Framework.Windows.DX10 #region DrawInstancedPrimitives public void DrawInstancedPrimitives(PrimitiveType primitiveType, int baseVertex, int minVertexIndex, int numVertices, int startIndex, int primitiveCount, int instanceCount) { - throw new NotImplementedException(); + device.DrawIndexedInstanced(numVertices, instanceCount, startIndex, baseVertex, 0); } #endregion // DrawInstancedPrimitives @@ -336,7 +336,14 @@ namespace ANX.Framework.Windows.DX10 device.InputAssembler.SetVertexBuffers(0, nativeVertexBufferBindings); IndexBuffer_DX10 idx10 = new IndexBuffer_DX10(this.device, indexFormat, indexCount, BufferUsage.None); - idx10.SetData(null, (int[])indexData); + if (indexData.GetType() == typeof(Int16[])) + { + idx10.SetData(null, (short[])indexData); + } + else + { + idx10.SetData(null, (int[])indexData); + } DrawIndexedPrimitives(primitiveType, 0, vertexOffset, numVertices, indexOffset, primitiveCount); } diff --git a/RenderSystems/ANX.Framework.Windows.DX10/Properties/AssemblyInfo.cs b/RenderSystems/ANX.Framework.Windows.DX10/Properties/AssemblyInfo.cs index 631972ac..0487f496 100644 --- a/RenderSystems/ANX.Framework.Windows.DX10/Properties/AssemblyInfo.cs +++ b/RenderSystems/ANX.Framework.Windows.DX10/Properties/AssemblyInfo.cs @@ -32,7 +32,7 @@ using System.Runtime.InteropServices; // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern // übernehmen, indem Sie "*" eingeben: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.7.13.0")] -[assembly: AssemblyFileVersion("0.7.13.0")] +[assembly: AssemblyVersion("0.7.14.0")] +[assembly: AssemblyFileVersion("0.7.14.0")] [assembly: InternalsVisibleTo("ANX.Framework.ContentPipeline")] diff --git a/RenderSystems/ANX.RenderSystem.Windows.DX11/GraphicsDeviceWindowsDX11.cs b/RenderSystems/ANX.RenderSystem.Windows.DX11/GraphicsDeviceWindowsDX11.cs index 255bc082..4756d9f4 100644 --- a/RenderSystems/ANX.RenderSystem.Windows.DX11/GraphicsDeviceWindowsDX11.cs +++ b/RenderSystems/ANX.RenderSystem.Windows.DX11/GraphicsDeviceWindowsDX11.cs @@ -322,7 +322,7 @@ namespace ANX.RenderSystem.Windows.DX11 #region DrawInstancedPrimitives public void DrawInstancedPrimitives(PrimitiveType primitiveType, int baseVertex, int minVertexIndex, int numVertices, int startIndex, int primitiveCount, int instanceCount) { - throw new NotImplementedException(); + deviceContext.DrawIndexedInstanced(numVertices, instanceCount, startIndex, baseVertex, 0); } #endregion // DrawInstancedPrimitives @@ -340,7 +340,14 @@ namespace ANX.RenderSystem.Windows.DX11 deviceContext.InputAssembler.SetVertexBuffers(0, nativeVertexBufferBindings); IndexBuffer_DX11 idx10 = new IndexBuffer_DX11(this.deviceContext.Device, indexFormat, indexCount, BufferUsage.None); - idx10.SetData(null, (int[])indexData); + if (indexData.GetType() == typeof(Int16[])) + { + idx10.SetData(null, (short[])indexData); + } + else + { + idx10.SetData(null, (int[])indexData); + } DrawIndexedPrimitives(primitiveType, 0, vertexOffset, numVertices, indexOffset, primitiveCount); } diff --git a/RenderSystems/ANX.RenderSystem.Windows.DX11/Properties/AssemblyInfo.cs b/RenderSystems/ANX.RenderSystem.Windows.DX11/Properties/AssemblyInfo.cs index 9d918e64..0acb206e 100644 --- a/RenderSystems/ANX.RenderSystem.Windows.DX11/Properties/AssemblyInfo.cs +++ b/RenderSystems/ANX.RenderSystem.Windows.DX11/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Buildnummer // Revision // -[assembly: AssemblyVersion("0.7.5.0")] -[assembly: AssemblyFileVersion("0.7.5.0")] +[assembly: AssemblyVersion("0.7.6.0")] +[assembly: AssemblyFileVersion("0.7.6.0")]