[[platformCreateSurface_ios,platformCreateSurface_ios]]

=== iOS Platform

// refBegin vkCreateIOSSurfaceMVK - Create a slink:VkSurfaceKHR object for an iOS UIView

To create a sname:VkSurfaceKHR object for an iOS code:UIView, call:

include::../../api/protos/vkCreateIOSSurfaceMVK.txt[]

  * pname:instance is the instance with which to associate the surface.
  * pname:pCreateInfo is a pointer to an instance of the
    sname:VkIOSSurfaceCreateInfoMVK structure containing parameters
    affecting the creation of the surface object.
  * pname:pAllocator is the allocator used for host memory allocated for the
    surface object when there is no more specific allocator available (see
    <<memory-allocation,Memory Allocation>>).
  * pname:pSurface points to a sname:VkSurfaceKHR handle in which the
    created surface object is returned.

include::../../validity/protos/vkCreateIOSSurfaceMVK.txt[]

// refBegin VkIOSSurfaceCreateInfoMVK - Structure specifying parameters of a newly created iOS surface object

The sname:VkIOSSurfaceCreateInfoMVK structure is defined as:

include::../../api/structs/VkIOSSurfaceCreateInfoMVK.txt[]

  * pname:sType is the type of this structure.
  * pname:pNext is `NULL` or a pointer to an extension-specific structure.
  * pname:flags is reserved for future use.
  * pname:pView is a reference to a code:UIView object which will display
    this surface.
    This code:UIView must: be backed by a code:CALayer instance of type
    code:CAMetalLayer.

.Valid Usage
****
  * [[VUID-VkIOSSurfaceCreateInfoMVK-pView-01316]]
    pname:pView must: be a valid code:UIView and must: be backed by a
    code:CALayer instance of type code:CAMetalLayer.
****

include::../../validity/structs/VkIOSSurfaceCreateInfoMVK.txt[]

