예제 #1
0
 /// <summary>
 /// Automatically configure Attribute for that binding.
 /// </summary>
 public void AddVertex <T> (uint binding = 0, VkVertexInputRate inputRate = VkVertexInputRate.Vertex)
 {
     vertexBindings.Add(new VkVertexInputBindingDescription(binding, (uint)Marshal.SizeOf <T> (), inputRate));
     FieldInfo[] fields  = typeof(T).GetFields();
     VkFormat[]  attribs = new VkFormat[fields.Length];
     for (int i = 0; i < fields.Length; i++)
     {
         attribs[i] = fields[i].GetCustomAttribute <VertexAttributeAttribute> ().Format;
     }
     AddVertexAttributes(binding, attribs);
 }
예제 #2
0
 public GraphicsPipelineBuilder VertexBinding(uint binding, uint stride,
                                              VkVertexInputRate rate = VkVertexInputRate.Vertex)
 {
     _vertexBindingDescriptions.Add(binding, new VkVertexInputBindingDescription()
     {
         Binding   = binding,
         Stride    = stride,
         InputRate = rate
     });
     return(this);
 }
예제 #3
0
파일: Initializers.cs 프로젝트: gomson/vk
        public static VkVertexInputBindingDescription vertexInputBindingDescription(
            uint binding,
            uint stride,
            VkVertexInputRate inputRate)
        {
            VkVertexInputBindingDescription vInputBindDescription = new VkVertexInputBindingDescription();

            vInputBindDescription.binding   = binding;
            vInputBindDescription.stride    = stride;
            vInputBindDescription.inputRate = inputRate;
            return(vInputBindDescription);
        }
예제 #4
0
 public void AddVertexBinding <T> (uint binding, VkVertexInputRate inputRate = VkVertexInputRate.Vertex)
 {
     vertexBindings.Add(new VkVertexInputBindingDescription(binding, (uint)Marshal.SizeOf <T> (), inputRate));
 }
예제 #5
0
 public void AddVertexBinding(uint binding, uint stride, VkVertexInputRate inputRate = VkVertexInputRate.Vertex)
 {
     vertexBindings.Add(new VkVertexInputBindingDescription(binding, stride, inputRate));
 }
예제 #6
0
 public VkVertexInputBindingDescription(uint _binding, uint _stride, VkVertexInputRate _inputRate = VkVertexInputRate.Vertex)
 {
     binding         = _binding;
     stride          = _stride;
     this._inputRate = (int)_inputRate;
 }
예제 #7
0
 /// <summary>
 /// VkVertexInputBindingDescription - Structure specifying vertex input binding description.
 /// </summary>
 /// <param name="binding">binding is the binding number that this structure describes.</param>
 /// <param name="stride">stride is the distance in bytes between two consecutive elements
 /// within the buffer.</param>
 /// <param name="inputRate">inputRate is a VkVertexInputRate value specifying whether
 /// vertex attribute addressing is a function of the vertex index or of the
 /// instance index.</param>
 public VkVertexInputBindingDescription(UInt32 binding, UInt32 stride, VkVertexInputRate inputRate)
 {
     this.binding = binding; this.stride = stride; this.inputRate = inputRate;
 }