/// <summary> /// Draw non-indexed, instanced primitives. /// </summary> /// <param name="primitiveType">Type of the primitive to draw.</param> /// <param name="vertexCountPerInstance">Number of vertices to draw.</param> /// <param name="instanceCount">Number of instances to draw.</param> /// <param name="startVertexLocation">Index of the first vertex.</param> /// <param name="startInstanceLocation">A value added to each index before reading per-instance data from a vertex buffer.</param> public void DrawInstanced(PrimitiveType primitiveType, int vertexCountPerInstance, int instanceCount, int startVertexLocation = 0, int startInstanceLocation = 0) { PrepareDraw(primitiveType); NativeDeviceContext.DrawInstanced(vertexCountPerInstance, instanceCount, startVertexLocation, startInstanceLocation); FrameDrawCalls++; FrameTriangleCount += (uint)(vertexCountPerInstance * instanceCount); }
/// <summary> /// Draw non-indexed, instanced primitives. /// </summary> /// <param name="primitiveType">Type of the primitive to draw.</param> /// <param name="vertexCountPerInstance">Number of vertices to draw.</param> /// <param name="instanceCount">Number of instances to draw.</param> /// <param name="startVertexLocation">Index of the first vertex.</param> /// <param name="startInstanceLocation">A value added to each index before reading per-instance data from a vertex buffer.</param> public void DrawInstanced(PrimitiveType primitiveType, int vertexCountPerInstance, int instanceCount, int startVertexLocation = 0, int startInstanceLocation = 0) { PrepareDraw(primitiveType); NativeDeviceContext.DrawInstanced(vertexCountPerInstance, instanceCount, startVertexLocation, startInstanceLocation); }