public void DrawLines(ReadOnlySpan <Line2d> lines) { _device.SetMaterial(lineMaterial); _device.SetVertexShaderConstant(0, StandardSlotSemantic.UiProjMatrix); bufferBinding.Resource.Bind(); // Render in batches of 4 foreach (ref readonly var line in lines) { // Generate the vertex data using var locked = _device.Map <Vertex2d>(vertexBuffer); var data = locked.Data; data[0].pos.X = line.from.X; data[0].pos.Y = line.from.Y; data[0].pos.Z = 0.5f; data[0].pos.W = 1; data[0].diffuse = line.diffuse; data[1].pos.X = line.to.X; data[1].pos.Y = line.to.Y; data[1].pos.Z = 0.5f; data[1].pos.W = 1; data[1].diffuse = line.diffuse; locked.Dispose(); _device.Draw(PrimitiveType.LineList, 2); } }
public void DrawLine(IGameViewport viewport, Vector3 from, Vector3 to, PackedLinearColorA color) { Span <Vector3> positions = stackalloc Vector3[] { from, to }; _lineVertexBuffer.Resource.Update <Vector3>(positions); _lineBinding.Resource.Bind(); BindLineMaterial(viewport, color); _device.Draw(PrimitiveType.LineList, 2); }
public void DrawScene(GameTime gameTime) { RenderingDevice.GraphicsDevice.DepthStencilState = DepthStencilState.Default; RenderingDevice.GraphicsDevice.RasterizerState = RasterizerState.CullNone; RenderingDevice.GraphicsDevice.BlendState = BlendState.Opaque; RenderingDevice.Draw(); actorList.Sort(new Comparison <Actor>(sortActorList)); actorList.Reverse(); foreach (Actor a in actorList) { a.Draw(); // draws billboards and anything else } august.Draw(); Player.Draw(); SubtitleBox.Draw(); }