/// <summary> /// /// </summary> public static unsafe SharpVk.Khronos.ExternalSemaphoreProperties GetExternalSemaphoreProperties(this SharpVk.PhysicalDevice extendedHandle, SharpVk.Khronos.PhysicalDeviceExternalSemaphoreInfo externalSemaphoreInfo) { try { SharpVk.Khronos.ExternalSemaphoreProperties result = default(SharpVk.Khronos.ExternalSemaphoreProperties); CommandCache commandCache = default(CommandCache); SharpVk.Interop.Khronos.PhysicalDeviceExternalSemaphoreInfo *marshalledExternalSemaphoreInfo = default(SharpVk.Interop.Khronos.PhysicalDeviceExternalSemaphoreInfo *); SharpVk.Interop.Khronos.ExternalSemaphoreProperties marshalledExternalSemaphoreProperties = default(SharpVk.Interop.Khronos.ExternalSemaphoreProperties); commandCache = extendedHandle.commandCache; marshalledExternalSemaphoreInfo = (SharpVk.Interop.Khronos.PhysicalDeviceExternalSemaphoreInfo *)(Interop.HeapUtil.Allocate <SharpVk.Interop.Khronos.PhysicalDeviceExternalSemaphoreInfo>()); externalSemaphoreInfo.MarshalTo(marshalledExternalSemaphoreInfo); SharpVk.Interop.Khronos.VkPhysicalDeviceGetExternalSemaphorePropertiesDelegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.Khronos.VkPhysicalDeviceGetExternalSemaphorePropertiesDelegate>("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR", "instance"); commandDelegate(extendedHandle.handle, marshalledExternalSemaphoreInfo, &marshalledExternalSemaphoreProperties); result = SharpVk.Khronos.ExternalSemaphoreProperties.MarshalFrom(&marshalledExternalSemaphoreProperties); return(result); } finally { Interop.HeapUtil.FreeAll(); } }
/// <summary> /// /// </summary> internal unsafe void MarshalTo(SharpVk.Interop.Khronos.PhysicalDeviceExternalSemaphoreInfo *pointer) { pointer->SType = StructureType.PhysicalDeviceExternalSemaphoreInfoKhr; pointer->Next = null; pointer->HandleType = this.HandleType; }