pub mod backend;
pub mod renderer;
pub mod compute;
pub mod shader_translate;
pub mod abstraction;
pub mod quality;
pub mod headless;
pub use backend::{
GpuBackend, BackendCapabilities, BackendContext, BufferHandle, TextureHandle,
ShaderHandle, PipelineHandle, ComputePipelineHandle, BufferUsage, TextureFormat,
ShaderStage,
};
pub use renderer::MultiBackendRenderer;
pub use compute::ComputeContext;
pub use shader_translate::ShaderLanguage;
pub use abstraction::{GpuDevice, GpuQueue};
pub use quality::{QualityLevel, QualityManager};
pub use headless::HeadlessRenderer;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn smoke_test_module_imports() {
let _backend = GpuBackend::Software;
let _level = QualityLevel::Medium;
let _lang = ShaderLanguage::GLSL;
}
#[test]
fn detect_backend_returns_something() {
let b = backend::detect_backend();
assert!(matches!(
b,
GpuBackend::OpenGL
| GpuBackend::Vulkan
| GpuBackend::Metal
| GpuBackend::WebGPU
| GpuBackend::Software
));
}
}