internal unsafe void MarshalTo(SharpVk.Interop.RenderPassCreateInfo *pointer) { pointer->SType = StructureType.RenderPassCreateInfo; pointer->Next = null; if (this.Flags != null) { pointer->Flags = this.Flags.Value; } else { pointer->Flags = default(SharpVk.RenderPassCreateFlags); } pointer->AttachmentCount = (uint)(this.Attachments?.Length ?? 0); if (this.Attachments != null) { var fieldPointer = (SharpVk.AttachmentDescription *)(Interop.HeapUtil.AllocateAndClear <SharpVk.AttachmentDescription>(this.Attachments.Length).ToPointer()); for (int index = 0; index < (uint)(this.Attachments.Length); index++) { fieldPointer[index] = this.Attachments[index]; } pointer->Attachments = fieldPointer; } else { pointer->Attachments = null; } pointer->SubpassCount = (uint)(this.Subpasses?.Length ?? 0); if (this.Subpasses != null) { var fieldPointer = (SharpVk.Interop.SubpassDescription *)(Interop.HeapUtil.AllocateAndClear <SharpVk.Interop.SubpassDescription>(this.Subpasses.Length).ToPointer()); for (int index = 0; index < (uint)(this.Subpasses.Length); index++) { this.Subpasses[index].MarshalTo(&fieldPointer[index]); } pointer->Subpasses = fieldPointer; } else { pointer->Subpasses = null; } pointer->DependencyCount = (uint)(this.Dependencies?.Length ?? 0); if (this.Dependencies != null) { var fieldPointer = (SharpVk.SubpassDependency *)(Interop.HeapUtil.AllocateAndClear <SharpVk.SubpassDependency>(this.Dependencies.Length).ToPointer()); for (int index = 0; index < (uint)(this.Dependencies.Length); index++) { fieldPointer[index] = this.Dependencies[index]; } pointer->Dependencies = fieldPointer; } else { pointer->Dependencies = null; } }
public static extern SharpVk.Result vkCreateRenderPass(SharpVk.Interop.Device device, SharpVk.Interop.RenderPassCreateInfo *createInfo, SharpVk.Interop.AllocationCallbacks *allocator, SharpVk.Interop.RenderPass *renderPass);