/// <summary> /// /// </summary> internal unsafe void MarshalTo(SharpVk.Interop.Khronos.PhysicalDeviceExternalBufferInfo *pointer) { pointer->SType = StructureType.PhysicalDeviceExternalBufferInfoKhr; pointer->Next = null; if (this.Flags != null) { pointer->Flags = this.Flags.Value; } else { pointer->Flags = default(SharpVk.BufferCreateFlags); } pointer->Usage = this.Usage; pointer->HandleType = this.HandleType; }
/// <summary> /// /// </summary> public static unsafe SharpVk.Khronos.ExternalBufferProperties GetExternalBufferProperties(this SharpVk.PhysicalDevice extendedHandle, SharpVk.Khronos.PhysicalDeviceExternalBufferInfo externalBufferInfo) { try { SharpVk.Khronos.ExternalBufferProperties result = default(SharpVk.Khronos.ExternalBufferProperties); CommandCache commandCache = default(CommandCache); SharpVk.Interop.Khronos.PhysicalDeviceExternalBufferInfo *marshalledExternalBufferInfo = default(SharpVk.Interop.Khronos.PhysicalDeviceExternalBufferInfo *); SharpVk.Interop.Khronos.ExternalBufferProperties marshalledExternalBufferProperties = default(SharpVk.Interop.Khronos.ExternalBufferProperties); commandCache = extendedHandle.commandCache; marshalledExternalBufferInfo = (SharpVk.Interop.Khronos.PhysicalDeviceExternalBufferInfo *)(Interop.HeapUtil.Allocate <SharpVk.Interop.Khronos.PhysicalDeviceExternalBufferInfo>()); externalBufferInfo.MarshalTo(marshalledExternalBufferInfo); SharpVk.Interop.Khronos.VkPhysicalDeviceGetExternalBufferPropertiesDelegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.Khronos.VkPhysicalDeviceGetExternalBufferPropertiesDelegate>("vkGetPhysicalDeviceExternalBufferPropertiesKHR", "instance"); commandDelegate(extendedHandle.handle, marshalledExternalBufferInfo, &marshalledExternalBufferProperties); result = SharpVk.Khronos.ExternalBufferProperties.MarshalFrom(&marshalledExternalBufferProperties); return(result); } finally { Interop.HeapUtil.FreeAll(); } }