private void DrawPositionNormalColorIndexedTriangleBuffer(Device device, VertexAndIndexDeviceBuffer deviceBuffers, Matrix worldViewProj) { int layoutNumber = 4; device.InputAssembler.InputLayout = _renderLayouts[layoutNumber].VertexLayout; device.InputAssembler.PrimitiveTopology = SharpDX.Direct3D.PrimitiveTopology.TriangleList; if (null != deviceBuffers.ClipPlanes) { for (int i = 0; i < Math.Min(6, deviceBuffers.ClipPlanes.Length); ++i) { _evClipPlanes[i].Set(deviceBuffers.ClipPlanes[i]); } } SetShaderMaterialVariables(deviceBuffers.Material); device.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(deviceBuffers.VertexBuffer, 48, 0)); device.InputAssembler.SetIndexBuffer(deviceBuffers.IndexBuffer, Format.R32_UInt, 0); _renderLayouts[layoutNumber].Pass.Apply(); device.DrawIndexed(deviceBuffers.IndexCount, 0, 0); if (null != deviceBuffers.ClipPlanes) { var emptyPlane = new Plane(); for (int i = 0; i < Math.Min(6, deviceBuffers.ClipPlanes.Length); ++i) { _evClipPlanes[i].Set(emptyPlane); } } }
private void DrawPositionNormalIndexedTriangleBuffer(Device device, VertexAndIndexDeviceBuffer deviceBuffers, Matrix worldViewProj) { int layoutNumber = 3; device.InputAssembler.InputLayout = _renderLayouts[layoutNumber].VertexLayout; device.InputAssembler.PrimitiveTopology = SharpDX.Direct3D.PrimitiveTopology.TriangleList; SetShaderMaterialVariables(deviceBuffers.Material); device.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(deviceBuffers.VertexBuffer, 32, 0)); device.InputAssembler.SetIndexBuffer(deviceBuffers.IndexBuffer, Format.R32_UInt, 0); _renderLayouts[layoutNumber].Pass.Apply(); device.DrawIndexed(deviceBuffers.IndexCount, 0, 0); }
private void DrawPositionNormalUIndexedTriangleBuffer(Device device, VertexAndIndexDeviceBuffer deviceBuffers, Matrix worldViewProj) { int layoutNumber = 6; device.InputAssembler.InputLayout = _renderLayouts[layoutNumber].VertexLayout; device.InputAssembler.PrimitiveTopology = SharpDX.Direct3D.PrimitiveTopology.TriangleList; // set clip planes if (null != deviceBuffers.ClipPlanes) { for (int i = 0; i < Math.Min(6, deviceBuffers.ClipPlanes.Length); ++i) { _evClipPlanes[i].Set(deviceBuffers.ClipPlanes[i]); } } // set UColor texture var stream = _textureFor1DColorProvider.Map(0, MapMode.WriteDiscard, SharpDX.Direct3D10.MapFlags.None); //stream.Seek(0, System.IO.SeekOrigin.Begin); stream.Write(deviceBuffers.UColors, 0, deviceBuffers.UColors.Length); //stream.Close(); _textureFor1DColorProvider.Unmap(0); SetShaderMaterialVariables(deviceBuffers.Material); // note: the material's color must be set to the ColorProviders InvalidColor! // draw now device.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(deviceBuffers.VertexBuffer, 32, 0)); device.InputAssembler.SetIndexBuffer(deviceBuffers.IndexBuffer, Format.R32_UInt, 0); _renderLayouts[layoutNumber].Pass.Apply(); device.DrawIndexed(deviceBuffers.IndexCount, 0, 0); // clear clip planes afterwards if (null != deviceBuffers.ClipPlanes) { var emptyPlane = new Plane(); for (int i = 0; i < Math.Min(6, deviceBuffers.ClipPlanes.Length); ++i) { _evClipPlanes[i].Set(emptyPlane); } } }
private void DrawPositionNormalIndexedTriangleBuffer(Device device, VertexAndIndexDeviceBuffer deviceBuffers, Matrix worldViewProj) { int layoutNumber = 3; device.InputAssembler.InputLayout = _renderLayouts[layoutNumber].VertexLayout; device.InputAssembler.PrimitiveTopology = SharpDX.Direct3D.PrimitiveTopology.TriangleList; SetShaderMaterialVariables(deviceBuffers.Material); device.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(deviceBuffers.VertexBuffer, 32, 0)); device.InputAssembler.SetIndexBuffer(deviceBuffers.IndexBuffer, Format.R32_UInt, 0); _renderLayouts[layoutNumber].pass.Apply(); device.DrawIndexed(deviceBuffers.IndexCount, 0, 0); }
private void DrawPositionNormalUIndexedTriangleBuffer(Device device, VertexAndIndexDeviceBuffer deviceBuffers, Matrix worldViewProj) { int layoutNumber = 6; device.InputAssembler.InputLayout = _renderLayouts[layoutNumber].VertexLayout; device.InputAssembler.PrimitiveTopology = SharpDX.Direct3D.PrimitiveTopology.TriangleList; // set clip planes if (null != deviceBuffers.ClipPlanes) { for (int i = 0; i < Math.Min(6, deviceBuffers.ClipPlanes.Length); ++i) { _evClipPlanes[i].Set(deviceBuffers.ClipPlanes[i]); } } // set UColor texture var stream = _textureFor1DColorProvider.Map(0, MapMode.WriteDiscard, SharpDX.Direct3D10.MapFlags.None); //stream.Seek(0, System.IO.SeekOrigin.Begin); stream.Write(deviceBuffers.UColors, 0, deviceBuffers.UColors.Length); //stream.Close(); _textureFor1DColorProvider.Unmap(0); SetShaderMaterialVariables(deviceBuffers.Material); // note: the material's color must be set to the ColorProviders InvalidColor! // draw now device.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(deviceBuffers.VertexBuffer, 32, 0)); device.InputAssembler.SetIndexBuffer(deviceBuffers.IndexBuffer, Format.R32_UInt, 0); _renderLayouts[layoutNumber].pass.Apply(); device.DrawIndexed(deviceBuffers.IndexCount, 0, 0); // clear clip planes afterwards if (null != deviceBuffers.ClipPlanes) { var emptyPlane = new Plane(); for (int i = 0; i < Math.Min(6, deviceBuffers.ClipPlanes.Length); ++i) { _evClipPlanes[i].Set(emptyPlane); } } }
private void DrawPositionNormalColorIndexedTriangleBuffer(Device device, VertexAndIndexDeviceBuffer deviceBuffers, Matrix worldViewProj) { int layoutNumber = 4; device.InputAssembler.InputLayout = _renderLayouts[layoutNumber].VertexLayout; device.InputAssembler.PrimitiveTopology = SharpDX.Direct3D.PrimitiveTopology.TriangleList; if (null != deviceBuffers.ClipPlanes) { for (int i = 0; i < Math.Min(6, deviceBuffers.ClipPlanes.Length); ++i) { _evClipPlanes[i].Set(deviceBuffers.ClipPlanes[i]); } } SetShaderMaterialVariables(deviceBuffers.Material); device.InputAssembler.SetVertexBuffers(0, new VertexBufferBinding(deviceBuffers.VertexBuffer, 48, 0)); device.InputAssembler.SetIndexBuffer(deviceBuffers.IndexBuffer, Format.R32_UInt, 0); _renderLayouts[layoutNumber].pass.Apply(); device.DrawIndexed(deviceBuffers.IndexCount, 0, 0); if (null != deviceBuffers.ClipPlanes) { var emptyPlane = new Plane(); for (int i = 0; i < Math.Min(6, deviceBuffers.ClipPlanes.Length); ++i) { _evClipPlanes[i].Set(emptyPlane); } } }