Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- destroySurfaceKHR :: forall io. MonadIO io => Instance -> SurfaceKHR -> ("allocator" ::: Maybe AllocationCallbacks) -> io ()
- getPhysicalDeviceSurfaceSupportKHR :: forall io. MonadIO io => PhysicalDevice -> ("queueFamilyIndex" ::: Word32) -> SurfaceKHR -> io ("supported" ::: Bool)
- getPhysicalDeviceSurfaceCapabilitiesKHR :: forall io. MonadIO io => PhysicalDevice -> SurfaceKHR -> io SurfaceCapabilitiesKHR
- getPhysicalDeviceSurfaceFormatsKHR :: forall io. MonadIO io => PhysicalDevice -> SurfaceKHR -> io (Result, "surfaceFormats" ::: Vector SurfaceFormatKHR)
- getPhysicalDeviceSurfacePresentModesKHR :: forall io. MonadIO io => PhysicalDevice -> SurfaceKHR -> io (Result, "presentModes" ::: Vector PresentModeKHR)
- data SurfaceCapabilitiesKHR = SurfaceCapabilitiesKHR {
- minImageCount :: Word32
- maxImageCount :: Word32
- currentExtent :: Extent2D
- minImageExtent :: Extent2D
- maxImageExtent :: Extent2D
- maxImageArrayLayers :: Word32
- supportedTransforms :: SurfaceTransformFlagsKHR
- currentTransform :: SurfaceTransformFlagBitsKHR
- supportedCompositeAlpha :: CompositeAlphaFlagsKHR
- supportedUsageFlags :: ImageUsageFlags
- data SurfaceFormatKHR = SurfaceFormatKHR {}
- newtype PresentModeKHR where
- PresentModeKHR Int32
- pattern PRESENT_MODE_IMMEDIATE_KHR :: PresentModeKHR
- pattern PRESENT_MODE_MAILBOX_KHR :: PresentModeKHR
- pattern PRESENT_MODE_FIFO_KHR :: PresentModeKHR
- pattern PRESENT_MODE_FIFO_RELAXED_KHR :: PresentModeKHR
- pattern PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR :: PresentModeKHR
- pattern PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR :: PresentModeKHR
- newtype ColorSpaceKHR where
- ColorSpaceKHR Int32
- pattern COLOR_SPACE_SRGB_NONLINEAR_KHR :: ColorSpaceKHR
- pattern COLOR_SPACE_DISPLAY_NATIVE_AMD :: ColorSpaceKHR
- pattern COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_PASS_THROUGH_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_ADOBERGB_NONLINEAR_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_ADOBERGB_LINEAR_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_HDR10_HLG_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_DOLBYVISION_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_HDR10_ST2084_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_BT2020_LINEAR_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_BT709_NONLINEAR_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_BT709_LINEAR_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_DCI_P3_NONLINEAR_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_DISPLAY_P3_LINEAR_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT :: ColorSpaceKHR
- pattern COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT :: ColorSpaceKHR
- newtype CompositeAlphaFlagBitsKHR where
- CompositeAlphaFlagBitsKHR Flags
- pattern COMPOSITE_ALPHA_OPAQUE_BIT_KHR :: CompositeAlphaFlagBitsKHR
- pattern COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR :: CompositeAlphaFlagBitsKHR
- pattern COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR :: CompositeAlphaFlagBitsKHR
- pattern COMPOSITE_ALPHA_INHERIT_BIT_KHR :: CompositeAlphaFlagBitsKHR
- type CompositeAlphaFlagsKHR = CompositeAlphaFlagBitsKHR
- newtype SurfaceTransformFlagBitsKHR where
- SurfaceTransformFlagBitsKHR Flags
- pattern SURFACE_TRANSFORM_IDENTITY_BIT_KHR :: SurfaceTransformFlagBitsKHR
- pattern SURFACE_TRANSFORM_ROTATE_90_BIT_KHR :: SurfaceTransformFlagBitsKHR
- pattern SURFACE_TRANSFORM_ROTATE_180_BIT_KHR :: SurfaceTransformFlagBitsKHR
- pattern SURFACE_TRANSFORM_ROTATE_270_BIT_KHR :: SurfaceTransformFlagBitsKHR
- pattern SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR :: SurfaceTransformFlagBitsKHR
- pattern SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR :: SurfaceTransformFlagBitsKHR
- pattern SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR :: SurfaceTransformFlagBitsKHR
- pattern SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR :: SurfaceTransformFlagBitsKHR
- pattern SURFACE_TRANSFORM_INHERIT_BIT_KHR :: SurfaceTransformFlagBitsKHR
- type SurfaceTransformFlagsKHR = SurfaceTransformFlagBitsKHR
- type KHR_SURFACE_SPEC_VERSION = 25
- pattern KHR_SURFACE_SPEC_VERSION :: forall a. Integral a => a
- type KHR_SURFACE_EXTENSION_NAME = "VK_KHR_surface"
- pattern KHR_SURFACE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
- newtype SurfaceKHR = SurfaceKHR Word64
Documentation
:: forall io. MonadIO io | |
=> Instance |
|
-> SurfaceKHR |
|
-> ("allocator" ::: Maybe AllocationCallbacks) |
|
-> io () |
vkDestroySurfaceKHR - Destroy a VkSurfaceKHR object
Description
Destroying a SurfaceKHR
merely severs the
connection between Vulkan and the native surface, and does not imply
destroying the native surface, closing a window, or similar behavior.
Valid Usage
- All
SwapchainKHR
objects created forsurface
must have been destroyed prior to destroyingsurface
- If
AllocationCallbacks
were provided whensurface
was created, a compatible set of callbacks must be provided here - If no
AllocationCallbacks
were provided whensurface
was created,pAllocator
must beNULL
Valid Usage (Implicit)
instance
must be a validInstance
handle
- If
surface
is notNULL_HANDLE
,surface
must be a validSurfaceKHR
handle - If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validAllocationCallbacks
structure - If
surface
is a valid handle, it must have been created, allocated, or retrieved frominstance
Host Synchronization
- Host access to
surface
must be externally synchronized
See Also
getPhysicalDeviceSurfaceSupportKHR Source #
:: forall io. MonadIO io | |
=> PhysicalDevice |
|
-> ("queueFamilyIndex" ::: Word32) |
|
-> SurfaceKHR |
|
-> io ("supported" ::: Bool) |
vkGetPhysicalDeviceSurfaceSupportKHR - Query if presentation is supported
Valid Usage
queueFamilyIndex
must be less thanpQueueFamilyPropertyCount
returned bygetPhysicalDeviceQueueFamilyProperties
for the givenphysicalDevice
Valid Usage (Implicit)
physicalDevice
must be a validPhysicalDevice
handle
surface
must be a validSurfaceKHR
handlepSupported
must be a valid pointer to aBool32
value- Both of
physicalDevice
, andsurface
must have been created, allocated, or retrieved from the sameInstance
Return Codes
See Also
getPhysicalDeviceSurfaceCapabilitiesKHR Source #
:: forall io. MonadIO io | |
=> PhysicalDevice |
|
-> SurfaceKHR |
|
-> io SurfaceCapabilitiesKHR |
vkGetPhysicalDeviceSurfaceCapabilitiesKHR - Query surface capabilities
Valid Usage (Implicit)
physicalDevice
must be a validPhysicalDevice
handle
surface
must be a validSurfaceKHR
handlepSurfaceCapabilities
must be a valid pointer to aSurfaceCapabilitiesKHR
structure- Both of
physicalDevice
, andsurface
must have been created, allocated, or retrieved from the sameInstance
Return Codes
See Also
getPhysicalDeviceSurfaceFormatsKHR Source #
:: forall io. MonadIO io | |
=> PhysicalDevice |
|
-> SurfaceKHR |
|
-> io (Result, "surfaceFormats" ::: Vector SurfaceFormatKHR) |
vkGetPhysicalDeviceSurfaceFormatsKHR - Query color formats supported by surface
Description
If pSurfaceFormats
is NULL
, then the number of format pairs
supported for the given surface
is returned in pSurfaceFormatCount
.
Otherwise, pSurfaceFormatCount
must point to a variable set by the
user to the number of elements in the pSurfaceFormats
array, and on
return the variable is overwritten with the number of structures
actually written to pSurfaceFormats
. If the value of
pSurfaceFormatCount
is less than the number of format pairs supported,
at most pSurfaceFormatCount
structures will be written. If
pSurfaceFormatCount
is smaller than the number of format pairs
supported for the given surface
,
INCOMPLETE
will be returned instead of
SUCCESS
to indicate that not all the
available values were returned.
The number of format pairs supported must be greater than or equal to
1. pSurfaceFormats
must not contain an entry whose value for
format
is FORMAT_UNDEFINED
.
If pSurfaceFormats
includes an entry whose value for colorSpace
is
COLOR_SPACE_SRGB_NONLINEAR_KHR
and whose value for format
is a UNORM
(or SRGB) format and the corresponding SRGB (or UNORM) format is a color
renderable format for
IMAGE_TILING_OPTIMAL
, then
pSurfaceFormats
must also contain an entry with the same value for
colorSpace
and format
equal to the corresponding SRGB (or UNORM)
format.
Valid Usage
surface
must be supported byphysicalDevice
, as reported bygetPhysicalDeviceSurfaceSupportKHR
or an equivalent platform-specific mechanism
Valid Usage (Implicit)
physicalDevice
must be a validPhysicalDevice
handle
surface
must be a validSurfaceKHR
handlepSurfaceFormatCount
must be a valid pointer to auint32_t
value- If the value referenced by
pSurfaceFormatCount
is not0
, andpSurfaceFormats
is notNULL
,pSurfaceFormats
must be a valid pointer to an array ofpSurfaceFormatCount
SurfaceFormatKHR
structures - Both of
physicalDevice
, andsurface
must have been created, allocated, or retrieved from the sameInstance
Return Codes
See Also
getPhysicalDeviceSurfacePresentModesKHR Source #
:: forall io. MonadIO io | |
=> PhysicalDevice |
|
-> SurfaceKHR |
|
-> io (Result, "presentModes" ::: Vector PresentModeKHR) |
vkGetPhysicalDeviceSurfacePresentModesKHR - Query supported presentation modes
Description
If pPresentModes
is NULL
, then the number of presentation modes
supported for the given surface
is returned in pPresentModeCount
.
Otherwise, pPresentModeCount
must point to a variable set by the
user to the number of elements in the pPresentModes
array, and on
return the variable is overwritten with the number of values actually
written to pPresentModes
. If the value of pPresentModeCount
is less
than the number of presentation modes supported, at most
pPresentModeCount
values will be written. If pPresentModeCount
is
smaller than the number of presentation modes supported for the given
surface
, INCOMPLETE
will be returned
instead of SUCCESS
to indicate that not all
the available values were returned.
Valid Usage (Implicit)
physicalDevice
must be a validPhysicalDevice
handle
surface
must be a validSurfaceKHR
handlepPresentModeCount
must be a valid pointer to auint32_t
value- If the value referenced by
pPresentModeCount
is not0
, andpPresentModes
is notNULL
,pPresentModes
must be a valid pointer to an array ofpPresentModeCount
PresentModeKHR
values - Both of
physicalDevice
, andsurface
must have been created, allocated, or retrieved from the sameInstance
Return Codes
See Also
data SurfaceCapabilitiesKHR Source #
VkSurfaceCapabilitiesKHR - Structure describing capabilities of a surface
Description
Note
Supported usage flags of a presentable image when using
PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR
or
PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR
presentation mode are
provided by
SharedPresentSurfaceCapabilitiesKHR
::sharedPresentSupportedUsageFlags
.
Note
Formulas such as min(N, maxImageCount
) are not correct, since
maxImageCount
may be zero.
See Also
CompositeAlphaFlagsKHR
, Extent2D
,
ImageUsageFlags
,
SurfaceCapabilities2KHR
,
SurfaceTransformFlagBitsKHR
, SurfaceTransformFlagsKHR
,
getPhysicalDeviceSurfaceCapabilitiesKHR
SurfaceCapabilitiesKHR | |
|
Instances
data SurfaceFormatKHR Source #
VkSurfaceFormatKHR - Structure describing a supported swapchain format-color space pair
See Also
ColorSpaceKHR
, Format
,
SurfaceFormat2KHR
,
getPhysicalDeviceSurfaceFormatsKHR
SurfaceFormatKHR | |
|
Instances
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 mode | Image usage flags |
---|---|
PRESENT_MODE_IMMEDIATE_KHR | SurfaceCapabilitiesKHR ::supportedUsageFlags |
PRESENT_MODE_MAILBOX_KHR | SurfaceCapabilitiesKHR ::supportedUsageFlags |
PRESENT_MODE_FIFO_KHR | SurfaceCapabilitiesKHR ::supportedUsageFlags |
PRESENT_MODE_FIFO_RELAXED_KHR | SurfaceCapabilitiesKHR ::supportedUsageFlags |
PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR | SharedPresentSurfaceCapabilitiesKHR ::sharedPresentSupportedUsageFlags |
PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR | SharedPresentSurfaceCapabilitiesKHR ::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
SwapchainCreateInfoKHR
,
getPhysicalDeviceSurfacePresentModes2EXT
,
getPhysicalDeviceSurfacePresentModesKHR
pattern PRESENT_MODE_IMMEDIATE_KHR :: PresentModeKHR |
|
pattern PRESENT_MODE_MAILBOX_KHR :: PresentModeKHR |
|
pattern PRESENT_MODE_FIFO_KHR :: PresentModeKHR |
|
pattern PRESENT_MODE_FIFO_RELAXED_KHR :: PresentModeKHR |
|
pattern PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR :: PresentModeKHR |
|
pattern PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR :: PresentModeKHR |
|
Instances
newtype ColorSpaceKHR Source #
VkColorSpaceKHR - supported color space of the presentation engine
Description
Note
In the initial release of the VK_KHR_surface
and VK_KHR_swapchain
extensions, the token VK_COLORSPACE_SRGB_NONLINEAR_KHR
was used.
Starting in the 2016-05-13 updates to the extension branches, matching
release 1.0.13 of the core API specification,
COLOR_SPACE_SRGB_NONLINEAR_KHR
is used instead for consistency with
Vulkan naming rules. The older enum is still available for backwards
compatibility.
Note
In older versions of this extension COLOR_SPACE_DISPLAY_P3_LINEAR_EXT
was misnamed
COLOR_SPACE_DCI_P3_LINEAR_EXT
.
This has been updated to indicate that it uses RGB color encoding, not
XYZ. The old name is deprecated but is maintained for backwards
compatibility.
The color components of non-linear color space swap chain images must
have had the appropriate transfer function applied. The color space
selected for the swap chain image will not affect the processing of data
written into the image by the implementation. Vulkan requires that all
implementations support the sRGB transfer function by use of an SRGB
pixel format. Other transfer functions, such as SMPTE 170M or SMPTE2084,
can be performed by the application shader. This extension defines
enums for ColorSpaceKHR
that correspond to the following color spaces:
Name | Red Primary | Green Primary | Blue Primary | White-point | Transfer function |
---|---|---|---|---|---|
DCI-P3 | 1.000, 0.000 | 0.000, 1.000 | 0.000, 0.000 | 0.3333, 0.3333 | DCI P3 |
Display-P3 | 0.680, 0.320 | 0.265, 0.690 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | Display-P3 |
BT709 | 0.640, 0.330 | 0.300, 0.600 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | ITU (SMPTE 170M) |
sRGB | 0.640, 0.330 | 0.300, 0.600 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | sRGB |
extended sRGB | 0.640, 0.330 | 0.300, 0.600 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | extended sRGB |
HDR10_ST2084 | 0.708, 0.292 | 0.170, 0.797 | 0.131, 0.046 | 0.3127, 0.3290 (D65) | ST2084 PQ |
DOLBYVISION | 0.708, 0.292 | 0.170, 0.797 | 0.131, 0.046 | 0.3127, 0.3290 (D65) | ST2084 PQ |
HDR10_HLG | 0.708, 0.292 | 0.170, 0.797 | 0.131, 0.046 | 0.3127, 0.3290 (D65) | HLG |
AdobeRGB | 0.640, 0.330 | 0.210, 0.710 | 0.150, 0.060 | 0.3127, 0.3290 (D65) | AdobeRGB |
Color Spaces and Attributes
The transfer functions are described in the “Transfer Functions” chapter of the Khronos Data Format Specification.
Except Display-P3 OETF, which is:
[begin{aligned} E & = begin{cases} 1.055 times L^{1 over 2.4} - 0.055 & text{for} 0.0030186 leq L leq 1 -- 12.92 times L & text{for} 0 leq L < 0.0030186
pattern COLOR_SPACE_SRGB_NONLINEAR_KHR :: ColorSpaceKHR |
|
pattern COLOR_SPACE_DISPLAY_NATIVE_AMD :: ColorSpaceKHR |
|
pattern COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_PASS_THROUGH_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_ADOBERGB_NONLINEAR_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_ADOBERGB_LINEAR_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_HDR10_HLG_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_DOLBYVISION_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_HDR10_ST2084_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_BT2020_LINEAR_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_BT709_NONLINEAR_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_BT709_LINEAR_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_DCI_P3_NONLINEAR_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_DISPLAY_P3_LINEAR_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT :: ColorSpaceKHR |
|
pattern COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT :: ColorSpaceKHR |
|
Instances
newtype CompositeAlphaFlagBitsKHR Source #
VkCompositeAlphaFlagBitsKHR - alpha compositing modes supported on a device
Description
These values are described as follows:
See Also
pattern COMPOSITE_ALPHA_OPAQUE_BIT_KHR :: CompositeAlphaFlagBitsKHR |
|
pattern COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR :: CompositeAlphaFlagBitsKHR |
|
pattern COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR :: CompositeAlphaFlagBitsKHR |
|
pattern COMPOSITE_ALPHA_INHERIT_BIT_KHR :: CompositeAlphaFlagBitsKHR |
|
Instances
newtype SurfaceTransformFlagBitsKHR Source #
VkSurfaceTransformFlagBitsKHR - presentation transforms supported on a device
See Also
CommandBufferInheritanceRenderPassTransformInfoQCOM
,
DisplaySurfaceCreateInfoKHR
,
RenderPassTransformBeginInfoQCOM
,
SurfaceCapabilities2EXT
,
SurfaceCapabilitiesKHR
, SurfaceTransformFlagsKHR
,
SwapchainCreateInfoKHR
Instances
type KHR_SURFACE_SPEC_VERSION = 25 Source #
pattern KHR_SURFACE_SPEC_VERSION :: forall a. Integral a => a Source #
type KHR_SURFACE_EXTENSION_NAME = "VK_KHR_surface" Source #
pattern KHR_SURFACE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #
newtype SurfaceKHR Source #
VkSurfaceKHR - Opaque handle to a surface object
Description
The VK_KHR_surface
extension declares the SurfaceKHR
object, and
provides a function for destroying SurfaceKHR
objects. Separate
platform-specific extensions each provide a function for creating a
SurfaceKHR
object for the respective platform. From the application’s
perspective this is an opaque handle, just like the handles of other
Vulkan objects.
See Also
PhysicalDeviceSurfaceInfo2KHR
,
SwapchainCreateInfoKHR
,
createAndroidSurfaceKHR
,
createDisplayPlaneSurfaceKHR
,
createHeadlessSurfaceEXT
,
createIOSSurfaceMVK
,
createImagePipeSurfaceFUCHSIA
,
createMacOSSurfaceMVK
,
createMetalSurfaceEXT
,
createStreamDescriptorSurfaceGGP
,
createViSurfaceNN
,
createWaylandSurfaceKHR
,
createWin32SurfaceKHR
,
createXcbSurfaceKHR
,
createXlibSurfaceKHR
,
destroySurfaceKHR
,
getDeviceGroupSurfacePresentModesKHR
,
getPhysicalDevicePresentRectanglesKHR
,
getPhysicalDeviceSurfaceCapabilities2EXT
,
getPhysicalDeviceSurfaceCapabilitiesKHR
,
getPhysicalDeviceSurfaceFormatsKHR
,
getPhysicalDeviceSurfacePresentModesKHR
,
getPhysicalDeviceSurfaceSupportKHR