Class EXTFullScreenExclusive
Applications can choose between explicitly disallowing or allowing this behavior, letting the implementation decide, or managing this mode of operation directly using the new AcquireFullScreenExclusiveModeEXT and ReleaseFullScreenExclusiveModeEXT commands.
- Name String
VK_EXT_full_screen_exclusive- Extension Type
- Device extension
- Registered Extension Number
- 256
- Revision
- 4
- Extension and Version Dependencies
VK_KHR_get_physical_device_properties2or Version 1.1 andVK_KHR_surfaceandVK_KHR_get_surface_capabilities2andVK_KHR_swapchain- API Interactions
- Interacts with VK_VERSION_1_1
- Interacts with VK_KHR_device_group
- Interacts with VK_KHR_win32_surface
- Contact
- James Jones cubanismo
Other Extension Metadata
- Last Modified Date
- 2019-03-12
- IP Status
- No known IP claims.
- Interactions and External Dependencies
- Interacts with Vulkan 1.1
- Interacts with
VK_KHR_device_group - Interacts with
VK_KHR_win32_surface
- Contributors
- Hans-Kristian Arntzen, ARM
- Slawomir Grajewski, Intel
- Tobias Hector, AMD
- James Jones, NVIDIA
- Daniel Rakos, AMD
- Jeff Juliano, NVIDIA
- Joshua Schnarr, NVIDIA
- Aaron Hagan, AMD
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intExtendsVkResult.static final StringThe extension name.static final intThe extension specification version.static final intVkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorstatic final intVkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorstatic final intVkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorstatic final intVkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorstatic final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType. -
Method Summary
Modifier and TypeMethodDescriptionstatic intnvkGetDeviceGroupSurfacePresentModes2EXT(org.lwjgl.vulkan.VkDevice device, long pSurfaceInfo, long pModes) Unsafe version of:GetDeviceGroupSurfacePresentModes2EXTstatic intnvkGetPhysicalDeviceSurfacePresentModes2EXT(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, long pSurfaceInfo, long pPresentModeCount, long pPresentModes) Unsafe version of:GetPhysicalDeviceSurfacePresentModes2EXTstatic intvkAcquireFullScreenExclusiveModeEXT(org.lwjgl.vulkan.VkDevice device, long swapchain) Acquire full-screen exclusive mode for a swapchain.static intvkGetDeviceGroupSurfacePresentModes2EXT(org.lwjgl.vulkan.VkDevice device, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pModes) Array version of:GetDeviceGroupSurfacePresentModes2EXTstatic intvkGetDeviceGroupSurfacePresentModes2EXT(org.lwjgl.vulkan.VkDevice device, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, IntBuffer pModes) Query device group present capabilities for a surface.static intvkGetPhysicalDeviceSurfacePresentModes2EXT(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pPresentModeCount, int @Nullable [] pPresentModes) Array version of:GetPhysicalDeviceSurfacePresentModes2EXTstatic intvkGetPhysicalDeviceSurfacePresentModes2EXT(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, IntBuffer pPresentModeCount, @Nullable IntBuffer pPresentModes) Query supported presentation modes.static intvkReleaseFullScreenExclusiveModeEXT(org.lwjgl.vulkan.VkDevice device, long swapchain) Release full-screen exclusive mode from a swapchain.
-
Field Details
-
VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION
public static final int VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSIONThe extension specification version.- See Also:
-
VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME
The extension name.- See Also:
-
VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT
public static final int VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXTExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
public static final int VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXTExtendsVkStructureType.Enum values:
- See Also:
-
VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT
public static final int VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXTExtendsVkResult.- See Also:
-
VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT
public static final int VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXTExtendsVkStructureType.- See Also:
-
VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT
public static final int VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXTVkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorDescription
FULL_SCREEN_EXCLUSIVE_DEFAULT_EXTspecifies that the implementation should determine the appropriate full-screen method by whatever means it deems appropriate.FULL_SCREEN_EXCLUSIVE_ALLOWED_EXTspecifies that the implementation may use full-screen exclusive mechanisms when available. Such mechanisms may result in better performance and/or the availability of different presentation capabilities, but may require a more disruptive transition during swapchain initialization, first presentation and/or destruction.FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXTspecifies that the implementation should avoid using full-screen mechanisms which rely on disruptive transitions.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXTspecifies that the application will manage full-screen exclusive mode by using theAcquireFullScreenExclusiveModeEXTandReleaseFullScreenExclusiveModeEXTcommands.
See Also
- See Also:
-
VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT
public static final int VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXTVkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorDescription
FULL_SCREEN_EXCLUSIVE_DEFAULT_EXTspecifies that the implementation should determine the appropriate full-screen method by whatever means it deems appropriate.FULL_SCREEN_EXCLUSIVE_ALLOWED_EXTspecifies that the implementation may use full-screen exclusive mechanisms when available. Such mechanisms may result in better performance and/or the availability of different presentation capabilities, but may require a more disruptive transition during swapchain initialization, first presentation and/or destruction.FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXTspecifies that the implementation should avoid using full-screen mechanisms which rely on disruptive transitions.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXTspecifies that the application will manage full-screen exclusive mode by using theAcquireFullScreenExclusiveModeEXTandReleaseFullScreenExclusiveModeEXTcommands.
See Also
- See Also:
-
VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT
public static final int VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXTVkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorDescription
FULL_SCREEN_EXCLUSIVE_DEFAULT_EXTspecifies that the implementation should determine the appropriate full-screen method by whatever means it deems appropriate.FULL_SCREEN_EXCLUSIVE_ALLOWED_EXTspecifies that the implementation may use full-screen exclusive mechanisms when available. Such mechanisms may result in better performance and/or the availability of different presentation capabilities, but may require a more disruptive transition during swapchain initialization, first presentation and/or destruction.FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXTspecifies that the implementation should avoid using full-screen mechanisms which rely on disruptive transitions.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXTspecifies that the application will manage full-screen exclusive mode by using theAcquireFullScreenExclusiveModeEXTandReleaseFullScreenExclusiveModeEXTcommands.
See Also
- See Also:
-
VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
public static final int VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXTVkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorDescription
FULL_SCREEN_EXCLUSIVE_DEFAULT_EXTspecifies that the implementation should determine the appropriate full-screen method by whatever means it deems appropriate.FULL_SCREEN_EXCLUSIVE_ALLOWED_EXTspecifies that the implementation may use full-screen exclusive mechanisms when available. Such mechanisms may result in better performance and/or the availability of different presentation capabilities, but may require a more disruptive transition during swapchain initialization, first presentation and/or destruction.FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXTspecifies that the implementation should avoid using full-screen mechanisms which rely on disruptive transitions.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXTspecifies that the application will manage full-screen exclusive mode by using theAcquireFullScreenExclusiveModeEXTandReleaseFullScreenExclusiveModeEXTcommands.
See Also
- See Also:
-
-
Method Details
-
nvkGetPhysicalDeviceSurfacePresentModes2EXT
public static int nvkGetPhysicalDeviceSurfacePresentModes2EXT(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, long pSurfaceInfo, long pPresentModeCount, long pPresentModes) Unsafe version of:GetPhysicalDeviceSurfacePresentModes2EXT- Parameters:
pPresentModeCount- a pointer to an integer related to the number of presentation modes available or queried, as described below.
-
vkGetPhysicalDeviceSurfacePresentModes2EXT
public static int vkGetPhysicalDeviceSurfacePresentModes2EXT(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, IntBuffer pPresentModeCount, @Nullable IntBuffer pPresentModes) Query supported presentation modes.C Specification
Alternatively, to query the supported presentation modes for a surface combined with select other fixed swapchain creation parameters, call:
VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);Description
vkGetPhysicalDeviceSurfacePresentModes2EXTbehaves similarly toGetPhysicalDeviceSurfacePresentModesKHR, with the ability to specify extended inputs via chained input structures.Valid Usage
- If the
VK_GOOGLE_surfaceless_queryextension is not enabled,pSurfaceInfo→surfacemust be a validVkSurfaceKHRhandle - If
pSurfaceInfo→surfaceis notNULL_HANDLE,pSurfaceInfo→surfacemust be supported byphysicalDevice, as reported byGetPhysicalDeviceSurfaceSupportKHRor an equivalent platform-specific mechanism
Valid Usage (Implicit)
physicalDevicemust be a validVkPhysicalDevicehandlepSurfaceInfomust be a valid pointer to a validVkPhysicalDeviceSurfaceInfo2KHRstructurepPresentModeCountmust be a valid pointer to auint32_tvalue- If the value referenced by
pPresentModeCountis not 0, andpPresentModesis notNULL,pPresentModesmust be a valid pointer to an array ofpPresentModeCountVkPresentModeKHRvalues
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
physicalDevice- the physical device that will be associated with the swapchain to be created, as described forCreateSwapchainKHR.pSurfaceInfo- a pointer to aVkPhysicalDeviceSurfaceInfo2KHRstructure describing the surface and other fixed parameters that would be consumed byCreateSwapchainKHR.pPresentModeCount- a pointer to an integer related to the number of presentation modes available or queried, as described below.pPresentModes- eitherNULLor a pointer to an array ofVkPresentModeKHRvalues, indicating the supported presentation modes.
- If the
-
vkAcquireFullScreenExclusiveModeEXT
public static int vkAcquireFullScreenExclusiveModeEXT(org.lwjgl.vulkan.VkDevice device, long swapchain) Acquire full-screen exclusive mode for a swapchain.C Specification
To acquire exclusive full-screen access for a swapchain, call:
VkResult vkAcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain);Valid Usage
swapchainmust not be in the retired stateswapchainmust be a swapchain created with aVkSurfaceFullScreenExclusiveInfoEXTstructure, withfullScreenExclusiveset toFULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXTswapchainmust not currently have exclusive full-screen access
A return value of
SUCCESSindicates that theswapchainsuccessfully acquired exclusive full-screen access. The swapchain will retain this exclusivity until either the application releases exclusive full-screen access withReleaseFullScreenExclusiveModeEXT, destroys the swapchain, or if any of the swapchain commands returnERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXTindicating that the mode was lost because of platform-specific changes.If the swapchain was unable to acquire exclusive full-screen access to the display then
ERROR_INITIALIZATION_FAILEDis returned. An application can attempt to acquire exclusive full-screen access again for the same swapchain even if this command fails, or ifERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXThas been returned by a swapchain command.Valid Usage (Implicit)
devicemust be a validVkDevicehandleswapchainmust be a validVkSwapchainKHRhandleswapchainmust have been created, allocated, or retrieved fromdevice
Return Codes
- On success, this command returns
- On failure, this command returns
- Parameters:
device- the device associated withswapchain.swapchain- the swapchain to acquire exclusive full-screen access for.
-
vkReleaseFullScreenExclusiveModeEXT
public static int vkReleaseFullScreenExclusiveModeEXT(org.lwjgl.vulkan.VkDevice device, long swapchain) Release full-screen exclusive mode from a swapchain.C Specification
To release exclusive full-screen access from a swapchain, call:
VkResult vkReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain);Description
Note
Applications will not be able to present to
swapchainafter this call until exclusive full-screen access is reacquired. This is usually useful to handle when an application is minimized or otherwise intends to stop presenting for a time.Valid Usage
swapchainmust not be in the retired stateswapchainmust be a swapchain created with aVkSurfaceFullScreenExclusiveInfoEXTstructure, withfullScreenExclusiveset toFULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
Valid Usage (Implicit)
devicemust be a validVkDevicehandleswapchainmust be a validVkSwapchainKHRhandleswapchainmust have been created, allocated, or retrieved fromdevice
Return Codes
- On success, this command returns
- On failure, this command returns
- Parameters:
device- the device associated withswapchain.swapchain- the swapchain to release exclusive full-screen access from.
-
nvkGetDeviceGroupSurfacePresentModes2EXT
public static int nvkGetDeviceGroupSurfacePresentModes2EXT(org.lwjgl.vulkan.VkDevice device, long pSurfaceInfo, long pModes) Unsafe version of:GetDeviceGroupSurfacePresentModes2EXT -
vkGetDeviceGroupSurfacePresentModes2EXT
public static int vkGetDeviceGroupSurfacePresentModes2EXT(org.lwjgl.vulkan.VkDevice device, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, IntBuffer pModes) Query device group present capabilities for a surface.C Specification
Alternatively, to query the supported device group presentation modes for a surface combined with select other fixed swapchain creation parameters, call:
VkResult vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes);Description
vkGetDeviceGroupSurfacePresentModes2EXTbehaves similarly toGetDeviceGroupSurfacePresentModesKHR, with the ability to specify extended inputs via chained input structures.Valid Usage
pSurfaceInfo→surfacemust be supported by all physical devices associated withdevice, as reported byGetPhysicalDeviceSurfaceSupportKHRor an equivalent platform-specific mechanism
Valid Usage (Implicit)
devicemust be a validVkDevicehandlepSurfaceInfomust be a valid pointer to a validVkPhysicalDeviceSurfaceInfo2KHRstructurepModesmust be a valid pointer to aVkDeviceGroupPresentModeFlagsKHRvalue
Return Codes
- On success, this command returns
- On failure, this command returns
See Also
- Parameters:
device- the logical device.pSurfaceInfo- a pointer to aVkPhysicalDeviceSurfaceInfo2KHRstructure describing the surface and other fixed parameters that would be consumed byCreateSwapchainKHR.pModes- a pointer to aVkDeviceGroupPresentModeFlagsKHRin which the supported device group present modes for the surface are returned.
-
vkGetPhysicalDeviceSurfacePresentModes2EXT
public static int vkGetPhysicalDeviceSurfacePresentModes2EXT(org.lwjgl.vulkan.VkPhysicalDevice physicalDevice, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pPresentModeCount, int @Nullable [] pPresentModes) Array version of:GetPhysicalDeviceSurfacePresentModes2EXT -
vkGetDeviceGroupSurfacePresentModes2EXT
public static int vkGetDeviceGroupSurfacePresentModes2EXT(org.lwjgl.vulkan.VkDevice device, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pModes) Array version of:GetDeviceGroupSurfacePresentModes2EXT
-