/// <summary>
        ///
        /// </summary>
        internal static unsafe SparseImageMemoryBind MarshalFrom(SharpVk.Interop.SparseImageMemoryBind *pointer)
        {
            SparseImageMemoryBind result = default(SparseImageMemoryBind);

            result.Subresource  = pointer->Subresource;
            result.Offset       = pointer->Offset;
            result.Extent       = pointer->Extent;
            result.Memory       = new SharpVk.DeviceMemory(default(SharpVk.Device), pointer->Memory);
            result.MemoryOffset = pointer->MemoryOffset;
            result.Flags        = pointer->Flags;
            return(result);
        }
 /// <summary>
 ///
 /// </summary>
 internal unsafe void MarshalTo(SharpVk.Interop.SparseImageMemoryBind *pointer)
 {
     pointer->Subresource  = this.Subresource;
     pointer->Offset       = this.Offset;
     pointer->Extent       = this.Extent;
     pointer->Memory       = this.Memory?.handle ?? default(SharpVk.Interop.DeviceMemory);
     pointer->MemoryOffset = this.MemoryOffset;
     if (this.Flags != null)
     {
         pointer->Flags = this.Flags.Value;
     }
     else
     {
         pointer->Flags = default(SharpVk.SparseMemoryBindFlags);
     }
 }