private void CreateSurface() { #if WIN var createInfo = new SharpVulkan.Win32SurfaceCreateInfo { StructureType = SharpVulkan.StructureType.Win32SurfaceCreateInfo, InstanceHandle = Process.GetCurrentProcess().Handle, WindowHandle = windowHandle }; surface = context.Instance.CreateWin32Surface(createInfo); #elif MAC var createInfo = new SharpVulkan.MacOSSurfaceCreateInfo { StructureType = SharpVulkan.StructureType.MacOSSurfaceCreateInfo, View = windowHandle }; surface = context.Instance.CreateMacOSSurface(ref createInfo); #elif iOS var createInfo = new SharpVulkan.IOSSurfaceCreateInfo { StructureType = SharpVulkan.StructureType.IOSSurfaceCreateInfo, View = windowHandle }; surface = context.Instance.CreateIOSSurface(ref createInfo); #endif if (!context.PhysicalDevice.GetSurfaceSupport(context.QueueFamilyIndex, surface)) { throw new NotSupportedException(); } }
private void DestroySurface() { if (surface != SharpVulkan.Surface.Null) { context.Finish(); context.Instance.DestroySurface(surface); surface = SharpVulkan.Surface.Null; } }