diff --git a/src/ui.rs b/src/ui.rs index 57721c8..6a079db 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -69,6 +69,16 @@ impl Drop for Ui { pub fn sdl_init(flag: sdl3_sys::init::SDL_InitFlags) { unsafe { + #[cfg(target_os = "macos")] + if flag & sdl3_sys::init::SDL_INIT_VIDEO != 0 { + sdl3_sys::everything::SDL_SetHint( + sdl3_sys::hints::SDL_HINT_VULKAN_LIBRARY, + std::ffi::CString::new("/opt/homebrew/lib/libvulkan.dylib") + .unwrap() + .as_ptr(), + ); + } + if sdl3_sys::init::SDL_WasInit(flag) == 0 && !sdl3_sys::init::SDL_InitSubSystem(flag) { let err = std::ffi::CStr::from_ptr(sdl3_sys::error::SDL_GetError()) .to_str() diff --git a/src/ui/video.rs b/src/ui/video.rs index 810ec94..28e3660 100644 --- a/src/ui/video.rs +++ b/src/ui/video.rs @@ -3,16 +3,6 @@ include!(concat!(env!("OUT_DIR"), "/parallel_bindings.rs")); use crate::{device, ui}; pub fn init(device: &mut device::Device) { - #[cfg(target_os = "macos")] - unsafe { - sdl3_sys::everything::SDL_SetHint( - sdl3_sys::hints::SDL_HINT_VULKAN_LIBRARY, - std::ffi::CString::new("/opt/homebrew/lib/libvulkan.dylib") - .unwrap() - .as_ptr(), - ); - } - ui::sdl_init(sdl3_sys::init::SDL_INIT_VIDEO); ui::ttf_init();