public static VkRenderPassCreateInfo.Raw MarshalDirect(this VkRenderPassCreateInfo s, ref byte *unmanaged) { if (s == null) { throw new InvalidOperationException("Trying to directly marshal a null."); } var pNext = s.Next.MarshalIndirect(ref unmanaged); var pAttachments = s.Attachments.MarshalDirect(ref unmanaged); var pSubpasses = s.Subpasses.MarshalDirect(ref unmanaged); var pDependencies = s.Dependencies.MarshalDirect(ref unmanaged); VkRenderPassCreateInfo.Raw result; result.sType = VkStructureType.RenderPassCreateInfo; result.pNext = pNext; result.flags = s.Flags; result.attachmentCount = s.Attachments?.Count ?? 0; result.pAttachments = pAttachments; result.subpassCount = s.Subpasses?.Count ?? 0; result.pSubpasses = pSubpasses; result.dependencyCount = s.Dependencies?.Count ?? 0; result.pDependencies = pDependencies; return(result); }
public static int SizeOfMarshalIndirect(this VkRenderPassCreateInfo s) => s == null ? 0 : s.SizeOfMarshalDirect() + VkRenderPassCreateInfo.Raw.SizeInBytes;