/// <summary> /// /// </summary> public unsafe void ClearAttachments(SharpVk.ClearAttachment[] attachments, SharpVk.ClearRect[] rects) { try { SharpVk.ClearAttachment *marshalledAttachments = default(SharpVk.ClearAttachment *); SharpVk.ClearRect * marshalledRects = default(SharpVk.ClearRect *); if (attachments != null) { var fieldPointer = (SharpVk.ClearAttachment *)(Interop.HeapUtil.AllocateAndClear <SharpVk.ClearAttachment>(attachments.Length).ToPointer()); for (int index = 0; index < (uint)(attachments.Length); index++) { fieldPointer[index] = attachments[index]; } marshalledAttachments = fieldPointer; } else { marshalledAttachments = null; } if (rects != null) { var fieldPointer = (SharpVk.ClearRect *)(Interop.HeapUtil.AllocateAndClear <SharpVk.ClearRect>(rects.Length).ToPointer()); for (int index = 0; index < (uint)(rects.Length); index++) { fieldPointer[index] = rects[index]; } marshalledRects = fieldPointer; } else { marshalledRects = null; } Interop.Commands.vkCmdClearAttachments(this.handle, (uint)(attachments?.Length ?? 0), marshalledAttachments, (uint)(rects?.Length ?? 0), marshalledRects); } finally { Interop.HeapUtil.FreeAll(); } }
public static extern void vkCmdClearAttachments(SharpVk.Interop.CommandBuffer commandBuffer, uint attachmentCount, SharpVk.ClearAttachment *attachments, uint rectCount, SharpVk.ClearRect *rects);