/// <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(); } }
/// <summary> /// /// </summary> public static unsafe SharpVk.Khronos.PhysicalDeviceMemoryProperties2 GetMemoryProperties2(this SharpVk.PhysicalDevice extendedHandle) { try { SharpVk.Khronos.PhysicalDeviceMemoryProperties2 result = default(SharpVk.Khronos.PhysicalDeviceMemoryProperties2); CommandCache commandCache = default(CommandCache); SharpVk.Interop.Khronos.PhysicalDeviceMemoryProperties2 marshalledMemoryProperties = default(SharpVk.Interop.Khronos.PhysicalDeviceMemoryProperties2); commandCache = extendedHandle.commandCache; SharpVk.Interop.Khronos.VkPhysicalDeviceGetMemoryProperties2Delegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.Khronos.VkPhysicalDeviceGetMemoryProperties2Delegate>("vkGetPhysicalDeviceMemoryProperties2KHR", "instance"); commandDelegate(extendedHandle.handle, &marshalledMemoryProperties); result = SharpVk.Khronos.PhysicalDeviceMemoryProperties2.MarshalFrom(&marshalledMemoryProperties); return(result); } finally { Interop.HeapUtil.FreeAll(); } }
/// <summary> /// /// </summary> public static unsafe SharpVk.Khronos.SparseImageFormatProperties2[] GetSparseImageFormatProperties2(this SharpVk.PhysicalDevice extendedHandle, SharpVk.Khronos.PhysicalDeviceSparseImageFormatInfo2 formatInfo) { try { SharpVk.Khronos.SparseImageFormatProperties2[] result = default(SharpVk.Khronos.SparseImageFormatProperties2[]); uint propertyCount = default(uint); CommandCache commandCache = default(CommandCache); SharpVk.Interop.Khronos.PhysicalDeviceSparseImageFormatInfo2 *marshalledFormatInfo = default(SharpVk.Interop.Khronos.PhysicalDeviceSparseImageFormatInfo2 *); SharpVk.Interop.Khronos.SparseImageFormatProperties2 * marshalledProperties = default(SharpVk.Interop.Khronos.SparseImageFormatProperties2 *); commandCache = extendedHandle.commandCache; marshalledFormatInfo = (SharpVk.Interop.Khronos.PhysicalDeviceSparseImageFormatInfo2 *)(Interop.HeapUtil.Allocate <SharpVk.Interop.Khronos.PhysicalDeviceSparseImageFormatInfo2>()); formatInfo.MarshalTo(marshalledFormatInfo); SharpVk.Interop.Khronos.VkPhysicalDeviceGetSparseImageFormatProperties2Delegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.Khronos.VkPhysicalDeviceGetSparseImageFormatProperties2Delegate>("vkGetPhysicalDeviceSparseImageFormatProperties2KHR", "instance"); commandDelegate(extendedHandle.handle, marshalledFormatInfo, &propertyCount, marshalledProperties); marshalledProperties = (SharpVk.Interop.Khronos.SparseImageFormatProperties2 *)(Interop.HeapUtil.Allocate <SharpVk.Interop.Khronos.SparseImageFormatProperties2>((uint)(propertyCount))); commandDelegate(extendedHandle.handle, marshalledFormatInfo, &propertyCount, marshalledProperties); if (marshalledProperties != null) { var fieldPointer = new SharpVk.Khronos.SparseImageFormatProperties2[(uint)(propertyCount)]; for (int index = 0; index < (uint)(propertyCount); index++) { fieldPointer[index] = SharpVk.Khronos.SparseImageFormatProperties2.MarshalFrom(&marshalledProperties[index]); } result = fieldPointer; } else { result = null; } return(result); } finally { Interop.HeapUtil.FreeAll(); } }
/// <summary> /// /// </summary> public static unsafe SharpVk.Khronos.DisplayProperties[] GetDisplayProperties(this SharpVk.PhysicalDevice extendedHandle) { try { SharpVk.Khronos.DisplayProperties[] result = default(SharpVk.Khronos.DisplayProperties[]); uint propertyCount = default(uint); CommandCache commandCache = default(CommandCache); SharpVk.Interop.Khronos.DisplayProperties *marshalledProperties = default(SharpVk.Interop.Khronos.DisplayProperties *); commandCache = extendedHandle.commandCache; SharpVk.Interop.Khronos.VkPhysicalDeviceGetDisplayPropertiesDelegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.Khronos.VkPhysicalDeviceGetDisplayPropertiesDelegate>("vkGetPhysicalDeviceDisplayPropertiesKHR", "instance"); Result methodResult = commandDelegate(extendedHandle.handle, &propertyCount, marshalledProperties); if (SharpVkException.IsError(methodResult)) { throw SharpVkException.Create(methodResult); } marshalledProperties = (SharpVk.Interop.Khronos.DisplayProperties *)(Interop.HeapUtil.Allocate <SharpVk.Interop.Khronos.DisplayProperties>((uint)(propertyCount))); commandDelegate(extendedHandle.handle, &propertyCount, marshalledProperties); if (marshalledProperties != null) { var fieldPointer = new SharpVk.Khronos.DisplayProperties[(uint)(propertyCount)]; for (int index = 0; index < (uint)(propertyCount); index++) { fieldPointer[index] = SharpVk.Khronos.DisplayProperties.MarshalFrom(&marshalledProperties[index]); } result = fieldPointer; } else { result = null; } return(result); } finally { Interop.HeapUtil.FreeAll(); } }
/// <summary> /// /// </summary> public static unsafe SharpVk.Khronos.ImageFormatProperties2 GetImageFormatProperties2(this SharpVk.PhysicalDevice extendedHandle, SharpVk.Khronos.PhysicalDeviceImageFormatInfo2 imageFormatInfo) { try { SharpVk.Khronos.ImageFormatProperties2 result = default(SharpVk.Khronos.ImageFormatProperties2); CommandCache commandCache = default(CommandCache); SharpVk.Interop.Khronos.PhysicalDeviceImageFormatInfo2 *marshalledImageFormatInfo = default(SharpVk.Interop.Khronos.PhysicalDeviceImageFormatInfo2 *); SharpVk.Interop.Khronos.ImageFormatProperties2 marshalledImageFormatProperties = default(SharpVk.Interop.Khronos.ImageFormatProperties2); commandCache = extendedHandle.commandCache; marshalledImageFormatInfo = (SharpVk.Interop.Khronos.PhysicalDeviceImageFormatInfo2 *)(Interop.HeapUtil.Allocate <SharpVk.Interop.Khronos.PhysicalDeviceImageFormatInfo2>()); imageFormatInfo.MarshalTo(marshalledImageFormatInfo); SharpVk.Interop.Khronos.VkPhysicalDeviceGetImageFormatProperties2Delegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.Khronos.VkPhysicalDeviceGetImageFormatProperties2Delegate>("vkGetPhysicalDeviceImageFormatProperties2KHR", "instance"); Result methodResult = commandDelegate(extendedHandle.handle, marshalledImageFormatInfo, &marshalledImageFormatProperties); if (SharpVkException.IsError(methodResult)) { throw SharpVkException.Create(methodResult); } result = SharpVk.Khronos.ImageFormatProperties2.MarshalFrom(&marshalledImageFormatProperties); return(result); } finally { Interop.HeapUtil.FreeAll(); } }
/// <summary> /// /// </summary> public static unsafe SharpVk.Khronos.Display[] GetDisplayPlaneSupportedDisplays(this SharpVk.PhysicalDevice extendedHandle, uint planeIndex) { try { SharpVk.Khronos.Display[] result = default(SharpVk.Khronos.Display[]); uint displayCount = default(uint); CommandCache commandCache = default(CommandCache); SharpVk.Interop.Khronos.Display *marshalledDisplays = default(SharpVk.Interop.Khronos.Display *); commandCache = extendedHandle.commandCache; SharpVk.Interop.Khronos.VkPhysicalDeviceGetDisplayPlaneSupportedDisplaysDelegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.Khronos.VkPhysicalDeviceGetDisplayPlaneSupportedDisplaysDelegate>("vkGetDisplayPlaneSupportedDisplaysKHR", "instance"); Result methodResult = commandDelegate(extendedHandle.handle, planeIndex, &displayCount, marshalledDisplays); if (SharpVkException.IsError(methodResult)) { throw SharpVkException.Create(methodResult); } marshalledDisplays = (SharpVk.Interop.Khronos.Display *)(Interop.HeapUtil.Allocate <SharpVk.Interop.Khronos.Display>((uint)(displayCount))); commandDelegate(extendedHandle.handle, planeIndex, &displayCount, marshalledDisplays); if (marshalledDisplays != null) { var fieldPointer = new SharpVk.Khronos.Display[(uint)(displayCount)]; for (int index = 0; index < (uint)(displayCount); index++) { fieldPointer[index] = new SharpVk.Khronos.Display(marshalledDisplays[index]); } result = fieldPointer; } else { result = null; } return(result); } finally { Interop.HeapUtil.FreeAll(); } }
/// <summary> /// /// </summary> public static unsafe SharpVk.Khronos.SurfaceCapabilities GetSurfaceCapabilities(this SharpVk.PhysicalDevice extendedHandle, SharpVk.Khronos.Surface surface) { try { SharpVk.Khronos.SurfaceCapabilities result = default(SharpVk.Khronos.SurfaceCapabilities); CommandCache commandCache = default(CommandCache); SharpVk.Khronos.SurfaceCapabilities marshalledSurfaceCapabilities = default(SharpVk.Khronos.SurfaceCapabilities); commandCache = extendedHandle.commandCache; SharpVk.Interop.Khronos.VkPhysicalDeviceGetSurfaceCapabilitiesDelegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.Khronos.VkPhysicalDeviceGetSurfaceCapabilitiesDelegate>("vkGetPhysicalDeviceSurfaceCapabilitiesKHR", "instance"); Result methodResult = commandDelegate(extendedHandle.handle, surface?.handle ?? default(SharpVk.Interop.Khronos.Surface), &marshalledSurfaceCapabilities); if (SharpVkException.IsError(methodResult)) { throw SharpVkException.Create(methodResult); } result = marshalledSurfaceCapabilities; return(result); } finally { Interop.HeapUtil.FreeAll(); } }
/// <summary> /// /// </summary> /// <param name="extendedHandle"> /// The PhysicalDevice handle to extend. /// </param> public static unsafe SharpVk.Multivendor.MultisampleProperties GetMultisampleProperties(this SharpVk.PhysicalDevice extendedHandle, SharpVk.SampleCountFlags samples) { try { SharpVk.Multivendor.MultisampleProperties result = default(SharpVk.Multivendor.MultisampleProperties); CommandCache commandCache = default(CommandCache); SharpVk.Interop.Multivendor.MultisampleProperties marshalledMultisampleProperties = default(SharpVk.Interop.Multivendor.MultisampleProperties); commandCache = extendedHandle.commandCache; SharpVk.Interop.Multivendor.VkPhysicalDeviceGetMultisamplePropertiesDelegate commandDelegate = commandCache.Cache.vkGetPhysicalDeviceMultisamplePropertiesEXT; commandDelegate(extendedHandle.handle, samples, &marshalledMultisampleProperties); result = SharpVk.Multivendor.MultisampleProperties.MarshalFrom(&marshalledMultisampleProperties); return(result); } finally { Interop.HeapUtil.FreeAll(); } }
/// <summary> /// /// </summary> /// <param name="extendedHandle"> /// The PhysicalDevice handle to extend. /// </param> public static unsafe SharpVk.Multivendor.TimeDomain[] GetCalibrateableTimeDomains(this SharpVk.PhysicalDevice extendedHandle) { try { SharpVk.Multivendor.TimeDomain[] result = default(SharpVk.Multivendor.TimeDomain[]); uint marshalledTimeDomainCount = default(uint); CommandCache commandCache = default(CommandCache); SharpVk.Multivendor.TimeDomain *marshalledTimeDomains = default(SharpVk.Multivendor.TimeDomain *); commandCache = extendedHandle.commandCache; SharpVk.Interop.Multivendor.VkPhysicalDeviceGetCalibrateableTimeDomainsDelegate commandDelegate = commandCache.Cache.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT; Result methodResult = commandDelegate(extendedHandle.handle, &marshalledTimeDomainCount, marshalledTimeDomains); if (SharpVkException.IsError(methodResult)) { throw SharpVkException.Create(methodResult); } marshalledTimeDomains = (SharpVk.Multivendor.TimeDomain *)(Interop.HeapUtil.Allocate <SharpVk.Multivendor.TimeDomain>((uint)(marshalledTimeDomainCount))); commandDelegate(extendedHandle.handle, &marshalledTimeDomainCount, marshalledTimeDomains); if (marshalledTimeDomains != null) { var fieldPointer = new SharpVk.Multivendor.TimeDomain[(uint)(marshalledTimeDomainCount)]; for (int index = 0; index < (uint)(marshalledTimeDomainCount); index++) { fieldPointer[index] = marshalledTimeDomains[index]; } result = fieldPointer; } else { result = null; } return(result); } finally { Interop.HeapUtil.FreeAll(); } }
/// <summary> /// Query surface capabilities. /// </summary> /// <param name="extendedHandle"> /// The PhysicalDevice handle to extend. /// </param> public static unsafe SharpVk.Multivendor.SurfaceCapabilities2 GetSurfaceCapabilities2(this SharpVk.PhysicalDevice extendedHandle, SharpVk.Khronos.Surface surface) { try { SharpVk.Multivendor.SurfaceCapabilities2 result = default(SharpVk.Multivendor.SurfaceCapabilities2); CommandCache commandCache = default(CommandCache); SharpVk.Interop.Multivendor.SurfaceCapabilities2 marshalledSurfaceCapabilities = default(SharpVk.Interop.Multivendor.SurfaceCapabilities2); commandCache = extendedHandle.commandCache; SharpVk.Interop.Multivendor.VkPhysicalDeviceGetSurfaceCapabilities2Delegate commandDelegate = commandCache.Cache.vkGetPhysicalDeviceSurfaceCapabilities2EXT; Result methodResult = commandDelegate(extendedHandle.handle, surface?.handle ?? default(SharpVk.Interop.Khronos.Surface), &marshalledSurfaceCapabilities); if (SharpVkException.IsError(methodResult)) { throw SharpVkException.Create(methodResult); } result = SharpVk.Multivendor.SurfaceCapabilities2.MarshalFrom(&marshalledSurfaceCapabilities); return(result); } finally { Interop.HeapUtil.FreeAll(); } }
/// <summary> /// Determine image capabilities compatible with external memory handle /// types. /// </summary> /// <param name="extendedHandle"> /// The PhysicalDevice handle to extend. /// </param> public static unsafe SharpVk.NVidia.ExternalImageFormatProperties GetExternalImageFormatProperties(this SharpVk.PhysicalDevice extendedHandle, SharpVk.Format format, SharpVk.ImageType type, SharpVk.ImageTiling tiling, SharpVk.ImageUsageFlags usage, SharpVk.ImageCreateFlags?flags = default(SharpVk.ImageCreateFlags?), SharpVk.NVidia.ExternalMemoryHandleTypeFlags?externalHandleType = default(SharpVk.NVidia.ExternalMemoryHandleTypeFlags?)) { try { SharpVk.NVidia.ExternalImageFormatProperties result = default(SharpVk.NVidia.ExternalImageFormatProperties); CommandCache commandCache = default(CommandCache); SharpVk.ImageCreateFlags marshalledFlags = default(SharpVk.ImageCreateFlags); SharpVk.NVidia.ExternalMemoryHandleTypeFlags marshalledExternalHandleType = default(SharpVk.NVidia.ExternalMemoryHandleTypeFlags); SharpVk.NVidia.ExternalImageFormatProperties marshalledExternalImageFormatProperties = default(SharpVk.NVidia.ExternalImageFormatProperties); commandCache = extendedHandle.commandCache; if (flags != null) { marshalledFlags = flags.Value; } else { marshalledFlags = default(SharpVk.ImageCreateFlags); } if (externalHandleType != null) { marshalledExternalHandleType = externalHandleType.Value; } else { marshalledExternalHandleType = default(SharpVk.NVidia.ExternalMemoryHandleTypeFlags); } SharpVk.Interop.NVidia.VkPhysicalDeviceGetExternalImageFormatPropertiesDelegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.NVidia.VkPhysicalDeviceGetExternalImageFormatPropertiesDelegate>("vkGetPhysicalDeviceExternalImageFormatPropertiesNV", "instance"); Result methodResult = commandDelegate(extendedHandle.handle, format, type, tiling, usage, marshalledFlags, marshalledExternalHandleType, &marshalledExternalImageFormatProperties); if (SharpVkException.IsError(methodResult)) { throw SharpVkException.Create(methodResult); } result = marshalledExternalImageFormatProperties; return(result); } finally { Interop.HeapUtil.FreeAll(); } }
/// <summary> /// /// </summary> /// <param name="extendedHandle"> /// The PhysicalDevice handle to extend. /// </param> public static unsafe SharpVk.Khronos.DisplayPlaneCapabilities2 GetDisplayPlaneCapabilities2(this SharpVk.PhysicalDevice extendedHandle, SharpVk.Khronos.DisplayPlaneInfo2 displayPlaneInfo) { try { SharpVk.Khronos.DisplayPlaneCapabilities2 result = default(SharpVk.Khronos.DisplayPlaneCapabilities2); CommandCache commandCache = default(CommandCache); SharpVk.Interop.Khronos.DisplayPlaneInfo2 * marshalledDisplayPlaneInfo = default(SharpVk.Interop.Khronos.DisplayPlaneInfo2 *); SharpVk.Interop.Khronos.DisplayPlaneCapabilities2 marshalledCapabilities = default(SharpVk.Interop.Khronos.DisplayPlaneCapabilities2); commandCache = extendedHandle.commandCache; marshalledDisplayPlaneInfo = (SharpVk.Interop.Khronos.DisplayPlaneInfo2 *)(Interop.HeapUtil.Allocate <SharpVk.Interop.Khronos.DisplayPlaneInfo2>()); displayPlaneInfo.MarshalTo(marshalledDisplayPlaneInfo); SharpVk.Interop.Khronos.VkPhysicalDeviceGetDisplayPlaneCapabilities2Delegate commandDelegate = commandCache.Cache.vkGetDisplayPlaneCapabilities2KHR; Result methodResult = commandDelegate(extendedHandle.handle, marshalledDisplayPlaneInfo, &marshalledCapabilities); if (SharpVkException.IsError(methodResult)) { throw SharpVkException.Create(methodResult); } result = SharpVk.Khronos.DisplayPlaneCapabilities2.MarshalFrom(&marshalledCapabilities); return(result); } finally { Interop.HeapUtil.FreeAll(); } }
/// <summary> /// Returns device-generated commands related properties of a physical /// device. /// </summary> /// <param name="extendedHandle"> /// The PhysicalDevice handle to extend. /// </param> public static unsafe SharpVk.NVidia.Experimental.DeviceGeneratedCommandsLimits GetGeneratedCommandsProperties(this SharpVk.PhysicalDevice extendedHandle, SharpVk.NVidia.Experimental.DeviceGeneratedCommandsFeatures features) { try { SharpVk.NVidia.Experimental.DeviceGeneratedCommandsLimits result = default(SharpVk.NVidia.Experimental.DeviceGeneratedCommandsLimits); CommandCache commandCache = default(CommandCache); SharpVk.Interop.NVidia.Experimental.DeviceGeneratedCommandsFeatures *marshalledFeatures = default(SharpVk.Interop.NVidia.Experimental.DeviceGeneratedCommandsFeatures *); SharpVk.Interop.NVidia.Experimental.DeviceGeneratedCommandsLimits marshalledLimits = default(SharpVk.Interop.NVidia.Experimental.DeviceGeneratedCommandsLimits); commandCache = extendedHandle.commandCache; marshalledFeatures = (SharpVk.Interop.NVidia.Experimental.DeviceGeneratedCommandsFeatures *)(Interop.HeapUtil.Allocate <SharpVk.Interop.NVidia.Experimental.DeviceGeneratedCommandsFeatures>()); features.MarshalTo(marshalledFeatures); SharpVk.Interop.NVidia.Experimental.VkPhysicalDeviceGetGeneratedCommandsPropertiesDelegate commandDelegate = commandCache.GetCommandDelegate <SharpVk.Interop.NVidia.Experimental.VkPhysicalDeviceGetGeneratedCommandsPropertiesDelegate>("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX", "device"); commandDelegate(extendedHandle.handle, marshalledFeatures, &marshalledLimits); result = SharpVk.NVidia.Experimental.DeviceGeneratedCommandsLimits.MarshalFrom(&marshalledLimits); return(result); } finally { Interop.HeapUtil.FreeAll(); } }
internal DisplayMode(SharpVk.PhysicalDevice parent, SharpVk.Interop.Khronos.DisplayMode handle) { this.handle = handle; this.parent = parent; this.commandCache = parent.commandCache; }