To remove an unnecessary compile time dependency, an incomplete type definition of CAMetalLayer is provided in the Vulkan headers:
// Provided by VK_EXT_metal_surface #ifdef __OBJC__ @class CAMetalLayer; #else typedef void CAMetalLayer; #endif
The actual CAMetalLayer type is defined in the QuartzCore framework.
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.