1#![warn(missing_docs)]
2#![warn(unreachable_pub)]
3
4mod debug;
9pub mod errors;
11mod gpu_data;
12pub mod mesh;
14pub mod object;
16pub mod settings;
18mod shader;
19mod traits;
20mod vulkan;
21
22use std::sync::Arc;
23
24pub use gpu_data::*;
25use raw_window_handle::{HasDisplayHandle, HasWindowHandle};
26pub use settings::GraphicsApiInitSettings;
27pub use shader::{Shader, ShaderStage};
28pub use traits::*;
29
30use crate::{errors::GraphicsResult, vulkan::VulkanEntry};
31
32pub fn init_api_instance_with_presentation<T: HasWindowHandle + HasDisplayHandle>(
38 settings: &GraphicsApiInitSettings,
39 window: &T,
40) -> GraphicsResult<Arc<dyn traits::GraphicsApi>> {
41 VulkanEntry::with_presentation(settings, window)
42}