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

Vulkan.Extensions.VK_NN_vi_surface

Description

Name

VK_NN_vi_surface - instance extension

VK_NN_vi_surface

Name String
VK_NN_vi_surface
Extension Type
Instance extension
Registered Extension Number
63
Revision
1
Extension and Version Dependencies
  • Requires support for Vulkan 1.0
  • Requires VK_KHR_surface to be enabled
Contact
  • Mathias Heyer mheyer

Other Extension Metadata

Last Modified Date
2016-12-02
IP Status
No known IP claims.
Contributors
  • Mathias Heyer, NVIDIA
  • Michael Chock, NVIDIA
  • Yasuhiro Yoshioka, Nintendo
  • Daniel Koch, NVIDIA

Description

The VK_NN_vi_surface extension is an instance extension. It provides a mechanism to create a SurfaceKHR object (defined by the VK_KHR_surface extension) associated with an nn::vi::Layer.

New Commands

New Structures

New Bitmasks

New Enum Constants

Issues

1) Does VI need a way to query for compatibility between a particular physical device (and queue family?) and a specific VI display?

RESOLVED: No. It is currently always assumed that the device and display will always be compatible.

2) ViSurfaceCreateInfoNN::pWindow is intended to store an nn::vi::NativeWindowHandle, but its declared type is a bare void* to store the window handle. Why the discrepancy?

RESOLVED: It is for C compatibility. The definition for the VI native window handle type is defined inside the nn::vi C++ namespace. This prevents its use in C source files. nn::vi::NativeWindowHandle is always defined to be void*, so this extension uses void* to match.

Version History

  • Revision 1, 2016-12-2 (Michael Chock)

    • Initial draft.

See Also

ViSurfaceCreateFlagsNN, ViSurfaceCreateInfoNN, createViSurfaceNN

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

createViSurfaceNN Source #

Arguments

:: forall io. MonadIO io 
=> Instance

instance is the instance with which to associate the surface.

-> ViSurfaceCreateInfoNN

pCreateInfo is a pointer to a ViSurfaceCreateInfoNN 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 

vkCreateViSurfaceNN - Create a SurfaceKHR object for a VI layer

Description

During the lifetime of a surface created using a particular nn::vi::NativeWindowHandle, applications must not attempt to create another surface for the same nn::vi::Layer or attempt to connect to the same nn::vi::Layer through other platform mechanisms.

If the native window is created with a specified size, currentExtent will reflect that size. In this case, applications should use the same size for the swapchain’s imageExtent. Otherwise, the currentExtent will have the special value (0xFFFFFFFF, 0xFFFFFFFF), indicating that applications are expected to choose an appropriate size for the swapchain’s imageExtent (e.g., by matching the result of a call to nn::vi::GetDisplayResolution).

Valid Usage (Implicit)

  • instance must be a valid Instance handle

Return Codes

Success
Failure

See Also

VK_NN_vi_surface, AllocationCallbacks, Instance, SurfaceKHR, ViSurfaceCreateInfoNN

data ViSurfaceCreateInfoNN Source #

VkViSurfaceCreateInfoNN - Structure specifying parameters of a newly created VI surface object

Valid Usage (Implicit)

See Also

VK_NN_vi_surface, StructureType, ViSurfaceCreateFlagsNN, createViSurfaceNN

Constructors

ViSurfaceCreateInfoNN 

Fields

  • flags :: ViSurfaceCreateFlagsNN

    flags is reserved for future use.

    flags must be 0

  • window :: Ptr ()

    window is the nn::vi::NativeWindowHandle for the nn::vi::Layer with which to associate the surface.

    window must be a valid nn::vi::NativeWindowHandle

Instances

Instances details
Storable ViSurfaceCreateInfoNN Source # 
Instance details

Defined in Vulkan.Extensions.VK_NN_vi_surface

Show ViSurfaceCreateInfoNN Source # 
Instance details

Defined in Vulkan.Extensions.VK_NN_vi_surface

FromCStruct ViSurfaceCreateInfoNN Source # 
Instance details

Defined in Vulkan.Extensions.VK_NN_vi_surface

ToCStruct ViSurfaceCreateInfoNN Source # 
Instance details

Defined in Vulkan.Extensions.VK_NN_vi_surface

Zero ViSurfaceCreateInfoNN Source # 
Instance details

Defined in Vulkan.Extensions.VK_NN_vi_surface

newtype ViSurfaceCreateFlagsNN Source #

VkViSurfaceCreateFlagsNN - Reserved for future use

Description

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

See Also

VK_NN_vi_surface, ViSurfaceCreateInfoNN

Instances

Instances details
Storable ViSurfaceCreateFlagsNN Source # 
Instance details

Defined in Vulkan.Extensions.VK_NN_vi_surface

Bits ViSurfaceCreateFlagsNN Source # 
Instance details

Defined in Vulkan.Extensions.VK_NN_vi_surface

FiniteBits ViSurfaceCreateFlagsNN Source # 
Instance details

Defined in Vulkan.Extensions.VK_NN_vi_surface

Read ViSurfaceCreateFlagsNN Source # 
Instance details

Defined in Vulkan.Extensions.VK_NN_vi_surface

Show ViSurfaceCreateFlagsNN Source # 
Instance details

Defined in Vulkan.Extensions.VK_NN_vi_surface

Eq ViSurfaceCreateFlagsNN Source # 
Instance details

Defined in Vulkan.Extensions.VK_NN_vi_surface

Ord ViSurfaceCreateFlagsNN Source # 
Instance details

Defined in Vulkan.Extensions.VK_NN_vi_surface

Zero ViSurfaceCreateFlagsNN Source # 
Instance details

Defined in Vulkan.Extensions.VK_NN_vi_surface

pattern NN_VI_SURFACE_SPEC_VERSION :: forall a. Integral a => a Source #

type NN_VI_SURFACE_EXTENSION_NAME = "VK_NN_vi_surface" Source #

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

newtype SurfaceKHR Source #

Constructors

SurfaceKHR Word64 

Instances

Instances details
Storable SurfaceKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Show SurfaceKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Eq SurfaceKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Ord 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

Zero SurfaceKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles