1#[cfg(all(feature = "wgpu-27", any(feature = "wgpu-28", feature = "wgpu-29")))]
54compile_error!(
55 "Features `wgpu-27`, `wgpu-28`, and `wgpu-29` are mutually exclusive; enable only one."
56);
57#[cfg(all(feature = "wgpu-28", feature = "wgpu-29"))]
58compile_error!(
59 "Features `wgpu-27`, `wgpu-28`, and `wgpu-29` are mutually exclusive; enable only one."
60);
61#[cfg(not(any(feature = "wgpu-27", feature = "wgpu-28", feature = "wgpu-29")))]
62compile_error!(
63 "Either feature `wgpu-27`, `wgpu-28`, or `wgpu-29` must be enabled for dear-imgui-wgpu."
64);
65
66#[cfg(all(feature = "wgpu-27", feature = "webgl"))]
67compile_error!(
68 "Feature `webgl` selects the wgpu-29 WebGL route; use `webgl-wgpu27` with `wgpu-27`."
69);
70#[cfg(all(feature = "wgpu-27", feature = "webgpu"))]
71compile_error!(
72 "Feature `webgpu` selects the wgpu-29 WebGPU route; use `webgpu-wgpu27` with `wgpu-27`."
73);
74#[cfg(all(feature = "wgpu-28", feature = "webgl"))]
75compile_error!(
76 "Feature `webgl` selects the wgpu-29 WebGL route; use `webgl-wgpu28` with `wgpu-28`."
77);
78#[cfg(all(feature = "wgpu-28", feature = "webgpu"))]
79compile_error!(
80 "Feature `webgpu` selects the wgpu-29 WebGPU route; use `webgpu-wgpu28` with `wgpu-28`."
81);
82#[cfg(all(feature = "wgpu-28", feature = "webgl-wgpu27"))]
83compile_error!(
84 "Feature `webgl-wgpu27` is incompatible with `wgpu-28` (would pull multiple wgpu majors)."
85);
86#[cfg(all(feature = "wgpu-28", feature = "webgpu-wgpu27"))]
87compile_error!(
88 "Feature `webgpu-wgpu27` is incompatible with `wgpu-28` (would pull multiple wgpu majors)."
89);
90#[cfg(all(feature = "wgpu-27", feature = "webgl-wgpu28"))]
91compile_error!(
92 "Feature `webgl-wgpu28` is incompatible with `wgpu-27` (would pull multiple wgpu majors)."
93);
94#[cfg(all(feature = "wgpu-27", feature = "webgpu-wgpu28"))]
95compile_error!(
96 "Feature `webgpu-wgpu28` is incompatible with `wgpu-27` (would pull multiple wgpu majors)."
97);
98#[cfg(all(feature = "wgpu-29", feature = "webgl-wgpu27"))]
99compile_error!(
100 "Feature `webgl-wgpu27` is incompatible with `wgpu-29` (would pull multiple wgpu majors)."
101);
102#[cfg(all(feature = "wgpu-29", feature = "webgpu-wgpu27"))]
103compile_error!(
104 "Feature `webgpu-wgpu27` is incompatible with `wgpu-29` (would pull multiple wgpu majors)."
105);
106#[cfg(all(feature = "wgpu-29", feature = "webgl-wgpu28"))]
107compile_error!(
108 "Feature `webgl-wgpu28` is incompatible with `wgpu-29` (would pull multiple wgpu majors)."
109);
110#[cfg(all(feature = "wgpu-29", feature = "webgpu-wgpu28"))]
111compile_error!(
112 "Feature `webgpu-wgpu28` is incompatible with `wgpu-29` (would pull multiple wgpu majors)."
113);
114#[cfg(all(feature = "wgpu-27", feature = "webgl-wgpu29"))]
115compile_error!(
116 "Feature `webgl-wgpu29` is incompatible with `wgpu-27` (would pull multiple wgpu majors)."
117);
118#[cfg(all(feature = "wgpu-27", feature = "webgpu-wgpu29"))]
119compile_error!(
120 "Feature `webgpu-wgpu29` is incompatible with `wgpu-27` (would pull multiple wgpu majors)."
121);
122#[cfg(all(feature = "wgpu-28", feature = "webgl-wgpu29"))]
123compile_error!(
124 "Feature `webgl-wgpu29` is incompatible with `wgpu-28` (would pull multiple wgpu majors)."
125);
126#[cfg(all(feature = "wgpu-28", feature = "webgpu-wgpu29"))]
127compile_error!(
128 "Feature `webgpu-wgpu29` is incompatible with `wgpu-28` (would pull multiple wgpu majors)."
129);
130
131#[cfg(feature = "wgpu-27")]
132pub extern crate wgpu27 as wgpu;
133#[cfg(feature = "wgpu-28")]
134pub extern crate wgpu28 as wgpu;
135#[cfg(feature = "wgpu-29")]
136pub extern crate wgpu29 as wgpu;
137
138mod data;
140mod error;
141mod frame_resources;
142mod render_resources;
143mod renderer;
144mod shaders;
145mod texture;
146mod uniforms;
147
148pub use data::*;
150pub use error::*;
151pub use frame_resources::*;
152pub use render_resources::*;
153pub use renderer::*;
154pub use shaders::*;
155pub use texture::*;
156pub use uniforms::*;
157
158#[cfg(feature = "multi-viewport-winit")]
160pub use renderer::multi_viewport;
161#[cfg(feature = "multi-viewport-sdl3")]
162pub use renderer::multi_viewport_sdl3;
163
164#[derive(Debug, Clone, Copy, PartialEq, Eq)]
166pub enum GammaMode {
167 Auto,
169 Linear,
171 Gamma22,
173}