vulkan-3.26.1: Bindings to the Vulkan graphics API.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Vulkan.Extensions.VK_EXT_swapchain_maintenance1

Description

Name

VK_EXT_swapchain_maintenance1 - device extension

VK_EXT_swapchain_maintenance1

Name String
VK_EXT_swapchain_maintenance1
Extension Type
Device extension
Registered Extension Number
276
Revision
1
Ratification Status
Not ratified
Extension and Version Dependencies
VK_KHR_swapchain and VK_EXT_surface_maintenance1 and VK_KHR_get_physical_device_properties2
Contact
Extension Proposal
VK_EXT_swapchain_maintenance1

Other Extension Metadata

Last Modified Date
2022-10-28
Contributors
  • Jeff Juliano, NVIDIA
  • Shahbaz Youssefi, Google
  • Chris Forbes, Google
  • Ian Elliott, Google
  • Yiwei Zhang, Google
  • Charlie Lao, Google
  • Lina Versace, Google
  • Ralph Potter, Samsung
  • Igor Nazarov, Samsung
  • Hyunchang Kim, Samsung
  • Suenghwan Lee, Samsung
  • Munseong Kang, Samsung
  • Joonyong Park, Samsung
  • Hans-Kristian Arntzen, Valve
  • Lisa Wu, Arm
  • Daniel Stone, Collabora
  • Pan Gao, Huawei

Description

VK_EXT_swapchain_maintenance1 adds a collection of window system integration features that were intentionally left out or overlooked in the original VK_KHR_swapchain extension.

The new features are as follows:

  • Specify a fence that will be signaled when the resources associated with a present operation can be safely destroyed.
  • Allow changing the present mode a swapchain is using at per-present granularity.
  • Allow applications to define the behavior when presenting a swapchain image to a surface with different dimensions than the image. Using this feature may allow implementations to avoid returning ERROR_OUT_OF_DATE_KHR in this situation.
  • Allow applications to defer swapchain memory allocation for improved startup time and memory footprint.
  • Allow applications to release previously acquired images without presenting them.

New Commands

New Structures

New Enum Constants

Version History

  • Revision 0, 2019-05-28

    • Initial revisions
  • Revision 1, 2022-08-21 (Shahbaz Youssefi)

    • Add functionality and complete spec

See Also

PhysicalDeviceSwapchainMaintenance1FeaturesEXT, ReleaseSwapchainImagesInfoEXT, SwapchainPresentFenceInfoEXT, SwapchainPresentModeInfoEXT, SwapchainPresentModesCreateInfoEXT, SwapchainPresentScalingCreateInfoEXT, releaseSwapchainImagesEXT

Document Notes

For more information, see the Vulkan Specification

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

Synopsis

Documentation

releaseSwapchainImagesEXT Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the device associated with ReleaseSwapchainImagesInfoEXT::swapchain.

device must be a valid Device handle

-> ("releaseInfo" ::: ReleaseSwapchainImagesInfoEXT)

pReleaseInfo is a pointer to a ReleaseSwapchainImagesInfoEXT structure containing parameters of the release.

pReleaseInfo must be a valid pointer to a valid ReleaseSwapchainImagesInfoEXT structure

-> io () 

vkReleaseSwapchainImagesEXT - Release previously acquired but unused images

Description

Only images that are not in use by the device can be released.

Releasing images is a read-only operation that will not affect the content of the released images. Upon reacquiring the image, the image contents and its layout will be the same as they were prior to releasing it. However, if a mechanism other than Vulkan is used to modify the platform window associated with the swapchain, the content of all presentable images in the swapchain becomes undefined.

Note

This functionality is useful during swapchain recreation, where acquired images from the old swapchain can be released instead of presented.

Return Codes

Success
Failure

See Also

VK_EXT_swapchain_maintenance1, Device, ReleaseSwapchainImagesInfoEXT

data PhysicalDeviceSwapchainMaintenance1FeaturesEXT Source #

VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT - Structure describing whether implementation supports swapchain maintenance1 functionality

Members

This structure describes the following feature:

Description

If the PhysicalDeviceSwapchainMaintenance1FeaturesEXT structure is included in the pNext chain of the PhysicalDeviceFeatures2 structure passed to getPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. PhysicalDeviceSwapchainMaintenance1FeaturesEXT can also be used in the pNext chain of DeviceCreateInfo to selectively enable these features.

Valid Usage (Implicit)

See Also

VK_EXT_swapchain_maintenance1, Bool32, StructureType

Constructors

PhysicalDeviceSwapchainMaintenance1FeaturesEXT 

Fields

Instances

Instances details
Storable PhysicalDeviceSwapchainMaintenance1FeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_swapchain_maintenance1

Show PhysicalDeviceSwapchainMaintenance1FeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_swapchain_maintenance1

Eq PhysicalDeviceSwapchainMaintenance1FeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_swapchain_maintenance1

FromCStruct PhysicalDeviceSwapchainMaintenance1FeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_swapchain_maintenance1

ToCStruct PhysicalDeviceSwapchainMaintenance1FeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_swapchain_maintenance1

Zero PhysicalDeviceSwapchainMaintenance1FeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_swapchain_maintenance1

data SwapchainPresentFenceInfoEXT Source #

VkSwapchainPresentFenceInfoEXT - Fences associated with a vkQueuePresentKHR operation

Description

The set of queue operations defined by queuing an image for presentation, as well as operations performed by the presentation engine access the payloads of objects associated with the presentation operation. The associated objects include:

  • The swapchain image, its implicitly bound memory, and any other resources bound to that memory.
  • The wait semaphores specified when queuing the image for presentation.

The application can provide a fence that the implementation will signal when all such queue operations have completed and the presentation engine has taken a reference to the payload of any objects it accesses as part of the present operation. For all binary wait semaphores imported by the presentation engine using the equivalent of reference transference, as described in Importing Semaphore Payloads, this fence must not signal until all such semaphore payloads have been reset by the presentation engine.

The application can destroy the wait semaphores associated with a given presentation operation when at least one of the associated fences is signaled, and can destroy the swapchain when the fences associated with all past presentation requests referring to that swapchain have signaled.

Fences associated with presentations to the same swapchain on the same Queue must be signaled in the same order as the present operations.

To specify a fence for each swapchain in a present operation, include the SwapchainPresentFenceInfoEXT structure in the pNext chain of the PresentInfoKHR structure.

Valid Usage

  • Each element of pFences must be unsignaled
  • Each element of pFences must not be associated with any other queue command that has not yet completed execution on that queue

Valid Usage (Implicit)

  • pFences must be a valid pointer to an array of swapchainCount valid Fence handles
  • swapchainCount must be greater than 0

See Also

VK_EXT_swapchain_maintenance1, Fence, StructureType

Constructors

SwapchainPresentFenceInfoEXT 

Fields

  • fences :: Vector Fence

    pFences is a list of fences with swapchainCount entries. Each entry must be NULL_HANDLE or the handle of a fence to signal when the relevant operations on the associated swapchain have completed.

data SwapchainPresentModesCreateInfoEXT Source #

VkSwapchainPresentModesCreateInfoEXT - All presentation modes usable by the swapchain

Valid Usage

Valid Usage (Implicit)

  • pPresentModes must be a valid pointer to an array of presentModeCount valid PresentModeKHR values
  • presentModeCount must be greater than 0

See Also

VK_EXT_swapchain_maintenance1, PresentModeKHR, StructureType

Constructors

SwapchainPresentModesCreateInfoEXT 

Fields

data SwapchainPresentModeInfoEXT Source #

VkSwapchainPresentModeInfoEXT - Presentation modes for a vkQueuePresentKHR operation

Description

If the pNext chain of PresentInfoKHR includes a SwapchainPresentModeInfoEXT structure, then that structure defines the presentation modes used for the current and subsequent presentation operations.

When the application changes present modes with SwapchainPresentModeInfoEXT, images that have already been queued for presentation will continue to be presented according to the previous present mode. The current image being queued for presentation and subsequent images will be presented according to the new present mode. The behavior during the transition between the two modes is defined as follows.

Valid Usage

  • Each entry in pPresentModes must be a presentation mode specified in SwapchainPresentModesCreateInfoEXT::pPresentModes when creating the entry’s corresponding swapchain

Valid Usage (Implicit)

  • pPresentModes must be a valid pointer to an array of swapchainCount valid PresentModeKHR values
  • swapchainCount must be greater than 0

See Also

VK_EXT_swapchain_maintenance1, PresentModeKHR, StructureType

Constructors

SwapchainPresentModeInfoEXT 

Fields

data SwapchainPresentScalingCreateInfoEXT Source #

VkSwapchainPresentScalingCreateInfoEXT - Scaling behavior when presenting to the surface

Description

If scalingBehavior is 0, the result of presenting a swapchain image with dimensions that do not match the surface dimensions is implementation and platform-dependent. If presentGravityX or presentGravityY are 0, the presentation gravity must match that defined by the native platform surface on platforms which define surface gravity.

Valid Usage

  • If presentGravityX is 0, presentGravityY must be 0

Valid Usage (Implicit)

See Also

VK_EXT_swapchain_maintenance1, PresentGravityFlagsEXT, PresentScalingFlagsEXT, StructureType

Constructors

SwapchainPresentScalingCreateInfoEXT 

Fields

  • scalingBehavior :: PresentScalingFlagsEXT

    scalingBehavior is 0 or the scaling method to use when the dimensions of the surface and swapchain images differ.

  • presentGravityX :: PresentGravityFlagsEXT

    presentGravityX is 0 or the x-axis direction in which swapchain image pixels gravitate relative to the surface when scalingBehavior does not result in a one-to-one pixel mapping between the scaled swapchain image and the surface.

  • presentGravityY :: PresentGravityFlagsEXT

    presentGravityY is 0 or the y-axis direction in which swapchain image pixels gravitate relative to the surface when scalingBehavior does not result in a one-to-one pixel mapping between the scaled swapchain image and the surface.

Instances

Instances details
Storable SwapchainPresentScalingCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_swapchain_maintenance1

Show SwapchainPresentScalingCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_swapchain_maintenance1

Eq SwapchainPresentScalingCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_swapchain_maintenance1

FromCStruct SwapchainPresentScalingCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_swapchain_maintenance1

ToCStruct SwapchainPresentScalingCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_swapchain_maintenance1

Zero SwapchainPresentScalingCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_swapchain_maintenance1

data ReleaseSwapchainImagesInfoEXT Source #

VkReleaseSwapchainImagesInfoEXT - Structure describing a list of swapchain image indices to be released

Valid Usage

  • Each element of pImageIndices must be the index of a presentable image acquired from the swapchain specified by swapchain
  • All uses of presentable images identified by elements of pImageIndices must have completed execution

Valid Usage (Implicit)

  • pNext must be NULL
  • swapchain must be a valid SwapchainKHR handle
  • pImageIndices must be a valid pointer to an array of imageIndexCount uint32_t values
  • imageIndexCount must be greater than 0

Host Synchronization

  • Host access to swapchain must be externally synchronized

See Also

VK_EXT_swapchain_maintenance1, StructureType, SwapchainKHR, releaseSwapchainImagesEXT

Constructors

ReleaseSwapchainImagesInfoEXT 

Fields

  • swapchain :: SwapchainKHR

    swapchain is a swapchain to which images are being released.

  • imageIndices :: Vector Word32

    pImageIndices is a pointer to an array of indices into the array of swapchain’s presentable images, with imageIndexCount entries.

type EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME = "VK_EXT_swapchain_maintenance1" Source #

newtype SwapchainKHR Source #

VkSwapchainKHR - Opaque handle to a swapchain object

Description

A swapchain is an abstraction for an array of presentable images that are associated with a surface. The presentable images are represented by Image objects created by the platform. One image (which can be an array image for multiview/stereoscopic-3D surfaces) is displayed at a time, but multiple images can be queued for presentation. An application renders to the image, and then queues the image for presentation to the surface.

A native window cannot be associated with more than one non-retired swapchain at a time. Further, swapchains cannot be created for native windows that have a non-Vulkan graphics API surface associated with them.

Note

The presentation engine is an abstraction for the platform’s compositor or display engine.

The presentation engine may be synchronous or asynchronous with respect to the application and/or logical device.

Some implementations may use the device’s graphics queue or dedicated presentation hardware to perform presentation.

The presentable images of a swapchain are owned by the presentation engine. An application can acquire use of a presentable image from the presentation engine. Use of a presentable image must occur only after the image is returned by acquireNextImageKHR, and before it is released by queuePresentKHR. This includes transitioning the image layout and rendering commands.

An application can acquire use of a presentable image with acquireNextImageKHR. After acquiring a presentable image and before modifying it, the application must use a synchronization primitive to ensure that the presentation engine has finished reading from the image. The application can then transition the image’s layout, queue rendering commands to it, etc. Finally, the application presents the image with queuePresentKHR, which releases the acquisition of the image. The application can also release the acquisition of the image through releaseSwapchainImagesEXT, if the image is not in use by the device, and skip the present operation.

The presentation engine controls the order in which presentable images are acquired for use by the application.

Note

This allows the platform to handle situations which require out-of-order return of images after presentation. At the same time, it allows the application to generate command buffers referencing all of the images in the swapchain at initialization time, rather than in its main loop.

See Also

VK_KHR_swapchain, AcquireNextImageInfoKHR, BindImageMemorySwapchainInfoKHR, ImageSwapchainCreateInfoKHR, PresentInfoKHR, ReleaseSwapchainImagesInfoEXT, SwapchainCreateInfoKHR, acquireFullScreenExclusiveModeEXT, acquireNextImageKHR, createSharedSwapchainsKHR, createSwapchainKHR, destroySwapchainKHR, getLatencyTimingsNV, getPastPresentationTimingGOOGLE, getRefreshCycleDurationGOOGLE, getSwapchainCounterEXT, getSwapchainImagesKHR, getSwapchainStatusKHR, latencySleepNV, queuePresentKHR, releaseFullScreenExclusiveModeEXT, setHdrMetadataEXT, setLatencyMarkerNV, setLatencySleepModeNV, setLocalDimmingAMD, waitForPresentKHR

Constructors

SwapchainKHR Word64 

Instances

Instances details
Storable SwapchainKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Show SwapchainKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Eq SwapchainKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Ord SwapchainKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

HasObjectType SwapchainKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

IsHandle SwapchainKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Zero SwapchainKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

newtype PresentModeKHR Source #

VkPresentModeKHR - Presentation mode supported for a surface

Description

The supported ImageUsageFlagBits of the presentable images of a swapchain created for a surface may differ depending on the presentation mode, and can be determined as per the table below:

Presentation modeImage usage flags
PRESENT_MODE_IMMEDIATE_KHRSurfaceCapabilitiesKHR::supportedUsageFlags
PRESENT_MODE_MAILBOX_KHRSurfaceCapabilitiesKHR::supportedUsageFlags
PRESENT_MODE_FIFO_KHRSurfaceCapabilitiesKHR::supportedUsageFlags
PRESENT_MODE_FIFO_RELAXED_KHRSurfaceCapabilitiesKHR::supportedUsageFlags
PRESENT_MODE_SHARED_DEMAND_REFRESH_KHRSharedPresentSurfaceCapabilitiesKHR::sharedPresentSupportedUsageFlags
PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHRSharedPresentSurfaceCapabilitiesKHR::sharedPresentSupportedUsageFlags

Presentable image usage queries

Note

For reference, the mode indicated by PRESENT_MODE_FIFO_KHR is equivalent to the behavior of {wgl|glX|egl}SwapBuffers with a swap interval of 1, while the mode indicated by PRESENT_MODE_FIFO_RELAXED_KHR is equivalent to the behavior of {wgl|glX}SwapBuffers with a swap interval of -1 (from the {WGL|GLX}_EXT_swap_control_tear extensions).

See Also

VK_KHR_surface, LatencySurfaceCapabilitiesNV, SurfacePresentModeCompatibilityEXT, SurfacePresentModeEXT, SwapchainCreateInfoKHR, SwapchainPresentModeInfoEXT, SwapchainPresentModesCreateInfoEXT, getPhysicalDeviceSurfacePresentModes2EXT, getPhysicalDeviceSurfacePresentModesKHR

Constructors

PresentModeKHR Int32 

Bundled Patterns

pattern PRESENT_MODE_IMMEDIATE_KHR :: PresentModeKHR

PRESENT_MODE_IMMEDIATE_KHR specifies that the presentation engine does not wait for a vertical blanking period to update the current image, meaning this mode may result in visible tearing. No internal queuing of presentation requests is needed, as the requests are applied immediately.

pattern PRESENT_MODE_MAILBOX_KHR :: PresentModeKHR

PRESENT_MODE_MAILBOX_KHR specifies that the presentation engine waits for the next vertical blanking period to update the current image. Tearing cannot be observed. An internal single-entry queue is used to hold pending presentation requests. If the queue is full when a new presentation request is received, the new request replaces the existing entry, and any images associated with the prior entry become available for reuse by the application. One request is removed from the queue and processed during each vertical blanking period in which the queue is non-empty.

pattern PRESENT_MODE_FIFO_KHR :: PresentModeKHR

PRESENT_MODE_FIFO_KHR specifies that the presentation engine waits for the next vertical blanking period to update the current image. Tearing cannot be observed. An internal queue is used to hold pending presentation requests. New requests are appended to the end of the queue, and one request is removed from the beginning of the queue and processed during each vertical blanking period in which the queue is non-empty. This is the only value of presentMode that is required to be supported.

pattern PRESENT_MODE_FIFO_RELAXED_KHR :: PresentModeKHR

PRESENT_MODE_FIFO_RELAXED_KHR specifies that the presentation engine generally waits for the next vertical blanking period to update the current image. If a vertical blanking period has already passed since the last update of the current image then the presentation engine does not wait for another vertical blanking period for the update, meaning this mode may result in visible tearing in this case. This mode is useful for reducing visual stutter with an application that will mostly present a new image before the next vertical blanking period, but may occasionally be late, and present a new image just after the next vertical blanking period. An internal queue is used to hold pending presentation requests. New requests are appended to the end of the queue, and one request is removed from the beginning of the queue and processed during or after each vertical blanking period in which the queue is non-empty.

pattern PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR :: PresentModeKHR

PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR specifies that the presentation engine and application have concurrent access to a single image, which is referred to as a shared presentable image. The presentation engine periodically updates the current image on its regular refresh cycle. The application is only required to make one initial presentation request, after which the presentation engine must update the current image without any need for further presentation requests. The application can indicate the image contents have been updated by making a presentation request, but this does not guarantee the timing of when it will be updated. This mode may result in visible tearing if rendering to the image is not timed correctly.

pattern PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR :: PresentModeKHR

PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR specifies that the presentation engine and application have concurrent access to a single image, which is referred to as a shared presentable image. The presentation engine is only required to update the current image after a new presentation request is received. Therefore the application must make a presentation request whenever an update is required. However, the presentation engine may update the current image at any point, meaning this mode may result in visible tearing.

Instances

Instances details
Storable PresentModeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_surface

Read PresentModeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_surface

Show PresentModeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_surface

Eq PresentModeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_surface

Ord PresentModeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_surface

Zero PresentModeKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_surface

newtype SwapchainCreateFlagBitsKHR Source #

VkSwapchainCreateFlagBitsKHR - Bitmask controlling swapchain creation

See Also

VK_KHR_swapchain, SwapchainCreateFlagsKHR

Bundled Patterns

pattern SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT :: SwapchainCreateFlagBitsKHR

SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT specifies that the implementation may defer allocation of memory associated with each swapchain image until its index is to be returned from acquireNextImageKHR or acquireNextImage2KHR for the first time.

pattern SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR :: SwapchainCreateFlagBitsKHR

SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR specifies that the images of the swapchain can be used to create a ImageView with a different format than what the swapchain was created with. The list of allowed image view formats is specified by adding a ImageFormatListCreateInfo structure to the pNext chain of SwapchainCreateInfoKHR. In addition, this flag also specifies that the swapchain can be created with usage flags that are not supported for the format the swapchain is created with but are supported for at least one of the allowed image view formats.

pattern SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR :: SwapchainCreateFlagBitsKHR

SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR specifies that images created from the swapchain (i.e. with the swapchain member of ImageSwapchainCreateInfoKHR set to this swapchain’s handle) must use IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT.

pattern SWAPCHAIN_CREATE_PROTECTED_BIT_KHR :: SwapchainCreateFlagBitsKHR

SWAPCHAIN_CREATE_PROTECTED_BIT_KHR specifies that images created from the swapchain are protected images.

Instances

Instances details
Storable SwapchainCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_swapchain

Bits SwapchainCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_swapchain

Methods

(.&.) :: SwapchainCreateFlagBitsKHR -> SwapchainCreateFlagBitsKHR -> SwapchainCreateFlagBitsKHR #

(.|.) :: SwapchainCreateFlagBitsKHR -> SwapchainCreateFlagBitsKHR -> SwapchainCreateFlagBitsKHR #

xor :: SwapchainCreateFlagBitsKHR -> SwapchainCreateFlagBitsKHR -> SwapchainCreateFlagBitsKHR #

complement :: SwapchainCreateFlagBitsKHR -> SwapchainCreateFlagBitsKHR #

shift :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

rotate :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

zeroBits :: SwapchainCreateFlagBitsKHR #

bit :: Int -> SwapchainCreateFlagBitsKHR #

setBit :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

clearBit :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

complementBit :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

testBit :: SwapchainCreateFlagBitsKHR -> Int -> Bool #

bitSizeMaybe :: SwapchainCreateFlagBitsKHR -> Maybe Int #

bitSize :: SwapchainCreateFlagBitsKHR -> Int #

isSigned :: SwapchainCreateFlagBitsKHR -> Bool #

shiftL :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

unsafeShiftL :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

shiftR :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

unsafeShiftR :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

rotateL :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

rotateR :: SwapchainCreateFlagBitsKHR -> Int -> SwapchainCreateFlagBitsKHR #

popCount :: SwapchainCreateFlagBitsKHR -> Int #

FiniteBits SwapchainCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_swapchain

Read SwapchainCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_swapchain

Show SwapchainCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_swapchain

Eq SwapchainCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_swapchain

Ord SwapchainCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_swapchain

Zero SwapchainCreateFlagBitsKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_swapchain

newtype PresentScalingFlagBitsEXT Source #

VkPresentScalingFlagBitsEXT - Bitmask specifying presentation scaling methods

See Also

VK_EXT_surface_maintenance1, PresentScalingFlagsEXT

Bundled Patterns

pattern PRESENT_SCALING_ONE_TO_ONE_BIT_EXT :: PresentScalingFlagBitsEXT

PRESENT_SCALING_ONE_TO_ONE_BIT_EXT specifies that no scaling occurs, and pixels in the swapchain image are mapped to one and only one pixel in the surface. The mapping between pixels is defined by the chosen presentation gravity.

pattern PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT :: PresentScalingFlagBitsEXT

PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT specifies that the swapchain image will be minified or magnified such that at least one of the resulting width or height is equal to the corresponding surface dimension, and the other resulting dimension is less than or equal to the corresponding surface dimension, with the aspect ratio of the resulting image being identical to that of the original swapchain image.

pattern PRESENT_SCALING_STRETCH_BIT_EXT :: PresentScalingFlagBitsEXT

PRESENT_SCALING_STRETCH_BIT_EXT specifies that the swapchain image will be minified or magnified such that the resulting image dimensions are equal to those of the surface.

Instances

Instances details
Storable PresentScalingFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_surface_maintenance1

Bits PresentScalingFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_surface_maintenance1

Methods

(.&.) :: PresentScalingFlagBitsEXT -> PresentScalingFlagBitsEXT -> PresentScalingFlagBitsEXT #

(.|.) :: PresentScalingFlagBitsEXT -> PresentScalingFlagBitsEXT -> PresentScalingFlagBitsEXT #

xor :: PresentScalingFlagBitsEXT -> PresentScalingFlagBitsEXT -> PresentScalingFlagBitsEXT #

complement :: PresentScalingFlagBitsEXT -> PresentScalingFlagBitsEXT #

shift :: PresentScalingFlagBitsEXT -> Int -> PresentScalingFlagBitsEXT #

rotate :: PresentScalingFlagBitsEXT -> Int -> PresentScalingFlagBitsEXT #

zeroBits :: PresentScalingFlagBitsEXT #

bit :: Int -> PresentScalingFlagBitsEXT #

setBit :: PresentScalingFlagBitsEXT -> Int -> PresentScalingFlagBitsEXT #

clearBit :: PresentScalingFlagBitsEXT -> Int -> PresentScalingFlagBitsEXT #

complementBit :: PresentScalingFlagBitsEXT -> Int -> PresentScalingFlagBitsEXT #

testBit :: PresentScalingFlagBitsEXT -> Int -> Bool #

bitSizeMaybe :: PresentScalingFlagBitsEXT -> Maybe Int #

bitSize :: PresentScalingFlagBitsEXT -> Int #

isSigned :: PresentScalingFlagBitsEXT -> Bool #

shiftL :: PresentScalingFlagBitsEXT -> Int -> PresentScalingFlagBitsEXT #

unsafeShiftL :: PresentScalingFlagBitsEXT -> Int -> PresentScalingFlagBitsEXT #

shiftR :: PresentScalingFlagBitsEXT -> Int -> PresentScalingFlagBitsEXT #

unsafeShiftR :: PresentScalingFlagBitsEXT -> Int -> PresentScalingFlagBitsEXT #

rotateL :: PresentScalingFlagBitsEXT -> Int -> PresentScalingFlagBitsEXT #

rotateR :: PresentScalingFlagBitsEXT -> Int -> PresentScalingFlagBitsEXT #

popCount :: PresentScalingFlagBitsEXT -> Int #

FiniteBits PresentScalingFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_surface_maintenance1

Read PresentScalingFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_surface_maintenance1

Show PresentScalingFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_surface_maintenance1

Eq PresentScalingFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_surface_maintenance1

Ord PresentScalingFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_surface_maintenance1

Zero PresentScalingFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_surface_maintenance1

newtype PresentGravityFlagBitsEXT Source #

VkPresentGravityFlagBitsEXT - Bitmask specifying presentation pixel gravity on either the x or y axis

Description

If the value in SurfaceCapabilitiesKHR::currentTransform is not SURFACE_TRANSFORM_IDENTITY_BIT_KHR, it is implementation-defined whether the gravity configuration applies to the presented image before or after transformation.

See Also

VK_EXT_surface_maintenance1, PresentGravityFlagsEXT

Bundled Patterns

pattern PRESENT_GRAVITY_MIN_BIT_EXT :: PresentGravityFlagBitsEXT

PRESENT_GRAVITY_MIN_BIT_EXT means that the pixels will gravitate towards the top or left side of the surface.

pattern PRESENT_GRAVITY_MAX_BIT_EXT :: PresentGravityFlagBitsEXT

PRESENT_GRAVITY_MAX_BIT_EXT means that the pixels will gravitate towards the bottom or right side of the surface.

pattern PRESENT_GRAVITY_CENTERED_BIT_EXT :: PresentGravityFlagBitsEXT

PRESENT_GRAVITY_CENTERED_BIT_EXT means that the pixels will be centered in the surface.

Instances

Instances details
Storable PresentGravityFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_surface_maintenance1

Bits PresentGravityFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_surface_maintenance1

Methods

(.&.) :: PresentGravityFlagBitsEXT -> PresentGravityFlagBitsEXT -> PresentGravityFlagBitsEXT #

(.|.) :: PresentGravityFlagBitsEXT -> PresentGravityFlagBitsEXT -> PresentGravityFlagBitsEXT #

xor :: PresentGravityFlagBitsEXT -> PresentGravityFlagBitsEXT -> PresentGravityFlagBitsEXT #

complement :: PresentGravityFlagBitsEXT -> PresentGravityFlagBitsEXT #

shift :: PresentGravityFlagBitsEXT -> Int -> PresentGravityFlagBitsEXT #

rotate :: PresentGravityFlagBitsEXT -> Int -> PresentGravityFlagBitsEXT #

zeroBits :: PresentGravityFlagBitsEXT #

bit :: Int -> PresentGravityFlagBitsEXT #

setBit :: PresentGravityFlagBitsEXT -> Int -> PresentGravityFlagBitsEXT #

clearBit :: PresentGravityFlagBitsEXT -> Int -> PresentGravityFlagBitsEXT #

complementBit :: PresentGravityFlagBitsEXT -> Int -> PresentGravityFlagBitsEXT #

testBit :: PresentGravityFlagBitsEXT -> Int -> Bool #

bitSizeMaybe :: PresentGravityFlagBitsEXT -> Maybe Int #

bitSize :: PresentGravityFlagBitsEXT -> Int #

isSigned :: PresentGravityFlagBitsEXT -> Bool #

shiftL :: PresentGravityFlagBitsEXT -> Int -> PresentGravityFlagBitsEXT #

unsafeShiftL :: PresentGravityFlagBitsEXT -> Int -> PresentGravityFlagBitsEXT #

shiftR :: PresentGravityFlagBitsEXT -> Int -> PresentGravityFlagBitsEXT #

unsafeShiftR :: PresentGravityFlagBitsEXT -> Int -> PresentGravityFlagBitsEXT #

rotateL :: PresentGravityFlagBitsEXT -> Int -> PresentGravityFlagBitsEXT #

rotateR :: PresentGravityFlagBitsEXT -> Int -> PresentGravityFlagBitsEXT #

popCount :: PresentGravityFlagBitsEXT -> Int #

FiniteBits PresentGravityFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_surface_maintenance1

Read PresentGravityFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_surface_maintenance1

Show PresentGravityFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_surface_maintenance1

Eq PresentGravityFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_surface_maintenance1

Ord PresentGravityFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_surface_maintenance1

Zero PresentGravityFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_surface_maintenance1