/// <summary> /// /// </summary> /// <param name="pointer"> /// </param> internal unsafe void MarshalTo(SharpVk.Interop.DescriptorSetAllocateInfo *pointer) { pointer->SType = StructureType.DescriptorSetAllocateInfo; pointer->Next = null; pointer->DescriptorPool = this.DescriptorPool?.handle ?? default(SharpVk.Interop.DescriptorPool); pointer->DescriptorSetCount = (uint)(Interop.HeapUtil.GetLength(this.SetLayouts)); if (this.SetLayouts != null) { var fieldPointer = (SharpVk.Interop.DescriptorSetLayout *)(Interop.HeapUtil.AllocateAndClear <SharpVk.Interop.DescriptorSetLayout>(this.SetLayouts.Length).ToPointer()); for (int index = 0; index < (uint)(this.SetLayouts.Length); index++) { fieldPointer[index] = this.SetLayouts[index]?.handle ?? default(SharpVk.Interop.DescriptorSetLayout); } pointer->SetLayouts = fieldPointer; } else { pointer->SetLayouts = null; } }
public static extern SharpVk.Result vkAllocateDescriptorSets(SharpVk.Interop.Device device, SharpVk.Interop.DescriptorSetAllocateInfo *allocateInfo, SharpVk.Interop.DescriptorSet *descriptorSets);