Safe Haskell | None |
---|---|
Language | Haskell2010 |
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 Vulkan 1.0
- Requires
VK_KHR_surface
- 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
- createViSurfaceNN :: forall io. MonadIO io => Instance -> ViSurfaceCreateInfoNN -> ("allocator" ::: Maybe AllocationCallbacks) -> io SurfaceKHR
- data ViSurfaceCreateInfoNN = ViSurfaceCreateInfoNN {
- flags :: ViSurfaceCreateFlagsNN
- window :: Ptr ()
- newtype ViSurfaceCreateFlagsNN = ViSurfaceCreateFlagsNN Flags
- type NN_VI_SURFACE_SPEC_VERSION = 1
- pattern NN_VI_SURFACE_SPEC_VERSION :: forall a. Integral a => a
- type NN_VI_SURFACE_EXTENSION_NAME = "VK_NN_vi_surface"
- pattern NN_VI_SURFACE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
- newtype SurfaceKHR = SurfaceKHR Word64
Documentation
:: forall io. MonadIO io | |
=> Instance |
|
-> ViSurfaceCreateInfoNN |
|
-> ("allocator" ::: Maybe AllocationCallbacks) |
|
-> 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 validInstance
handle
-
pCreateInfo
must be a valid pointer to a validViSurfaceCreateInfoNN
structure - If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validAllocationCallbacks
structure -
pSurface
must be a valid pointer to aSurfaceKHR
handle
Return Codes
See Also
AllocationCallbacks
,
Instance
,
SurfaceKHR
, ViSurfaceCreateInfoNN
data ViSurfaceCreateInfoNN Source #
VkViSurfaceCreateInfoNN - Structure specifying parameters of a newly created VI surface object
Valid Usage (Implicit)
See Also
Instances
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
Instances
type NN_VI_SURFACE_SPEC_VERSION = 1 Source #
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 #
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