/// <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(); } }
/// <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(); } }
/// <summary> /// /// </summary> public AttachmentReference(uint attachment, SharpVk.ImageLayout layout) { this.Attachment = attachment; this.Layout = layout; }
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);
public static extern void vkCmdClearDepthStencilImage(SharpVk.Interop.CommandBuffer commandBuffer, SharpVk.Interop.Image image, SharpVk.ImageLayout imageLayout, SharpVk.ClearDepthStencilValue *depthStencil, uint rangeCount, SharpVk.ImageSubresourceRange *ranges);
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);
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);
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);
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);