| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
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 Vulkan 1.0
- Requires
VK_KHR_surface
- Contact
- Mathias Heyer
mheyer
- Mathias Heyer
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
Arguments
| :: 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)
-
instancemust be a validInstancehandle
-
pCreateInfomust be a valid pointer to a validViSurfaceCreateInfoNNstructure - If
pAllocatoris notNULL,pAllocatormust be a valid pointer to a validAllocationCallbacksstructure -
pSurfacemust be a valid pointer to aSurfaceKHRhandle
Return Codes
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
| |
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
Constructors
| ViSurfaceCreateFlagsNN Flags |
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
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 |