| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_KHR_xlib_surface
Description
Name
VK_KHR_xlib_surface - instance extension
VK_KHR_xlib_surface
- Name String
VK_KHR_xlib_surface
- Extension Type
- Instance extension
- Registered Extension Number
- 5
- Revision
- 6
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Requires
VK_KHR_surface
- Contact
Other Extension Metadata
- Last Modified Date
- 2015-11-28
- IP Status
- No known IP claims.
- Contributors
- Patrick Doane, Blizzard
- Jason Ekstrand, Intel
- Ian Elliott, LunarG
- Courtney Goeltzenleuchter, LunarG
- Jesse Hall, Google
- James Jones, NVIDIA
- Antoine Labour, Google
- Jon Leech, Khronos
- David Mao, AMD
- Norbert Nopper, Freescale
- Alon Or-bach, Samsung
- Daniel Rakos, AMD
- Graham Sellers, AMD
- Ray Smith, ARM
- Jeff Vigil, Qualcomm
- Chia-I Wu, LunarG
Description
The VK_KHR_xlib_surface extension is an instance extension. It
provides a mechanism to create a SurfaceKHR
object (defined by the VK_KHR_surface extension) that refers to an X11
Window, using the Xlib client-side library, as well as a query to
determine support for rendering via Xlib.
New Commands
New Structures
New Bitmasks
New Enum Constants
Issues
1) Does X11 need a way to query for compatibility between a particular
physical device and a specific screen? This would be a more general
query than
getPhysicalDeviceSurfaceSupportKHR;
if it returned TRUE, then the physical
device could be assumed to support presentation to any window on that
screen.
RESOLVED: Yes, this is needed for toolkits that want to create a
Device before creating a window. To ensure the
query is reliable, it must be made against a particular X visual rather
than the screen in general.
Version History
Revision 1, 2015-09-23 (Jesse Hall)
- Initial draft, based on the previous contents of VK_EXT_KHR_swapchain (later renamed VK_EXT_KHR_surface).
Revision 2, 2015-10-02 (James Jones)
- Added presentation support query for (Display*, VisualID) pair.
- Removed "root" parameter from CreateXlibSurfaceKHR(), as it is redundant when a window on the same screen is specified as well.
- Added appropriate X errors.
- Adjusted wording of issue #1 and added agreed upon resolution.
Revision 3, 2015-10-14 (Ian Elliott)
- Renamed this extension from VK_EXT_KHR_x11_surface to VK_EXT_KHR_xlib_surface.
Revision 4, 2015-10-26 (Ian Elliott)
- Renamed from VK_EXT_KHR_xlib_surface to VK_KHR_xlib_surface.
Revision 5, 2015-11-03 (Daniel Rakos)
- Added allocation callbacks to vkCreateXlibSurfaceKHR.
Revision 6, 2015-11-28 (Daniel Rakos)
- Updated the surface create function to take a pCreateInfo structure.
See Also
XlibSurfaceCreateFlagsKHR, XlibSurfaceCreateInfoKHR,
createXlibSurfaceKHR, getPhysicalDeviceXlibPresentationSupportKHR
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
- createXlibSurfaceKHR :: forall io. MonadIO io => Instance -> XlibSurfaceCreateInfoKHR -> ("allocator" ::: Maybe AllocationCallbacks) -> io SurfaceKHR
- getPhysicalDeviceXlibPresentationSupportKHR :: forall io. MonadIO io => PhysicalDevice -> ("queueFamilyIndex" ::: Word32) -> ("dpy" ::: Ptr Display) -> VisualID -> io Bool
- data XlibSurfaceCreateInfoKHR = XlibSurfaceCreateInfoKHR {}
- newtype XlibSurfaceCreateFlagsKHR = XlibSurfaceCreateFlagsKHR Flags
- type KHR_XLIB_SURFACE_SPEC_VERSION = 6
- pattern KHR_XLIB_SURFACE_SPEC_VERSION :: forall a. Integral a => a
- type KHR_XLIB_SURFACE_EXTENSION_NAME = "VK_KHR_xlib_surface"
- pattern KHR_XLIB_SURFACE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
- type Display = Ptr ()
- type VisualID = Word64
- type Window = Word64
- newtype SurfaceKHR = SurfaceKHR Word64
Documentation
Arguments
| :: forall io. MonadIO io | |
| => Instance |
|
| -> XlibSurfaceCreateInfoKHR |
|
| -> ("allocator" ::: Maybe AllocationCallbacks) |
|
| -> io SurfaceKHR |
vkCreateXlibSurfaceKHR - Create a SurfaceKHR
object for an X11 window, using the Xlib client-side library
Valid Usage (Implicit)
-
instancemust be a validInstancehandle
-
pCreateInfomust be a valid pointer to a validXlibSurfaceCreateInfoKHRstructure - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validAllocationCallbacksstructure -
pSurfacemust be a valid pointer to aSurfaceKHRhandle
Return Codes
See Also
AllocationCallbacks,
Instance,
SurfaceKHR, XlibSurfaceCreateInfoKHR
getPhysicalDeviceXlibPresentationSupportKHR Source #
Arguments
| :: forall io. MonadIO io | |
| => PhysicalDevice |
|
| -> ("queueFamilyIndex" ::: Word32) |
|
| -> ("dpy" ::: Ptr Display) |
|
| -> VisualID | |
| -> io Bool |
vkGetPhysicalDeviceXlibPresentationSupportKHR - Query physical device for presentation to X11 server using Xlib
Description
This platform-specific function can be called prior to creating a surface.
Valid Usage (Implicit)
See Also
data XlibSurfaceCreateInfoKHR Source #
VkXlibSurfaceCreateInfoKHR - Structure specifying parameters of a newly created Xlib surface object
Valid Usage (Implicit)
See Also
StructureType,
XlibSurfaceCreateFlagsKHR, createXlibSurfaceKHR
Constructors
| XlibSurfaceCreateInfoKHR | |
Fields | |
Instances
newtype XlibSurfaceCreateFlagsKHR Source #
VkXlibSurfaceCreateFlagsKHR - Reserved for future use
Description
XlibSurfaceCreateFlagsKHR is a bitmask type for setting a mask, but is
currently reserved for future use.
See Also
Constructors
| XlibSurfaceCreateFlagsKHR Flags |
Instances
type KHR_XLIB_SURFACE_SPEC_VERSION = 6 Source #
pattern KHR_XLIB_SURFACE_SPEC_VERSION :: forall a. Integral a => a Source #
type KHR_XLIB_SURFACE_EXTENSION_NAME = "VK_KHR_xlib_surface" Source #
pattern KHR_XLIB_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,
createDirectFBSurfaceEXT,
createDisplayPlaneSurfaceKHR,
createHeadlessSurfaceEXT,
createIOSSurfaceMVK,
createImagePipeSurfaceFUCHSIA,
createMacOSSurfaceMVK,
createMetalSurfaceEXT,
createStreamDescriptorSurfaceGGP,
createViSurfaceNN,
createWaylandSurfaceKHR,
createWin32SurfaceKHR,
createXcbSurfaceKHR,
createXlibSurfaceKHR,
destroySurfaceKHR,
getDeviceGroupSurfacePresentModesKHR,
getPhysicalDevicePresentRectanglesKHR,
getPhysicalDeviceSurfaceCapabilities2EXT,
getPhysicalDeviceSurfaceCapabilitiesKHR,
getPhysicalDeviceSurfaceFormatsKHR,
getPhysicalDeviceSurfacePresentModesKHR,
getPhysicalDeviceSurfaceSupportKHR
Constructors
| SurfaceKHR Word64 |