コード例 #1
0
 /// <summary>
 ///
 /// </summary>
 public unsafe void ClearDepthStencilImage(SharpVk.Image image, SharpVk.ImageLayout imageLayout, SharpVk.ClearDepthStencilValue depthStencil, SharpVk.ImageSubresourceRange[] ranges)
 {
     try
     {
         SharpVk.ClearDepthStencilValue *marshalledDepthStencil = default(SharpVk.ClearDepthStencilValue *);
         SharpVk.ImageSubresourceRange * marshalledRanges       = default(SharpVk.ImageSubresourceRange *);
         marshalledDepthStencil = (SharpVk.ClearDepthStencilValue *)(Interop.HeapUtil.Allocate <SharpVk.ClearDepthStencilValue>());
         *marshalledDepthStencil = depthStencil;
         if (ranges != null)
         {
             var fieldPointer = (SharpVk.ImageSubresourceRange *)(Interop.HeapUtil.AllocateAndClear <SharpVk.ImageSubresourceRange>(ranges.Length).ToPointer());
             for (int index = 0; index < (uint)(ranges.Length); index++)
             {
                 fieldPointer[index] = ranges[index];
             }
             marshalledRanges = fieldPointer;
         }
         else
         {
             marshalledRanges = null;
         }
         Interop.Commands.vkCmdClearDepthStencilImage(this.handle, image?.handle ?? default(SharpVk.Interop.Image), imageLayout, marshalledDepthStencil, (uint)(ranges?.Length ?? 0), marshalledRanges);
     }
     finally
     {
         Interop.HeapUtil.FreeAll();
     }
 }
コード例 #2
0
 public static extern void vkCmdClearDepthStencilImage(SharpVk.Interop.CommandBuffer commandBuffer, SharpVk.Interop.Image image, SharpVk.ImageLayout imageLayout, SharpVk.ClearDepthStencilValue *depthStencil, uint rangeCount, SharpVk.ImageSubresourceRange *ranges);