Esempio n. 1
0
 /// <summary>
 ///
 /// </summary>
 public unsafe void BlitImage(SharpVk.Image sourceImage, SharpVk.ImageLayout sourceImageLayout, SharpVk.Image destinationImage, SharpVk.ImageLayout destinationImageLayout, SharpVk.ImageBlit[] regions, SharpVk.Filter filter)
 {
     try
     {
         SharpVk.Interop.ImageBlit *marshalledRegions = default(SharpVk.Interop.ImageBlit *);
         if (regions != null)
         {
             var fieldPointer = (SharpVk.Interop.ImageBlit *)(Interop.HeapUtil.AllocateAndClear <SharpVk.Interop.ImageBlit>(regions.Length).ToPointer());
             for (int index = 0; index < (uint)(regions.Length); index++)
             {
                 regions[index].MarshalTo(&fieldPointer[index]);
             }
             marshalledRegions = fieldPointer;
         }
         else
         {
             marshalledRegions = null;
         }
         Interop.Commands.vkCmdBlitImage(this.handle, sourceImage?.handle ?? default(SharpVk.Interop.Image), sourceImageLayout, destinationImage?.handle ?? default(SharpVk.Interop.Image), destinationImageLayout, (uint)(regions?.Length ?? 0), marshalledRegions, filter);
     }
     finally
     {
         Interop.HeapUtil.FreeAll();
     }
 }
Esempio n. 2
0
 /// <summary>
 ///
 /// </summary>
 internal unsafe void MarshalTo(SharpVk.Interop.ImageBlit *pointer)
 {
     pointer->SourceSubresource      = this.SourceSubresource;
     pointer->SourceOffsets_0        = this.SourceOffsets.Item1;
     pointer->SourceOffsets_1        = this.SourceOffsets.Item2;
     pointer->DestinationSubresource = this.DestinationSubresource;
     pointer->DestinationOffsets_0   = this.DestinationOffsets.Item1;
     pointer->DestinationOffsets_1   = this.DestinationOffsets.Item2;
 }
Esempio n. 3
0
        /// <summary>
        ///
        /// </summary>
        internal static unsafe ImageBlit MarshalFrom(SharpVk.Interop.ImageBlit *pointer)
        {
            ImageBlit result = default(ImageBlit);

            result.SourceSubresource      = pointer->SourceSubresource;
            result.SourceOffsets          = (pointer->SourceOffsets_0, pointer->SourceOffsets_1);
            result.DestinationSubresource = pointer->DestinationSubresource;
            result.DestinationOffsets     = (pointer->DestinationOffsets_0, pointer->DestinationOffsets_1);
            return(result);
        }
Esempio n. 4
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);
Esempio n. 5
0
 /// <summary>
 ///
 /// </summary>
 internal unsafe void MarshalTo(SharpVk.Interop.ImageBlit *pointer)
 {
     pointer->SourceSubresource      = this.SourceSubresource;
     pointer->DestinationSubresource = this.DestinationSubresource;
 }