// SPDX-License-Identifier: AGPL-3.0-only use crate::error::RendererError; use ash::{Entry, Instance, khr, vk}; use raw_window_handle::{RawDisplayHandle, RawWindowHandle}; /// Creates a Vulkan surface for the given window. pub fn create_surface( entry: &Entry, instance: &Instance, display_handle: RawDisplayHandle, window_handle: RawWindowHandle, ) -> Result<(khr::surface::Instance, vk::SurfaceKHR), RendererError> { let surface = unsafe { ash_window::create_surface(entry, instance, display_handle, window_handle, None)? }; let surface_loader = khr::surface::Instance::new(entry, instance); Ok((surface_loader, surface)) }