Beispiel #1
0
 /// <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();
     }
 }
Beispiel #2
0
 public static extern void vkCmdClearAttachments(SharpVk.Interop.CommandBuffer commandBuffer, uint attachmentCount, SharpVk.ClearAttachment *attachments, uint rectCount, SharpVk.ClearRect *rects);