// Copyright 2014-2021 The Khronos Group, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

[[platformCreateSurface_android,platformCreateSurface_android]]
=== Android Platform

[open,refpage='vkCreateAndroidSurfaceKHR',desc='Create a slink:VkSurfaceKHR object for an Android native window',type='protos']
--
To create a sname:VkSurfaceKHR object for an Android native window, call:

include::{generated}/api/protos/vkCreateAndroidSurfaceKHR.txt[]

  * pname:instance is the instance to associate the surface with.
  * pname:pCreateInfo is a pointer to a sname:VkAndroidSurfaceCreateInfoKHR
    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 is a pointer to a slink:VkSurfaceKHR handle in which the
    created surface object is returned.

During the lifetime of a surface created using a particular
basetype:ANativeWindow handle any attempts to create another surface for the
same basetype:ANativeWindow and any attempts to connect to the same
basetype:ANativeWindow through other platform mechanisms will fail.

[NOTE]
.Note
====
In particular, only one sname:VkSurfaceKHR can: exist at a time for a given
window.
Similarly, a native window cannot: be used by both a sname:VkSurfaceKHR and
code:EGLSurface simultaneously.
====

If successful, fname:vkCreateAndroidSurfaceKHR increments the
basetype:ANativeWindow's reference count, and fname:vkDestroySurfaceKHR will
decrement it.

On Android, when a swapchain's pname:imageExtent does not match the
surface's pname:currentExtent, the presentable images will be scaled to the
surface's dimensions during presentation.
pname:minImageExtent is [eq]#(1,1)#, and pname:maxImageExtent is the maximum
image size supported by the consumer.
For the system compositor, pname:currentExtent is the window size (i.e. the
consumer's preferred size).

include::{generated}/validity/protos/vkCreateAndroidSurfaceKHR.txt[]
--

[open,refpage='VkAndroidSurfaceCreateInfoKHR',desc='Structure specifying parameters of a newly created Android surface object',type='structs']
--
The sname:VkAndroidSurfaceCreateInfoKHR structure is defined as:

include::{generated}/api/structs/VkAndroidSurfaceCreateInfoKHR.txt[]

  * pname:sType is the type of this structure.
  * pname:pNext is `NULL` or a pointer to a structure extending this
    structure.
  * pname:flags is reserved for future use.
  * pname:window is a pointer to the basetype:ANativeWindow to associate the
    surface with.

.Valid Usage
****
  * [[VUID-VkAndroidSurfaceCreateInfoKHR-window-01248]]
    pname:window must: point to a valid Android basetype:ANativeWindow
****

include::{generated}/validity/structs/VkAndroidSurfaceCreateInfoKHR.txt[]
--

[open,refpage='ANativeWindow',desc='Android native window type',type='basetypes']
--
To remove an unnecessary compile-time dependency, an incomplete type
definition of basetype:ANativeWindow is provided in the Vulkan headers:

include::{generated}/api/basetypes/ANativeWindow.txt[]

The actual basetype:ANativeWindow type is defined in Android NDK headers.
--

[open,refpage='VkAndroidSurfaceCreateFlagsKHR',desc='Reserved for future use',type='flags']
--
include::{generated}/api/flags/VkAndroidSurfaceCreateFlagsKHR.txt[]

tname:VkAndroidSurfaceCreateFlagsKHR is a bitmask type for setting a mask,
but is currently reserved for future use.
--
