Пример #1
0
        static GraphicsBufferView CreateVertexBufferView(GraphicsCopyContext copyContext, GraphicsBuffer vertexBuffer, GraphicsBuffer uploadBuffer, float aspectRatio)
        {
            var uploadBufferView = uploadBuffer.CreateBufferView <IdentityVertex>(3);
            var vertexBufferSpan = uploadBufferView.Map <IdentityVertex>();

            {
                vertexBufferSpan[0] = new IdentityVertex {
                    Color    = Colors.Red,
                    Position = Vector3.Create(0.0f, 0.25f * aspectRatio, 0.0f),
                };

                vertexBufferSpan[1] = new IdentityVertex {
                    Color    = Colors.Lime,
                    Position = Vector3.Create(0.25f, -0.25f * aspectRatio, 0.0f),
                };

                vertexBufferSpan[2] = new IdentityVertex {
                    Color    = Colors.Blue,
                    Position = Vector3.Create(-0.25f, -0.25f * aspectRatio, 0.0f),
                };
            }
            uploadBufferView.UnmapAndWrite();

            var vertexBufferView = vertexBuffer.CreateBufferView <IdentityVertex>(3);

            copyContext.Copy(vertexBufferView, uploadBufferView);
            return(vertexBufferView);
        }
Пример #2
0
        static GraphicsBufferView CreateVertexBufferView(GraphicsCopyContext copyContext, GraphicsBuffer vertexBuffer, GraphicsBuffer uploadBuffer, float aspectRatio)
        {
            var uploadBufferView = uploadBuffer.CreateBufferView <IdentityVertex>(4);
            var vertexBufferSpan = uploadBufferView.Map <IdentityVertex>();

            {
                vertexBufferSpan[0] = new IdentityVertex {                          //
                    Color    = Colors.Red,                                          //   y          in this setup
                    Position = Vector3.Create(-0.25f, 0.25f * aspectRatio, 0.0f),   //   ^     z    the origin o
                };                                                                  //   |   /      is in the middle
                                                                                    //   | /        of the rendered scene
                vertexBufferSpan[1] = new IdentityVertex {                          //   o------>x
                    Color    = Colors.Blue,                                         //
                    Position = Vector3.Create(0.25f, 0.25f * aspectRatio, 0.0f),    //   0 ----- 1
                };                                                                  //   | \     |
                                                                                    //   |   \   |
                vertexBufferSpan[2] = new IdentityVertex {                          //   |     \ |
                    Color    = Colors.Lime,                                         //   3-------2
                    Position = Vector3.Create(0.25f, -0.25f * aspectRatio, 0.0f),   //
                };

                vertexBufferSpan[3] = new IdentityVertex {
                    Color    = Colors.Blue,
                    Position = Vector3.Create(-0.25f, -0.25f * aspectRatio, 0.0f),
                };
            }
            uploadBufferView.UnmapAndWrite();

            var vertexBufferView = vertexBuffer.CreateBufferView <IdentityVertex>(4);

            copyContext.Copy(vertexBufferView, uploadBufferView);
            return(vertexBufferView);
        }