示例#1
0
 /// <summary>
 ///
 /// </summary>
 public unsafe void ResolveImage(SharpVk.Image sourceImage, SharpVk.ImageLayout sourceImageLayout, SharpVk.Image destinationImage, SharpVk.ImageLayout destinationImageLayout, SharpVk.ImageResolve[] regions)
 {
     try
     {
         SharpVk.ImageResolve *marshalledRegions = default(SharpVk.ImageResolve *);
         if (regions != null)
         {
             var fieldPointer = (SharpVk.ImageResolve *)(Interop.HeapUtil.AllocateAndClear <SharpVk.ImageResolve>(regions.Length).ToPointer());
             for (int index = 0; index < (uint)(regions.Length); index++)
             {
                 fieldPointer[index] = regions[index];
             }
             marshalledRegions = fieldPointer;
         }
         else
         {
             marshalledRegions = null;
         }
         Interop.Commands.vkCmdResolveImage(this.handle, sourceImage?.handle ?? default(SharpVk.Interop.Image), sourceImageLayout, destinationImage?.handle ?? default(SharpVk.Interop.Image), destinationImageLayout, (uint)(regions?.Length ?? 0), marshalledRegions);
     }
     finally
     {
         Interop.HeapUtil.FreeAll();
     }
 }
示例#2
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();
     }
 }
 /// <summary>
 ///
 /// </summary>
 public AttachmentDescription(SharpVk.AttachmentDescriptionFlags flags, SharpVk.Format format, SharpVk.SampleCountFlags samples, SharpVk.AttachmentLoadOp loadOp, SharpVk.AttachmentStoreOp storeOp, SharpVk.AttachmentLoadOp stencilLoadOp, SharpVk.AttachmentStoreOp stencilStoreOp, SharpVk.ImageLayout initialLayout, SharpVk.ImageLayout finalLayout)
 {
     this.Flags          = flags;
     this.Format         = format;
     this.Samples        = samples;
     this.LoadOp         = loadOp;
     this.StoreOp        = storeOp;
     this.StencilLoadOp  = stencilLoadOp;
     this.StencilStoreOp = stencilStoreOp;
     this.InitialLayout  = initialLayout;
     this.FinalLayout    = finalLayout;
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="extendedHandle">
 /// The CommandBuffer handle to extend.
 /// </param>
 /// <param name="imageView">
 /// </param>
 /// <param name="imageLayout">
 /// </param>
 public static unsafe void BindShadingRateImage(this SharpVk.CommandBuffer extendedHandle, SharpVk.ImageView imageView, SharpVk.ImageLayout imageLayout)
 {
     try
     {
         CommandCache commandCache = default(CommandCache);
         commandCache = extendedHandle.commandCache;
         SharpVk.Interop.NVidia.VkCommandBufferBindShadingRateImageDelegate commandDelegate = commandCache.Cache.vkCmdBindShadingRateImageNV;
         commandDelegate(extendedHandle.handle, imageView?.handle ?? default(SharpVk.Interop.ImageView), imageLayout);
     }
     finally
     {
         Interop.HeapUtil.FreeAll();
     }
 }
示例#5
0
 /// <summary>
 ///
 /// </summary>
 public AttachmentReference(uint attachment, SharpVk.ImageLayout layout)
 {
     this.Attachment = attachment;
     this.Layout     = layout;
 }
示例#6
0
 public static extern void vkCmdResolveImage(SharpVk.Interop.CommandBuffer commandBuffer, SharpVk.Interop.Image sourceImage, SharpVk.ImageLayout sourceImageLayout, SharpVk.Interop.Image destinationImage, SharpVk.ImageLayout destinationImageLayout, uint regionCount, SharpVk.ImageResolve *regions);
示例#7
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);
示例#8
0
 public static extern void vkCmdClearColorImage(SharpVk.Interop.CommandBuffer commandBuffer, SharpVk.Interop.Image image, SharpVk.ImageLayout imageLayout, SharpVk.Interop.ClearColorValue *color, uint rangeCount, SharpVk.ImageSubresourceRange *ranges);
示例#9
0
 public static extern void vkCmdCopyImageToBuffer(SharpVk.Interop.CommandBuffer commandBuffer, SharpVk.Interop.Image sourceImage, SharpVk.ImageLayout sourceImageLayout, SharpVk.Interop.Buffer destinationBuffer, uint regionCount, SharpVk.BufferImageCopy *regions);
示例#10
0
 public static extern void vkCmdCopyBufferToImage(SharpVk.Interop.CommandBuffer commandBuffer, SharpVk.Interop.Buffer sourceBuffer, SharpVk.Interop.Image destinationImage, SharpVk.ImageLayout destinationImageLayout, uint regionCount, SharpVk.BufferImageCopy *regions);
示例#11
0
 public static extern void vkCmdBlitImage(SharpVk.Interop.CommandBuffer commandBuffer, SharpVk.Interop.Image sourceImage, SharpVk.ImageLayout sourceImageLayout, SharpVk.Interop.Image destinationImage, SharpVk.ImageLayout destinationImageLayout, uint regionCount, SharpVk.Interop.ImageBlit *regions, SharpVk.Filter filter);