Exemplo n.º 1
0
    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);
        }
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
        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();
        }