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); }
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); }