/// <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); }
public GraphicsPipelineBuilder VertexBinding(uint binding, uint stride, VkVertexInputRate rate = VkVertexInputRate.Vertex) { _vertexBindingDescriptions.Add(binding, new VkVertexInputBindingDescription() { Binding = binding, Stride = stride, InputRate = rate }); return(this); }
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); }
public void AddVertexBinding <T> (uint binding, VkVertexInputRate inputRate = VkVertexInputRate.Vertex) { vertexBindings.Add(new VkVertexInputBindingDescription(binding, (uint)Marshal.SizeOf <T> (), inputRate)); }
public void AddVertexBinding(uint binding, uint stride, VkVertexInputRate inputRate = VkVertexInputRate.Vertex) { vertexBindings.Add(new VkVertexInputBindingDescription(binding, stride, inputRate)); }
public VkVertexInputBindingDescription(uint _binding, uint _stride, VkVertexInputRate _inputRate = VkVertexInputRate.Vertex) { binding = _binding; stride = _stride; this._inputRate = (int)_inputRate; }
/// <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; }