public GLDescriptorSetLayout(MgDescriptorSetLayoutCreateInfo pCreateInfo) { var bindings = new List <GLUniformBinding>(); if (pCreateInfo.Bindings != null) { foreach (var binding in pCreateInfo.Bindings) { var uniform = new GLUniformBinding { Binding = binding.Binding, DescriptorType = binding.DescriptorType, DescriptorCount = binding.DescriptorCount, StageFlags = binding.StageFlags, }; bindings.Add(uniform); } } Uniforms = bindings.ToArray(); }
public GLNextPipelineLayout(MgPipelineLayoutCreateInfo pCreateInfo) { if (pCreateInfo.SetLayouts.Length == 1) { var layout = (IGLDescriptorSetLayout)pCreateInfo.SetLayouts[0]; Bindings = layout.Uniforms; } else { Bindings = new GLUniformBinding[0]; } NoOfBindingPoints = 0U; NoOfStorageBuffers = 0U; NoOfExpectedDynamicOffsets = 0U; Ranges = new SortedDictionary <uint, GLBindingPointOffsetInfo>(); OffsetDestinations = ExtractBindingsInformation(); SetupOffsetRangesByBindings(); }