vulkan-3.17: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_EXT_headless_surface

Description

Name

VK_EXT_headless_surface - instance extension

VK_EXT_headless_surface

Name String
VK_EXT_headless_surface
Extension Type
Instance extension
Registered Extension Number
257
Revision
1
Extension and Version Dependencies
  • Requires Vulkan 1.0
  • Requires VK_KHR_surface
Contact

Other Extension Metadata

Last Modified Date
2019-03-21
IP Status
No known IP claims.
Contributors
  • Ray Smith, Arm

Description

The VK_EXT_headless_surface extension is an instance extension. It provides a mechanism to create SurfaceKHR objects independently of any window system or display device. The presentation operation for a swapchain created from a headless surface is by default a no-op, resulting in no externally-visible result.

Because there is no real presentation target, future extensions can layer on top of the headless surface to introduce arbitrary or customisable sets of restrictions or features. These could include features like saving to a file or restrictions to emulate a particular presentation target.

This functionality is expected to be useful for application and driver development because it allows any platform to expose an arbitrary or customisable set of restrictions and features of a presentation engine. This makes it a useful portable test target for applications targeting a wide range of presentation engines where the actual target presentation engines might be scarce, unavailable or otherwise undesirable or inconvenient to use for general Vulkan application development.

New Commands

New Structures

New Bitmasks

New Enum Constants

Version History

  • Revision 1, 2019-03-21 (Ray Smith)

    • Initial draft

See Also

HeadlessSurfaceCreateFlagsEXT, HeadlessSurfaceCreateInfoEXT, createHeadlessSurfaceEXT

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

createHeadlessSurfaceEXT Source #

Arguments

:: forall io. MonadIO io 
=> Instance

instance is the instance to associate the surface with.

-> HeadlessSurfaceCreateInfoEXT

pCreateInfo is a pointer to a HeadlessSurfaceCreateInfoEXT structure containing parameters affecting the creation of the surface object.

-> ("allocator" ::: Maybe AllocationCallbacks)

pAllocator is the allocator used for host memory allocated for the surface object when there is no more specific allocator available (see Memory Allocation).

-> io SurfaceKHR 

vkCreateHeadlessSurfaceEXT - Create a headless SurfaceKHR object

Valid Usage (Implicit)

  • instance must be a valid Instance handle

Return Codes

Success
Failure

See Also

VK_EXT_headless_surface, AllocationCallbacks, HeadlessSurfaceCreateInfoEXT, Instance, SurfaceKHR

data HeadlessSurfaceCreateInfoEXT Source #

VkHeadlessSurfaceCreateInfoEXT - Structure specifying parameters of a newly created headless surface object

Valid Usage (Implicit)

See Also

VK_EXT_headless_surface, HeadlessSurfaceCreateFlagsEXT, StructureType, createHeadlessSurfaceEXT

Constructors

HeadlessSurfaceCreateInfoEXT 

Fields

Instances

Instances details
Eq HeadlessSurfaceCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_headless_surface

Show HeadlessSurfaceCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_headless_surface

Storable HeadlessSurfaceCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_headless_surface

FromCStruct HeadlessSurfaceCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_headless_surface

ToCStruct HeadlessSurfaceCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_headless_surface

Zero HeadlessSurfaceCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_headless_surface

newtype HeadlessSurfaceCreateFlagsEXT Source #

VkHeadlessSurfaceCreateFlagsEXT - Reserved for future use

Description

HeadlessSurfaceCreateFlagsEXT is a bitmask type for setting a mask, but is currently reserved for future use.

See Also

VK_EXT_headless_surface, HeadlessSurfaceCreateInfoEXT

Instances

Instances details
Eq HeadlessSurfaceCreateFlagsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_headless_surface

Ord HeadlessSurfaceCreateFlagsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_headless_surface

Read HeadlessSurfaceCreateFlagsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_headless_surface

Show HeadlessSurfaceCreateFlagsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_headless_surface

Storable HeadlessSurfaceCreateFlagsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_headless_surface

Bits HeadlessSurfaceCreateFlagsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_headless_surface

Methods

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

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

xor :: HeadlessSurfaceCreateFlagsEXT -> HeadlessSurfaceCreateFlagsEXT -> HeadlessSurfaceCreateFlagsEXT #

complement :: HeadlessSurfaceCreateFlagsEXT -> HeadlessSurfaceCreateFlagsEXT #

shift :: HeadlessSurfaceCreateFlagsEXT -> Int -> HeadlessSurfaceCreateFlagsEXT #

rotate :: HeadlessSurfaceCreateFlagsEXT -> Int -> HeadlessSurfaceCreateFlagsEXT #

zeroBits :: HeadlessSurfaceCreateFlagsEXT #

bit :: Int -> HeadlessSurfaceCreateFlagsEXT #

setBit :: HeadlessSurfaceCreateFlagsEXT -> Int -> HeadlessSurfaceCreateFlagsEXT #

clearBit :: HeadlessSurfaceCreateFlagsEXT -> Int -> HeadlessSurfaceCreateFlagsEXT #

complementBit :: HeadlessSurfaceCreateFlagsEXT -> Int -> HeadlessSurfaceCreateFlagsEXT #

testBit :: HeadlessSurfaceCreateFlagsEXT -> Int -> Bool #

bitSizeMaybe :: HeadlessSurfaceCreateFlagsEXT -> Maybe Int #

bitSize :: HeadlessSurfaceCreateFlagsEXT -> Int #

isSigned :: HeadlessSurfaceCreateFlagsEXT -> Bool #

shiftL :: HeadlessSurfaceCreateFlagsEXT -> Int -> HeadlessSurfaceCreateFlagsEXT #

unsafeShiftL :: HeadlessSurfaceCreateFlagsEXT -> Int -> HeadlessSurfaceCreateFlagsEXT #

shiftR :: HeadlessSurfaceCreateFlagsEXT -> Int -> HeadlessSurfaceCreateFlagsEXT #

unsafeShiftR :: HeadlessSurfaceCreateFlagsEXT -> Int -> HeadlessSurfaceCreateFlagsEXT #

rotateL :: HeadlessSurfaceCreateFlagsEXT -> Int -> HeadlessSurfaceCreateFlagsEXT #

rotateR :: HeadlessSurfaceCreateFlagsEXT -> Int -> HeadlessSurfaceCreateFlagsEXT #

popCount :: HeadlessSurfaceCreateFlagsEXT -> Int #

FiniteBits HeadlessSurfaceCreateFlagsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_headless_surface

Zero HeadlessSurfaceCreateFlagsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_headless_surface

type EXT_HEADLESS_SURFACE_EXTENSION_NAME = "VK_EXT_headless_surface" Source #

pattern EXT_HEADLESS_SURFACE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #

newtype SurfaceKHR Source #

Constructors

SurfaceKHR Word64 

Instances

Instances details
Eq SurfaceKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Ord SurfaceKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Show SurfaceKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Storable SurfaceKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Zero SurfaceKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

HasObjectType SurfaceKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

IsHandle SurfaceKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles