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