/// <summary> /// Trim a command pool. /// </summary> /// <param name="extendedHandle"> /// The CommandPool handle to extend. /// </param> public static unsafe void Trim(this SharpVk.CommandPool extendedHandle, SharpVk.Khronos.CommandPoolTrimFlags?flags = default(SharpVk.Khronos.CommandPoolTrimFlags?)) { try { CommandCache commandCache = default(CommandCache); SharpVk.Khronos.CommandPoolTrimFlags marshalledFlags = default(SharpVk.Khronos.CommandPoolTrimFlags); commandCache = extendedHandle.commandCache; if (flags != null) { marshalledFlags = flags.Value; } else { marshalledFlags = default(SharpVk.Khronos.CommandPoolTrimFlags); } SharpVk.Interop.Khronos.VkCommandPoolTrimDelegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.Khronos.VkCommandPoolTrimDelegate>("vkTrimCommandPoolKHR", "device"); commandDelegate(extendedHandle.parent.handle, extendedHandle.handle, marshalledFlags); } finally { Interop.HeapUtil.FreeAll(); } }
internal CommandBuffer(SharpVk.CommandPool parent, SharpVk.Interop.CommandBuffer handle) { this.handle = handle; this.parent = parent; this.commandCache = parent.commandCache; }