Ejemplo n.º 1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="extendedHandle">
 /// The Queue handle to extend.
 /// </param>
 public static unsafe SharpVk.NVidia.CheckpointData[] GetCheckpointData(this SharpVk.Queue extendedHandle)
 {
     try
     {
         SharpVk.NVidia.CheckpointData[] result     = default(SharpVk.NVidia.CheckpointData[]);
         uint         marshalledCheckpointDataCount = default(uint);
         CommandCache commandCache = default(CommandCache);
         SharpVk.Interop.NVidia.CheckpointData *marshalledCheckpointData = default(SharpVk.Interop.NVidia.CheckpointData *);
         commandCache = extendedHandle.commandCache;
         SharpVk.Interop.NVidia.VkQueueGetCheckpointDataDelegate commandDelegate = commandCache.Cache.vkGetQueueCheckpointDataNV;
         commandDelegate(extendedHandle.handle, &marshalledCheckpointDataCount, marshalledCheckpointData);
         marshalledCheckpointData = (SharpVk.Interop.NVidia.CheckpointData *)(Interop.HeapUtil.Allocate <SharpVk.Interop.NVidia.CheckpointData>((uint)(marshalledCheckpointDataCount)));
         commandDelegate(extendedHandle.handle, &marshalledCheckpointDataCount, marshalledCheckpointData);
         if (marshalledCheckpointData != null)
         {
             var fieldPointer = new SharpVk.NVidia.CheckpointData[(uint)(marshalledCheckpointDataCount)];
             for (int index = 0; index < (uint)(marshalledCheckpointDataCount); index++)
             {
                 fieldPointer[index] = SharpVk.NVidia.CheckpointData.MarshalFrom(&marshalledCheckpointData[index]);
             }
             result = fieldPointer;
         }
         else
         {
             result = null;
         }
         return(result);
     }
     finally
     {
         Interop.HeapUtil.FreeAll();
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        internal static unsafe CheckpointData MarshalFrom(SharpVk.Interop.NVidia.CheckpointData *pointer)
        {
            CheckpointData result = default(CheckpointData);

            result.Stage            = pointer->Stage;
            result.CheckpointMarker = new IntPtr(pointer->CheckpointMarker);
            return(result);
        }