// Copyright (c) 2015-2018 The Brenwill Workshop Ltd.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_MVK_macos_surface.txt[]

=== Other Extension Metadata

*Last Modified Date*::
    2020-07-31
*IP Status*::
    No known IP claims.
*Contributors*::
  - Bill Hollings, The Brenwill Workshop Ltd.

=== Description

The `VK_MVK_macos_surface` extension is an instance extension.
It provides a mechanism to create a slink:VkSurfaceKHR object (defined by
the `apiext:VK_KHR_surface` extension) based on an code:NSView, the native
surface type of macOS, which is underpinned by a basetype:CAMetalLayer, to
support rendering to the surface using Apple's Metal framework.

ifdef::VK_EXT_metal_surface[]
=== Deprecation by `VK_EXT_metal_surface`

The `VK_MVK_macos_surface` extension is considered deprecated and has been
superseded by the `apiext:VK_EXT_metal_surface` extension.
endif::VK_EXT_metal_surface[]

include::{generated}/interfaces/VK_MVK_macos_surface.txt[]

=== Version History

 * Revision 1, 2017-02-15 (Bill Hollings)
   - Initial draft.

 * Revision 2, 2017-02-24 (Bill Hollings)
   - Minor syntax fix to emphasize firm requirement for `NSView` to be
     backed by a `CAMetalLayer`.

 * Revision 3, 2020-07-31 (Bill Hollings)
   - Update documentation on requirements for `NSView`.
   - Mark as deprecated by `VK_EXT_metal_surface`.
