summaryrefslogtreecommitdiffstats
path: root/platform/ios/vulkan_context_ios.mm
diff options
context:
space:
mode:
Diffstat (limited to 'platform/ios/vulkan_context_ios.mm')
-rw-r--r--platform/ios/vulkan_context_ios.mm15
1 files changed, 7 insertions, 8 deletions
diff --git a/platform/ios/vulkan_context_ios.mm b/platform/ios/vulkan_context_ios.mm
index 56f1894e06..014e05f2e6 100644
--- a/platform/ios/vulkan_context_ios.mm
+++ b/platform/ios/vulkan_context_ios.mm
@@ -42,16 +42,15 @@ const char *VulkanContextIOS::_get_platform_surface_extension() const {
return VK_MVK_IOS_SURFACE_EXTENSION_NAME;
}
-Error VulkanContextIOS::window_create(DisplayServer::WindowID p_window_id, DisplayServer::VSyncMode p_vsync_mode, CALayer *p_metal_layer, int p_width, int p_height) {
- VkIOSSurfaceCreateInfoMVK createInfo;
+Error VulkanContextIOS::window_create(DisplayServer::WindowID p_window_id, DisplayServer::VSyncMode p_vsync_mode, int p_width, int p_height, const void *p_platform_data) {
+ const WindowPlatformData *wpd = (const WindowPlatformData *)p_platform_data;
+
+ VkIOSSurfaceCreateInfoMVK createInfo = {};
createInfo.sType = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK;
- createInfo.pNext = nullptr;
- createInfo.flags = 0;
- createInfo.pView = (__bridge const void *)p_metal_layer;
+ createInfo.pView = (__bridge const void *)(*wpd->layer_ptr);
- VkSurfaceKHR surface;
- VkResult err =
- vkCreateIOSSurfaceMVK(get_instance(), &createInfo, nullptr, &surface);
+ VkSurfaceKHR surface = VK_NULL_HANDLE;
+ VkResult err = vkCreateIOSSurfaceMVK(get_instance(), &createInfo, nullptr, &surface);
ERR_FAIL_COND_V(err, ERR_CANT_CREATE);
return _window_create(p_window_id, p_vsync_mode, surface, p_width, p_height);