1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//! # shdrlib - Three-Tier Vulkan Shader Compilation and Rendering Framework
//!
//! A Rust-based Vulkan shader compilation and rendering framework with three abstraction levels:
//!
//! - **CORE (Tier 0)**: Thin wrappers around `ash` and shader compilers
//! - **EX (Tier 1)**: Explicit, ergonomic managers with safe lifetime management
//! - **EZ (Tier 2)**: High-level abstractions with sensible defaults
//!
//! ## Getting Started
//!
//! Start with the CORE tier for maximum control, or jump to EZ for rapid development.
//! All tiers compile to zero-cost abstractions.
//!
//! ## Using EX Tier (Recommended for Most Users)
//!
//! ```rust,no_run
//! use shdrlib::ex::*;
//!
//! # fn main() -> Result<(), Box<dyn std::error::Error>> {
//! // Setup (5 lines vs 80+ in CORE)
//! let mut runtime = RuntimeManager::new(RuntimeConfig::default())?;
//! let device = runtime.device();
//! let mut shaders = ShaderManager::new(device)?;
//!
//! // Load and compile shaders
//! // let vert_id = shaders.add_shader(VERT_SRC, ShaderStage::Vertex, "vert")?;
//! // let frag_id = shaders.add_shader(FRAG_SRC, ShaderStage::Fragment, "frag")?;
//!
//! // Cleanup is automatic!
//! # Ok(())
//! # }
//! ```
// Re-export core for convenience
pub use crate*;