#[cfg(all(feature = "wgpu-27", feature = "wgpu-28"))]
compile_error!("Features `wgpu-27` and `wgpu-28` are mutually exclusive; enable only one.");
#[cfg(not(any(feature = "wgpu-27", feature = "wgpu-28")))]
compile_error!("Either feature `wgpu-27` or `wgpu-28` must be enabled for dear-imgui-wgpu.");
#[cfg(all(feature = "wgpu-27", feature = "webgl"))]
compile_error!(
"Feature `webgl` selects the wgpu-28 WebGL route; use `webgl-wgpu27` with `wgpu-27`."
);
#[cfg(all(feature = "wgpu-27", feature = "webgpu"))]
compile_error!(
"Feature `webgpu` selects the wgpu-28 WebGPU route; use `webgpu-wgpu27` with `wgpu-27`."
);
#[cfg(all(feature = "wgpu-28", feature = "webgl-wgpu27"))]
compile_error!(
"Feature `webgl-wgpu27` is incompatible with `wgpu-28` (would pull multiple wgpu majors)."
);
#[cfg(all(feature = "wgpu-28", feature = "webgpu-wgpu27"))]
compile_error!(
"Feature `webgpu-wgpu27` is incompatible with `wgpu-28` (would pull multiple wgpu majors)."
);
#[cfg(all(feature = "wgpu-27", feature = "webgl-wgpu28"))]
compile_error!(
"Feature `webgl-wgpu28` is incompatible with `wgpu-27` (would pull multiple wgpu majors)."
);
#[cfg(all(feature = "wgpu-27", feature = "webgpu-wgpu28"))]
compile_error!(
"Feature `webgpu-wgpu28` is incompatible with `wgpu-27` (would pull multiple wgpu majors)."
);
#[cfg(feature = "wgpu-27")]
extern crate wgpu27 as wgpu;
#[cfg(feature = "wgpu-28")]
extern crate wgpu28 as wgpu;
mod data;
mod error;
mod frame_resources;
mod render_resources;
mod renderer;
mod shaders;
mod texture;
mod uniforms;
pub use data::*;
pub use error::*;
pub use frame_resources::*;
pub use render_resources::*;
pub use renderer::*;
pub use shaders::*;
pub use texture::*;
pub use uniforms::*;
#[cfg(feature = "multi-viewport-winit")]
pub use renderer::multi_viewport;
#[cfg(feature = "multi-viewport-sdl3")]
pub use renderer::multi_viewport_sdl3;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum GammaMode {
Auto,
Linear,
Gamma22,
}