Class EXTFullScreenExclusive
- java.lang.Object
-
- org.lwjgl.vulkan.EXTFullScreenExclusive
-
public class EXTFullScreenExclusive extends java.lang.ObjectThis extension allows applications to set the policy for swapchain creation and presentation mechanisms relating to full-screen access. Implementations may be able to acquire exclusive access to a particular display for an application window that covers the whole screen. This can increase performance on some systems by bypassing composition, however it can also result in disruptive or expensive transitions in the underlying windowing system when a change occurs.Applications can choose between explicitly disallowing or allowing this behavior, letting the implementation decide, or managing this mode of operation directly using the new
AcquireFullScreenExclusiveModeEXTandReleaseFullScreenExclusiveModeEXTcommands.- Name String
VK_EXT_full_screen_exclusive- Extension Type
- Device extension
- Registered Extension Number
- 256
- Revision
- 4
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Requires
VK_KHR_get_physical_device_properties2 - Requires
VK_KHR_surface - Requires
VK_KHR_get_surface_capabilities2 - Requires
VK_KHR_swapchain
- Contact
- James Jones cubanismo
- Last Modified Date
- 2019-03-12
- IP Status
- No known IP claims.
- Interactions and External Dependencies
- Interacts with VK_KHR_device_group, VK_KHR_win32_surface, and Vulkan 1.1
- 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
Fields Modifier and Type Field Description static intVK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXTExtendsVkResult.static java.lang.StringVK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAMEThe extension name.static intVK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSIONThe extension specification version.static intVK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT
VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT
VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXTVkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorstatic intVK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT
VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXTExtendsVkStructureType.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static intnvkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device, long pSurfaceInfo, long pModes)Unsafe version of:GetDeviceGroupSurfacePresentModes2EXTstatic intnvkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice, long pSurfaceInfo, long pPresentModeCount, long pPresentModes)Unsafe version of:GetPhysicalDeviceSurfacePresentModes2EXTstatic intvkAcquireFullScreenExclusiveModeEXT(VkDevice device, long swapchain)Acquire full-screen exclusive mode for a swapchain.static intvkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pModes)Array version of:GetDeviceGroupSurfacePresentModes2EXTstatic intvkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, java.nio.IntBuffer pModes)Query device group present capabilities for a surface.static intvkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pPresentModeCount, int[] pPresentModes)Array version of:GetPhysicalDeviceSurfacePresentModes2EXTstatic intvkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, java.nio.IntBuffer pPresentModeCount, java.nio.IntBuffer pPresentModes)Query supported presentation modes.static intvkReleaseFullScreenExclusiveModeEXT(VkDevice device, long swapchain)Release full-screen exclusive mode from a swapchain.
-
-
-
Field Detail
-
VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION
The extension specification version.
-
VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME
The extension name.
-
VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT, VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT
ExtendsVkStructureType.Enum values:
-
VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT
ExtendsVkResult.
-
VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT
ExtendsVkStructureType.
-
VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT, VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT, VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT, VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
VkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behaviorDescription
FULL_SCREEN_EXCLUSIVE_DEFAULT_EXTindicates the implementation should determine the appropriate full-screen method by whatever means it deems appropriate.FULL_SCREEN_EXCLUSIVE_ALLOWED_EXTindicates 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_EXTindicates the implementation should avoid using full-screen mechanisms which rely on disruptive transitions.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXTindicates the application will manage full-screen exclusive mode by using theAcquireFullScreenExclusiveModeEXTandReleaseFullScreenExclusiveModeEXTcommands.
See Also
-
-
Method Detail
-
nvkGetPhysicalDeviceSurfacePresentModes2EXT
public static int nvkGetPhysicalDeviceSurfacePresentModes2EXT(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(VkPhysicalDevice physicalDevice, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, java.nio.IntBuffer pPresentModeCount, @Nullable java.nio.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 (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- points to an instance of theVkPhysicalDeviceSurfaceInfo2KHRstructure, 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.
-
vkAcquireFullScreenExclusiveModeEXT
public static int vkAcquireFullScreenExclusiveModeEXT(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 an instance ofVkSurfaceFullScreenExclusiveInfoEXT, 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 validVkSwapchainKHRhandle- Both of
device, andswapchainmust have been created, allocated, or retrieved from the sameVkInstance
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(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 minimised or otherwise intends to stop presenting for a time.Valid Usage
swapchainmust not be in the retired stateswapchainmust be a swapchain created with an instance ofVkSurfaceFullScreenExclusiveInfoEXT, withfullScreenExclusiveset toFULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT
- Parameters:
device- the device associated withswapchain.swapchain- the swapchain to release exclusive full-screen access from.
-
nvkGetDeviceGroupSurfacePresentModes2EXT
public static int nvkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device, long pSurfaceInfo, long pModes)
Unsafe version of:GetDeviceGroupSurfacePresentModes2EXT
-
vkGetDeviceGroupSurfacePresentModes2EXT
public static int vkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, java.nio.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 (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- points to an instance of the VkPhysicalDeviceSurfaceInfo2KHR structure, describing the surface and other fixed parameters that would be consumed by vkCreateSwapchainKHR.pModes- a pointer to a value of typeVkDeviceGroupPresentModeFlagsKHRthat is filled with the supported device group present modes for the surface.
-
vkGetPhysicalDeviceSurfacePresentModes2EXT
public static int vkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pPresentModeCount, @Nullable int[] pPresentModes)
Array version of:GetPhysicalDeviceSurfacePresentModes2EXT
-
vkGetDeviceGroupSurfacePresentModes2EXT
public static int vkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pModes)
Array version of:GetDeviceGroupSurfacePresentModes2EXT
-
-