Top Description Fields Constructors Methods
org.lwjgl.vulkan

public Class EXTFullScreenExclusive

extends Object
Class Inheritance
Imports
javax.annotation.*, java.nio.*, org.lwjgl.system.*

This 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 AcquireFullScreenExclusiveModeEXT and ReleaseFullScreenExclusiveModeEXT commands.

VK_EXT_full_screen_exclusive
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_properties2 and VK_KHR_surface and VK_KHR_get_surface_capabilities2 and VK_KHR_swapchain
Contact
Other Extension Metadata
Last Modified Date
2019-03-12
IP Status
No known IP claims.
Interactions and External Dependencies
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

Modifier and TypeField and Description
public static final int
public static final String
public static final int
VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION

The extension specification version.

public static final int
VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT

VkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behavior Description

public static final int
VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT

VkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behavior Description

public static final int
VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT

VkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behavior Description

public static final int
VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT

VkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behavior Description

public static final int
public static final int
public static final int

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static int
nvkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device, long pSurfaceInfo, long pModes)

Unsafe version of: GetDeviceGroupSurfacePresentModes2EXT

public static int
nvkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice, long pSurfaceInfo, long
a pointer to an integer related to the number of presentation modes available or queried, as described below.
pPresentModeCount
,
long pPresentModes)

Unsafe version of: GetPhysicalDeviceSurfacePresentModes2EXT

public static int
vkAcquireFullScreenExclusiveModeEXT(VkDevice
the device associated with swapchain.
device
,
long
the swapchain to acquire exclusive full-screen access for.
swapchain
)

Acquire full-screen exclusive mode for a swapchain.

public static int
vkGetDeviceGroupSurfacePresentModes2EXT(VkDevice
the logical device.
device
,
VkPhysicalDeviceSurfaceInfo2KHR
a pointer to a VkPhysicalDeviceSurfaceInfo2KHR structure describing the surface and other fixed parameters that would be consumed by CreateSwapchainKHR.
pSurfaceInfo
,
IntBuffer
a pointer to a VkDeviceGroupPresentModeFlagsKHR in which the supported device group present modes for the surface are returned.
pModes
)

Query device group present capabilities for a surface.

public static int
public static int
vkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice
the physical device that will be associated with the swapchain to be created, as described for CreateSwapchainKHR.
physicalDevice
,
VkPhysicalDeviceSurfaceInfo2KHR
a pointer to a VkPhysicalDeviceSurfaceInfo2KHR structure describing the surface and other fixed parameters that would be consumed by CreateSwapchainKHR.
pSurfaceInfo
,
IntBuffer
a pointer to an integer related to the number of presentation modes available or queried, as described below.
pPresentModeCount
,
IntBuffer
either NULL or a pointer to an array of VkPresentModeKHR values, indicating the supported presentation modes.
pPresentModes
)

Query supported presentation modes.

public static int
vkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pPresentModeCount, int[] pPresentModes)

Array version of: GetPhysicalDeviceSurfacePresentModes2EXT

public static int
vkReleaseFullScreenExclusiveModeEXT(VkDevice
the device associated with swapchain.
device
,
long
the swapchain to release exclusive full-screen access from.
swapchain
)

Release full-screen exclusive mode from a swapchain.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXTback to summary
public static final int VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT

Extends VkResult.

VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAMEback to summary
public static final String VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME

The extension name.

VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSIONback to summary
public static final int VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION

The extension specification version.

VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXTback to summary
public static final int VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT

VkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behavior

Description
See Also

VkSurfaceFullScreenExclusiveInfoEXT

VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXTback to summary
public static final int VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT

VkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behavior

Description
See Also

VkSurfaceFullScreenExclusiveInfoEXT

VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXTback to summary
public static final int VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT

VkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behavior

Description
See Also

VkSurfaceFullScreenExclusiveInfoEXT

VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXTback to summary
public static final int VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT

VkFullScreenExclusiveEXT - Hint values an application can specify affecting full-screen transition behavior

Description
See Also

VkSurfaceFullScreenExclusiveInfoEXT

VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXTback to summary
public static final int VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT

Extends VkStructureType.

Enum values:
VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXTback to summary
public static final int VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT

Extends VkStructureType.

Enum values:
VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXTback to summary
public static final int VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT

Extends VkStructureType.

Constructor Detail

EXTFullScreenExclusiveback to summary
protected EXTFullScreenExclusive()

Method Detail

nvkGetDeviceGroupSurfacePresentModes2EXTback to summary
public static int nvkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device, long pSurfaceInfo, long pModes)

Unsafe version of: GetDeviceGroupSurfacePresentModes2EXT

nvkGetPhysicalDeviceSurfacePresentModes2EXTback to summary
public static int nvkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice, long pSurfaceInfo, long pPresentModeCount, long pPresentModes)

Unsafe version of: GetPhysicalDeviceSurfacePresentModes2EXT

Parameters
pPresentModeCount:long

a pointer to an integer related to the number of presentation modes available or queried, as described below.

vkAcquireFullScreenExclusiveModeEXTback to summary
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

A return value of SUCCESS indicates that the swapchain successfully acquired exclusive full-screen access. The swapchain will retain this exclusivity until either the application releases exclusive full-screen access with ReleaseFullScreenExclusiveModeEXT, destroys the swapchain, or if any of the swapchain commands return ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT indicating 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_FAILED is returned. An application can attempt to acquire exclusive full-screen access again for the same swapchain even if this command fails, or if ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT has been returned by a swapchain command.

Valid Usage (Implicit)
  • device must be a valid VkDevice handle
  • swapchain must be a valid VkSwapchainKHR handle
  • swapchain must have been created, allocated, or retrieved from device
Return Codes
On success, this command returns
On failure, this command returns
Parameters
device:VkDevice

the device associated with swapchain.

swapchain:long

the swapchain to acquire exclusive full-screen access for.

Annotations
@NativeType:VkResult
vkGetDeviceGroupSurfacePresentModes2EXTback to summary
public static int vkGetDeviceGroupSurfacePresentModes2EXT(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

vkGetDeviceGroupSurfacePresentModes2EXT behaves similarly to GetDeviceGroupSurfacePresentModesKHR, with the ability to specify extended inputs via chained input structures.

Valid Usage
  • pSurfaceInfo→surface must be supported by all physical devices associated with device, as reported by GetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism
Valid Usage (Implicit)
  • device must be a valid VkDevice handle
  • pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure
  • pModes must be a valid pointer to a VkDeviceGroupPresentModeFlagsKHR value
Return Codes
On success, this command returns
On failure, this command returns
See Also

VkPhysicalDeviceSurfaceInfo2KHR

Parameters
device:VkDevice

the logical device.

pSurfaceInfo:VkPhysicalDeviceSurfaceInfo2KHR

a pointer to a VkPhysicalDeviceSurfaceInfo2KHR structure describing the surface and other fixed parameters that would be consumed by CreateSwapchainKHR.

pModes:IntBuffer

a pointer to a VkDeviceGroupPresentModeFlagsKHR in which the supported device group present modes for the surface are returned.

Annotations
@NativeType:VkResult
vkGetDeviceGroupSurfacePresentModes2EXTback to summary
public static int vkGetDeviceGroupSurfacePresentModes2EXT(VkDevice device, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pModes)

Array version of: GetDeviceGroupSurfacePresentModes2EXT

Annotations
@NativeType:VkResult
vkGetPhysicalDeviceSurfacePresentModes2EXTback to summary
public static int vkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, IntBuffer pPresentModeCount, 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

vkGetPhysicalDeviceSurfacePresentModes2EXT behaves similarly to GetPhysicalDeviceSurfacePresentModesKHR, with the ability to specify extended inputs via chained input structures.

Valid Usage
Valid Usage (Implicit)
  • physicalDevice must be a valid VkPhysicalDevice handle
  • pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure
  • pPresentModeCount must be a valid pointer to a uint32_t value
  • If the value referenced by pPresentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of pPresentModeCount VkPresentModeKHR values
Return Codes
On success, this command returns
On failure, this command returns
See Also

VkPhysicalDeviceSurfaceInfo2KHR

Parameters
physicalDevice:VkPhysicalDevice

the physical device that will be associated with the swapchain to be created, as described for CreateSwapchainKHR.

pSurfaceInfo:VkPhysicalDeviceSurfaceInfo2KHR

a pointer to a VkPhysicalDeviceSurfaceInfo2KHR structure describing the surface and other fixed parameters that would be consumed by CreateSwapchainKHR.

pPresentModeCount:IntBuffer

a pointer to an integer related to the number of presentation modes available or queried, as described below.

pPresentModes:IntBuffer

either NULL or a pointer to an array of VkPresentModeKHR values, indicating the supported presentation modes.

Annotations
@NativeType:VkResult
vkGetPhysicalDeviceSurfacePresentModes2EXTback to summary
public static int vkGetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice, VkPhysicalDeviceSurfaceInfo2KHR pSurfaceInfo, int[] pPresentModeCount, int[] pPresentModes)

Array version of: GetPhysicalDeviceSurfacePresentModes2EXT

Annotations
@NativeType:VkResult
vkReleaseFullScreenExclusiveModeEXTback to summary
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 swapchain after 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
Parameters
device:VkDevice

the device associated with swapchain.

swapchain:long

the swapchain to release exclusive full-screen access from.

Annotations
@NativeType:VkResult