/// <summary> /// /// </summary> internal unsafe void MarshalTo(SharpVk.Interop.PipelineLayoutCreateInfo *pointer) { pointer->SType = StructureType.PipelineLayoutCreateInfo; pointer->Next = null; if (this.Flags != null) { pointer->Flags = this.Flags.Value; } else { pointer->Flags = default(SharpVk.PipelineLayoutCreateFlags); } pointer->SetLayoutCount = (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; } pointer->PushConstantRangeCount = (uint)(Interop.HeapUtil.GetLength(this.PushConstantRanges)); if (this.PushConstantRanges != null) { var fieldPointer = (SharpVk.PushConstantRange *)(Interop.HeapUtil.AllocateAndClear <SharpVk.PushConstantRange>(this.PushConstantRanges.Length).ToPointer()); for (int index = 0; index < (uint)(this.PushConstantRanges.Length); index++) { fieldPointer[index] = this.PushConstantRanges[index]; } pointer->PushConstantRanges = fieldPointer; } else { pointer->PushConstantRanges = null; } }
public static extern SharpVk.Result vkCreatePipelineLayout(SharpVk.Interop.Device device, SharpVk.Interop.PipelineLayoutCreateInfo *createInfo, SharpVk.Interop.AllocationCallbacks *allocator, SharpVk.Interop.PipelineLayout *pipelineLayout);