| 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 support for Vulkan 1.0
- Requires
VK_KHR_surfaceto be enabled
- 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
VK_KHR_xlib_surface,
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
VK_KHR_xlib_surface,
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
VK_KHR_surface,
PhysicalDeviceSurfaceInfo2KHR,
SwapchainCreateInfoKHR,
createAndroidSurfaceKHR,
createDirectFBSurfaceEXT,
createDisplayPlaneSurfaceKHR,
createHeadlessSurfaceEXT,
createIOSSurfaceMVK,
createImagePipeSurfaceFUCHSIA,
createMacOSSurfaceMVK,
createMetalSurfaceEXT,
createScreenSurfaceQNX,
createStreamDescriptorSurfaceGGP,
createViSurfaceNN,
createWaylandSurfaceKHR,
createWin32SurfaceKHR,
createXcbSurfaceKHR,
createXlibSurfaceKHR,
destroySurfaceKHR,
getDeviceGroupSurfacePresentModesKHR,
getPhysicalDevicePresentRectanglesKHR,
getPhysicalDeviceSurfaceCapabilities2EXT,
getPhysicalDeviceSurfaceCapabilitiesKHR,
getPhysicalDeviceSurfaceFormatsKHR,
getPhysicalDeviceSurfacePresentModesKHR,
getPhysicalDeviceSurfaceSupportKHR
Constructors
| SurfaceKHR Word64 |