├── .gitignore ├── screenshot.png ├── examples ├── circle.wgsl ├── mandelbrot.wgsl ├── gradients.wgsl ├── uniforms.wgsl ├── gradients2.wgsl └── overlapping_circles.wgsl ├── src ├── vertex.wgsl ├── frag.default.wgsl └── main.rs ├── Cargo.toml ├── README.md └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/paulgb/wgsl-playground/HEAD/screenshot.png -------------------------------------------------------------------------------- /examples/circle.wgsl: -------------------------------------------------------------------------------- 1 | struct VertexOutput { 2 | @builtin(position) position: vec4, 3 | @location(0) coord: vec2, 4 | }; 5 | 6 | @fragment 7 | fn fs_main(in: VertexOutput) -> @location(0) vec4 { 8 | let r: f32 = dot(in.coord, in.coord); 9 | 10 | if (r > .95) { 11 | discard; 12 | } 13 | 14 | let normalized = (in.coord + vec2(1., 1.)) / 2.; 15 | return vec4(normalized.rg, 0., 1.0); 16 | } -------------------------------------------------------------------------------- /src/vertex.wgsl: -------------------------------------------------------------------------------- 1 | struct VertexInput { 2 | @builtin(vertex_index) vertex_index: u32, 3 | }; 4 | 5 | struct VertexOutput { 6 | @builtin(position) position: vec4, 7 | @location(0) coord: vec2, 8 | }; 9 | 10 | @vertex 11 | fn vs_main(in: VertexInput) -> VertexOutput { 12 | 13 | var vertices = array, 3>( 14 | vec2(-1., 1.), 15 | vec2(3.0, 1.), 16 | vec2(-1., -3.0), 17 | ); 18 | 19 | var out: VertexOutput; 20 | out.coord =vertices[in.vertex_index]; 21 | out.position = vec4(out.coord, 0.0, 1.0); 22 | 23 | return out; 24 | } -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "wgsl-playground" 3 | version = "0.1.8" 4 | authors = ["Paul Butler "] 5 | edition = "2018" 6 | license = "MIT" 7 | description = "Playground for experimenting with WGSL fragment shaders with live-reloading." 8 | resolver = "2" 9 | repository = "https://github.com/paulgb/wgsl-playground" 10 | 11 | [dependencies] 12 | bytemuck = { version = "1.12.0", features = ["derive"] } 13 | clap = { version = "4.0.19", features = ["derive"] } 14 | futures = "0.3.23" 15 | notify = "4.0.17" 16 | wgpu = { version = "0.17.0", features = ['default', 'naga'] } 17 | winit = "0.27.1" 18 | wgpu-subscriber = "0.1.0" 19 | -------------------------------------------------------------------------------- /examples/mandelbrot.wgsl: -------------------------------------------------------------------------------- 1 | // This is a work in progress. 2 | 3 | struct VertexOutput { 4 | @builtin(position) position: vec4, 5 | @location(0) coord: vec2, 6 | }; 7 | 8 | const ITERATIONS: i32 = 45; 9 | 10 | @fragment 11 | fn fs_main(in: VertexOutput) -> @location(0) vec4 { 12 | let c: vec2 = (in.coord + vec2(-0.5, 0.)) * 1.3; 13 | var x: f32 = 0.; 14 | var y: f32 = 0.; 15 | var i: i32 = 0; 16 | 17 | for (; i < ITERATIONS; i = i + 1) { 18 | if (x*x + y*y > 4.) { 19 | break; 20 | } 21 | let xtemp: f32 = (x * x) - (y * y) + c.x; 22 | y = 2. * x * y + c.y; 23 | x = xtemp; 24 | } 25 | 26 | let frac: f32 = f32(i) / f32(ITERATIONS); 27 | return vec4(frac * 5., frac * 1., frac * 3., 1.0); 28 | } 29 | -------------------------------------------------------------------------------- /examples/gradients.wgsl: -------------------------------------------------------------------------------- 1 | struct VertexOutput { 2 | @builtin(position) position: vec4, 3 | @location(0) coord: vec2, 4 | }; 5 | 6 | struct Uniforms { 7 | mouse: vec2, 8 | time: f32, 9 | }; 10 | 11 | @group(0) @binding(0) 12 | var uniforms: Uniforms; 13 | 14 | @fragment 15 | fn fs_main(in: VertexOutput) -> @location(0) vec4 { 16 | let normalized = (in.coord + vec2(1., 1.)) / 2.; 17 | 18 | let angle = sin(uniforms.time); 19 | let cc = sin(uniforms.time / 1.4 + 0.3); 20 | let r = sin(uniforms.time / 4.4) / 2. + 0.5; 21 | let rot: mat2x2 = mat2x2( 22 | vec2(cos(angle), -sin(angle)), 23 | vec2(sin(angle), cos(angle)) 24 | ); 25 | 26 | let tc: vec2 = rot * in.coord; 27 | 28 | let c = sin(tc.x * 12. * cc) / 2. + 0.5; 29 | let d = sin(tc.y * 12.) / 2. + 0.5; 30 | 31 | return vec4(r, c, d, 1.0); 32 | } -------------------------------------------------------------------------------- /examples/uniforms.wgsl: -------------------------------------------------------------------------------- 1 | struct VertexOutput { 2 | @builtin(position) position: vec4, 3 | @location(0) coord: vec2, 4 | }; 5 | 6 | struct Uniforms { 7 | mouse: vec2, 8 | time: f32, 9 | _pad: f32, 10 | window_size: vec2, 11 | }; 12 | 13 | @group(0) @binding(0) 14 | var uniforms: Uniforms; 15 | 16 | @fragment 17 | fn fs_main(in: VertexOutput) -> @location(0) vec4 { 18 | let aspect = uniforms.window_size.xy * 2.0 / uniforms.window_size.y; 19 | let normalized = (in.coord * aspect + vec2(1., 1.)) / 2.; 20 | let r = 0.25 + 0.25 * sin(uniforms.time); 21 | let delta = abs(uniforms.mouse * aspect - in.coord * aspect - vec2(r/2., r/2.)) % vec2(r, r) - vec2(r / 2., r / 2.); 22 | let c = dot(delta, delta); 23 | 24 | if (c > (r / 100.)) { 25 | discard; 26 | } 27 | 28 | return vec4(1.0, normalized.rg, 1.0); 29 | } -------------------------------------------------------------------------------- /examples/gradients2.wgsl: -------------------------------------------------------------------------------- 1 | struct VertexOutput { 2 | @builtin(position) position: vec4, 3 | @location(0) coord: vec2, 4 | }; 5 | 6 | struct Uniforms { 7 | mouse: vec2, 8 | time: f32, 9 | }; 10 | 11 | @group(0) @binding(0) 12 | var uniforms: Uniforms; 13 | 14 | fn fs_rot(angle: f32) -> mat2x2 { 15 | return mat2x2( 16 | vec2(cos(angle), -sin(angle)), 17 | vec2(sin(angle), cos(angle)), 18 | ); 19 | } 20 | 21 | @fragment 22 | fn fs_main(in: VertexOutput) -> @location(0) vec4 { 23 | let r_angle = sin(uniforms.time / 1.4) / 3.; 24 | let ra = fs_rot(r_angle) * in.coord; 25 | let r = sin(ra.x * 3.) / 2. + 0.5; 26 | 27 | let g_angle = sin(uniforms.time / 1.9) / 2.; 28 | let ga = fs_rot(g_angle) * in.coord; 29 | let g = sin(ga.x * 4.) / 2. + 0.5; 30 | 31 | let b_angle = sin(uniforms.time / 1.6) / 1.2; 32 | let ba = fs_rot(b_angle) * in.coord; 33 | let b = sin(ba.x * 5.) / 2. + 0.5; 34 | 35 | return vec4(r, g, b, 1.0); 36 | } -------------------------------------------------------------------------------- /src/frag.default.wgsl: -------------------------------------------------------------------------------- 1 | struct VertexOutput { 2 | @builtin(position) position: vec4, 3 | @location(0) coord: vec2, 4 | }; 5 | 6 | struct Uniforms { 7 | mouse: vec2, 8 | time: f32, 9 | }; 10 | 11 | @group(0) @binding(0) 12 | var uniforms: Uniforms; 13 | 14 | @fragment 15 | fn fs_main(in: VertexOutput) -> @location(0) vec4 { 16 | // fs_main is run once for every pixel in the image, each frame. 17 | // You can access the pixel's location in two ways: 18 | // - `in.coord` is a vec2 containing the pixel location in clip 19 | // space, i.e. scaled from -1.0 to 1.0 left to right, and 1.0 20 | // to -1 top to bottom. 21 | // - `in.position` is a vec4 containing the pixel location in 22 | // device (i.e. pixel/screen unit) coordinates. 23 | let normalized = (in.coord + vec2(1., 1.)) / 2.; 24 | 25 | // fs_main must return a vec4 representing an RGBA value scaled 26 | // between 0 and 1. E.g. vec4(0., 0., 0., 1.) is black and 27 | // vec4(1., 1., 1., 1.) is white. 28 | //return vec4(normalized.rg, 0., 1.0); 29 | return vec4(1.0, 0.0, 0.0, 1.0); 30 | } -------------------------------------------------------------------------------- /examples/overlapping_circles.wgsl: -------------------------------------------------------------------------------- 1 | struct VertexOutput { 2 | @builtin(position) position: vec4, 3 | @location(0) coord: vec2, 4 | }; 5 | 6 | struct Uniforms { 7 | mouse: vec2, 8 | time: f32, 9 | }; 10 | 11 | @group(0) @binding(0) 12 | var uniforms: Uniforms; 13 | 14 | fn circle(c: vec2, r: f32, probe: vec2) -> bool { 15 | let delta = probe - c; 16 | if (dot(delta, delta) > r * r) { 17 | return false; 18 | } else { 19 | return true; 20 | } 21 | } 22 | 23 | @fragment 24 | fn fs_main(in: VertexOutput) -> @location(0) vec4 { 25 | var c: u32 = 0u; 26 | 27 | var colors: array, 10> = array, 10>( 28 | vec3(0., 0., 0.), 29 | vec3(0.01, 0.01, 0.01), 30 | vec3(0.4, 0.0, 0.0), 31 | vec3(0.5, 0.2, 0.2), 32 | vec3(0.6, 0.5, 0.4), 33 | vec3(0.7, 0.5, 0.3), 34 | vec3(0.9, 0.6, 0.4), 35 | vec3(1., 1., 1.), 36 | vec3(1., 1., 1.), 37 | vec3(1., 1., 1.), 38 | ); 39 | 40 | for (var i: u32 = 1u; i < 500u; i = i + 1u) { 41 | let rx: f32 = fract(sin(f32(i)) * 1000.); 42 | let ry: f32 = fract(sin(f32(i)) * 1001.); 43 | let sx: f32 = fract(sin(f32(i)) * 1009.) - 0.5; 44 | let sy: f32 = fract(sin(f32(i)) * 1011.); 45 | 46 | let xx = fract(rx + sx * uniforms.time / 4.) * 2.4 - 1.2; 47 | let yy = fract(ry + sy * uniforms.time / 4.) * 2.4 - 1.2; 48 | 49 | let r = (fract(sin(f32(i)) * 1044.) + 1. / 2.) * 0.06 + 0.01; 50 | let rr = r * (sin(uniforms.time) + 2.) / 3.; 51 | 52 | if (circle(vec2(xx, yy), rr, in.coord)) { 53 | c = c + 1u; 54 | } 55 | } 56 | 57 | if (c >= 1u && abs(in.coord.y - uniforms.mouse.y) < 0.3 && uniforms.mouse.y < 0.9) { 58 | c = 7u - c; 59 | } 60 | 61 | return vec4(colors[c], 1.0); 62 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # wgsl-playground 2 | 3 | [![crates.io](https://img.shields.io/crates/v/wgsl-playground.svg)](https://crates.io/crates/wgsl-playground) 4 | 5 | This is a simple playground for playing with [WGSL](https://www.w3.org/TR/WGSL/) fragment shaders. 6 | It is invoked by passing it a `wgsl` file. The program then looks for a framgent shader called 7 | `fs_main` in the wgsl file provided and renders it across the window. This is similar to what 8 | [shadertoy](https://www.shadertoy.com/) does, except using WGSL instead of GLSL and on the desktop 9 | rather than in your browser. 10 | 11 | `wgsl-playground` also watches the file for edits. Whenever you save the file, it rebuilds the pipeline 12 | with the updated shader and swaps it into the redraw process. 13 | 14 | Under the hood, it uses [wgpu](https://github.com/gfx-rs/wgpu) for rendering and 15 | [naga](https://github.com/gfx-rs/naga) for validation. 16 | 17 | **Note that WGSL is still an evolving spec.** This tool is for people who want to learn some WSGL 18 | in its current form. 19 | 20 | ![A screenshot showing a grid of circles.](https://raw.githubusercontent.com/paulgb/wgsl-playground/main/screenshot.png) 21 | 22 | A number of examples shaders are in the `examples` directory. The screenshot above shows the `uniforms.wgsl` shader. 23 | 24 | ## Usage 25 | 26 | Install with cargo: 27 | 28 | cargo install wgsl-playground 29 | 30 | To run an existing `.wgsl` file, pass it on the command line: 31 | 32 | wgsl-playground myfragshader.wgsl 33 | 34 | To create a new shader file, pass the `-c` flag and the file name to create. This is useful because 35 | it provides the boilerplate to access uniforms and vertex data. 36 | 37 | ## Environment 38 | 39 | The shader receives the following vertex input: 40 | - The clip space (x, y) coordinate of this fragment as a `vec2` at `location=0`. 41 | - The device coordinate window-relative coordinate of this fragment as a `vec4` at `builtin(position)` (i.e. equivalent to `gl_Position`) 42 | 43 | The following uniforms are also available: 44 | - The clip space (x, y) coordinate of the location of the mouse cursor as a `vec2`. Only updates if the mouse cursor is within the bounds of the window. Starts at `(0.5, 0.5)`. 45 | - The (fractional) number of seconds since the program started as a `f32`. It does *not* reset when the shader is reloaded. 46 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use clap::Parser; 2 | use futures::executor::block_on; 3 | use notify::{RawEvent, RecommendedWatcher, Watcher}; 4 | use std::{ 5 | borrow::Cow, 6 | fs::{read_to_string, OpenOptions}, 7 | io::Write, 8 | path::{Path, PathBuf}, 9 | sync::mpsc::channel, 10 | time::Instant, 11 | }; 12 | use wgpu::{ 13 | util::{BufferInitDescriptor, DeviceExt}, 14 | Adapter, BindGroupDescriptor, BindGroupEntry, BindGroupLayoutDescriptor, BindGroupLayoutEntry, 15 | BufferBindingType, BufferUsages, CommandEncoderDescriptor, CompositeAlphaMode, Device, 16 | DeviceDescriptor, Features, Instance, Limits, LoadOp, Operations, PipelineLayout, 17 | PrimitiveState, Queue, RenderPassColorAttachment, RenderPassDescriptor, RenderPipeline, 18 | RequestAdapterOptions, ShaderModule, ShaderSource, ShaderStages, Surface, SurfaceConfiguration, 19 | TextureFormat, 20 | }; 21 | use winit::event::Event::UserEvent; 22 | use winit::{ 23 | dpi::PhysicalSize, 24 | event::WindowEvent, 25 | event_loop::{ControlFlow, EventLoopBuilder, EventLoopProxy}, 26 | window::{Window, WindowBuilder}, 27 | }; 28 | 29 | #[derive(Debug)] 30 | enum UserEvents { 31 | Reload, 32 | WGPUError, 33 | } 34 | 35 | #[derive(Parser)] 36 | struct Opts { 37 | wgsl_file: PathBuf, 38 | 39 | #[clap(short, long)] 40 | create: bool, 41 | 42 | #[clap(short, long)] 43 | always_on_top: bool, 44 | } 45 | 46 | #[repr(C)] 47 | #[derive(Copy, Clone, Debug, bytemuck::Zeroable, bytemuck::Pod)] 48 | struct Uniforms { 49 | pub mouse: [f32; 2], 50 | pub time: f32, 51 | pub pad: f32, 52 | pub window_size: [f32; 2], 53 | } 54 | 55 | impl Default for Uniforms { 56 | fn default() -> Uniforms { 57 | Uniforms { 58 | time: 0., 59 | mouse: [0.0, 0.0], 60 | pad: 0., 61 | window_size: [0., 0.], 62 | } 63 | } 64 | } 65 | 66 | impl Uniforms { 67 | fn as_bytes(&self) -> &[u8] { 68 | bytemuck::bytes_of(self) 69 | } 70 | } 71 | 72 | struct Playground { 73 | watch_path: PathBuf, 74 | render_pipeline: RenderPipeline, 75 | window: Window, 76 | device: Device, 77 | vertex_shader_module: ShaderModule, 78 | pipeline_layout: PipelineLayout, 79 | swapchain_format: TextureFormat, 80 | surface_config: SurfaceConfiguration, 81 | surface: Surface, 82 | 83 | uniforms: Uniforms, 84 | } 85 | 86 | impl Playground { 87 | fn reload(&mut self) { 88 | println!("Reload."); 89 | 90 | self.recreate_pipeline(); 91 | 92 | self.window.request_redraw(); 93 | } 94 | 95 | fn listen(watch_path: PathBuf, proxy: EventLoopProxy) { 96 | let (tx, rx) = channel(); 97 | 98 | let mut watcher: RecommendedWatcher = Watcher::new_raw(tx).unwrap(); 99 | 100 | watcher 101 | .watch(&watch_path, notify::RecursiveMode::NonRecursive) 102 | .unwrap(); 103 | 104 | loop { 105 | match rx.recv() { 106 | Ok(RawEvent { 107 | path: Some(_), 108 | op: Ok(_), 109 | .. 110 | }) => { 111 | proxy.send_event(UserEvents::Reload).unwrap(); 112 | } 113 | Ok(event) => println!("broken event: {:?}", event), 114 | Err(e) => println!("watch error: {:?}", e), 115 | } 116 | } 117 | } 118 | 119 | async fn get_async_stuff(instance: &Instance, surface: &Surface) -> (Adapter, Device, Queue) { 120 | let adapter = instance 121 | .request_adapter(&RequestAdapterOptions { 122 | power_preference: wgpu::PowerPreference::HighPerformance, 123 | compatible_surface: Some(surface), 124 | force_fallback_adapter: false, 125 | }) 126 | .await 127 | .unwrap(); 128 | 129 | let (device, queue) = adapter 130 | .request_device( 131 | &DeviceDescriptor { 132 | label: None, 133 | features: Features::empty(), 134 | limits: Limits::default(), 135 | }, 136 | None, 137 | ) 138 | .await 139 | .unwrap(); 140 | 141 | (adapter, device, queue) 142 | } 143 | 144 | fn recreate_pipeline(&mut self) { 145 | match Self::create_pipeline( 146 | &self.device, 147 | &self.vertex_shader_module, 148 | &self.pipeline_layout, 149 | self.swapchain_format, 150 | &self.watch_path, 151 | ) { 152 | Ok(render_pipeline) => self.render_pipeline = render_pipeline, 153 | Err(e) => println!("{}", e), 154 | } 155 | } 156 | 157 | fn create_pipeline( 158 | device: &Device, 159 | vertex_shader_module: &ShaderModule, 160 | pipeline_layout: &PipelineLayout, 161 | swapchain_format: TextureFormat, 162 | frag_shader_path: &Path, 163 | ) -> Result { 164 | let frag_wgsl = read_to_string(frag_shader_path).unwrap(); 165 | 166 | let fragement_shader_module = device.create_shader_module(wgpu::ShaderModuleDescriptor { 167 | label: Some("Fragment shader"), 168 | source: ShaderSource::Wgsl(Cow::Owned(frag_wgsl)), 169 | }); 170 | 171 | Ok( 172 | device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { 173 | label: None, 174 | layout: Some(pipeline_layout), 175 | vertex: wgpu::VertexState { 176 | module: vertex_shader_module, 177 | entry_point: "vs_main", 178 | buffers: &[], 179 | }, 180 | primitive: PrimitiveState::default(), 181 | depth_stencil: None, 182 | multisample: wgpu::MultisampleState::default(), 183 | multiview: None, 184 | fragment: Some(wgpu::FragmentState { 185 | module: &fragement_shader_module, 186 | entry_point: "fs_main", 187 | targets: &[Some(swapchain_format.into())], 188 | }), 189 | }), 190 | ) 191 | } 192 | 193 | pub fn resize(&mut self, new_size: &PhysicalSize) { 194 | if new_size.width > 0 && new_size.height > 0 { 195 | self.surface_config.width = new_size.width; 196 | self.surface_config.height = new_size.height; 197 | 198 | self.surface.configure(&self.device, &self.surface_config); 199 | let logical_size = new_size.to_logical(self.window.scale_factor()); 200 | self.uniforms.window_size = [logical_size.width, logical_size.height]; 201 | self.window.request_redraw(); 202 | } 203 | } 204 | 205 | pub fn run(opts: &Opts) { 206 | let event_loop = EventLoopBuilder::::with_user_event().build(); 207 | let proxy = event_loop.create_proxy(); 208 | 209 | { 210 | let watch_path = opts.wgsl_file.clone(); 211 | std::thread::spawn(move || Self::listen(watch_path, proxy)); 212 | } 213 | 214 | let window = WindowBuilder::new() 215 | .with_inner_size(PhysicalSize::new(600, 600)) 216 | .with_title("WGSL Playground") 217 | .build(&event_loop) 218 | .unwrap(); 219 | let size = window.inner_size(); 220 | 221 | window.set_always_on_top(opts.always_on_top); 222 | 223 | let instance = wgpu::Instance::new(wgpu::InstanceDescriptor::default()); 224 | let surface = unsafe { instance.create_surface(&window) }.unwrap(); 225 | let (adapter, device, queue) = block_on(Self::get_async_stuff(&instance, &surface)); 226 | 227 | let mut error_state = false; 228 | 229 | // Handle errors 230 | let proxy = event_loop.create_proxy(); 231 | device.on_uncaptured_error(Box::new(move |error| { 232 | // Sending the event will stop the redraw 233 | proxy.send_event(UserEvents::WGPUError).unwrap(); 234 | if let wgpu::Error::Validation { 235 | source: _, 236 | description, 237 | } = error 238 | { 239 | if let Some(_) = description.find("note: label = `Fragment shader`") { 240 | println!("{}", description); 241 | } 242 | } else { 243 | println!("{}", error); 244 | } 245 | })); 246 | 247 | let vertex_shader_module = device.create_shader_module(wgpu::ShaderModuleDescriptor { 248 | label: Some("Vertex shader"), 249 | source: wgpu::ShaderSource::Wgsl(include_str!("./vertex.wgsl").into()), 250 | }); 251 | 252 | let uniforms = Uniforms::default(); 253 | 254 | let uniforms_buffer = device.create_buffer_init(&BufferInitDescriptor { 255 | label: None, 256 | contents: uniforms.as_bytes(), 257 | usage: BufferUsages::UNIFORM | BufferUsages::COPY_DST, 258 | }); 259 | 260 | let uniforms_buffer_layout = device.create_bind_group_layout(&BindGroupLayoutDescriptor { 261 | label: None, 262 | entries: &[BindGroupLayoutEntry { 263 | binding: 0, 264 | visibility: ShaderStages::FRAGMENT, 265 | count: None, 266 | ty: wgpu::BindingType::Buffer { 267 | ty: BufferBindingType::Uniform, 268 | has_dynamic_offset: false, 269 | min_binding_size: None, 270 | }, 271 | }], 272 | }); 273 | 274 | let pipeline_layout = device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { 275 | label: None, 276 | bind_group_layouts: &[&uniforms_buffer_layout], 277 | push_constant_ranges: &[], 278 | }); 279 | 280 | let caps = surface.get_capabilities(&adapter); 281 | let swapchain_format = caps.formats[0]; 282 | 283 | let render_pipeline = match Self::create_pipeline( 284 | &device, 285 | &vertex_shader_module, 286 | &pipeline_layout, 287 | swapchain_format, 288 | &opts.wgsl_file, 289 | ) { 290 | Ok(render_pipeline) => render_pipeline, 291 | Err(e) => { 292 | println!("Could not start due to error: {}", &e); 293 | return; 294 | } 295 | }; 296 | 297 | let surface_config = SurfaceConfiguration { 298 | usage: wgpu::TextureUsages::RENDER_ATTACHMENT, 299 | format: swapchain_format, 300 | width: size.width, 301 | height: size.height, 302 | present_mode: wgpu::PresentMode::Fifo, 303 | alpha_mode: CompositeAlphaMode::Auto, 304 | view_formats: vec![swapchain_format], 305 | }; 306 | 307 | surface.configure(&device, &surface_config); 308 | 309 | let uniforms_buffer_bind_group = device.create_bind_group(&BindGroupDescriptor { 310 | label: None, 311 | layout: &uniforms_buffer_layout, 312 | entries: &[BindGroupEntry { 313 | binding: 0, 314 | resource: uniforms_buffer.as_entire_binding(), 315 | }], 316 | }); 317 | 318 | let mut playground = Playground { 319 | watch_path: opts.wgsl_file.clone(), 320 | render_pipeline, 321 | window, 322 | device, 323 | swapchain_format: swapchain_format, 324 | pipeline_layout, 325 | vertex_shader_module, 326 | surface_config, 327 | surface, 328 | uniforms, 329 | }; 330 | 331 | let instant = Instant::now(); 332 | event_loop.run(move |event, _, control_flow| match event { 333 | winit::event::Event::WindowEvent { ref event, .. } => match event { 334 | WindowEvent::CloseRequested => *control_flow = ControlFlow::Exit, 335 | WindowEvent::Resized(new_size) => playground.resize(new_size), 336 | WindowEvent::CursorMoved { position, .. } => { 337 | let size = playground.window.inner_size(); 338 | let normalized_x = position.x as f32 / size.width as f32; 339 | let normalized_y = position.y as f32 / size.height as f32; 340 | playground.uniforms.mouse = [normalized_x * 2. - 1., -normalized_y * 2. + 1.]; 341 | } 342 | WindowEvent::ScaleFactorChanged { new_inner_size, .. } => { 343 | playground.resize(new_inner_size) 344 | } 345 | _ => {} 346 | }, 347 | winit::event::Event::RedrawRequested(_) => { 348 | let output_frame = playground.surface.get_current_texture(); 349 | 350 | if output_frame.is_err() { 351 | return; 352 | } 353 | 354 | let output = output_frame.unwrap(); 355 | let view = output 356 | .texture 357 | .create_view(&wgpu::TextureViewDescriptor::default()); 358 | 359 | playground.uniforms.time = instant.elapsed().as_secs_f32(); 360 | queue.write_buffer(&uniforms_buffer, 0, playground.uniforms.as_bytes()); 361 | 362 | let mut encoder = playground 363 | .device 364 | .create_command_encoder(&CommandEncoderDescriptor { label: None }); 365 | 366 | { 367 | let mut render_pass = encoder.begin_render_pass(&RenderPassDescriptor { 368 | label: None, 369 | color_attachments: &[Some(RenderPassColorAttachment { 370 | view: &view, 371 | resolve_target: None, 372 | ops: Operations { 373 | load: LoadOp::Clear(wgpu::Color::BLACK), 374 | store: true, 375 | }, 376 | })], 377 | depth_stencil_attachment: None, 378 | }); 379 | render_pass.set_pipeline(&playground.render_pipeline); 380 | render_pass.set_bind_group(0, &uniforms_buffer_bind_group, &[]); 381 | render_pass.draw(0..3, 0..1); 382 | } 383 | 384 | queue.submit(std::iter::once(encoder.finish())); 385 | output.present(); 386 | } 387 | UserEvent(evt) => match evt { 388 | UserEvents::Reload => { 389 | error_state = false; 390 | playground.reload() 391 | } 392 | UserEvents::WGPUError => { 393 | error_state = true; 394 | } 395 | }, 396 | winit::event::Event::MainEventsCleared => { 397 | if !error_state { 398 | playground.window.request_redraw(); 399 | } 400 | } 401 | _ => {} 402 | }); 403 | } 404 | } 405 | 406 | fn main() { 407 | wgpu_subscriber::initialize_default_subscriber(None); 408 | let opts = Opts::parse(); 409 | 410 | if opts.create { 411 | let mut file = if let Ok(file) = OpenOptions::new() 412 | .write(true) 413 | .create_new(true) 414 | .open(opts.wgsl_file.clone()) 415 | { 416 | file 417 | } else { 418 | println!( 419 | "Couldn't create file {:?}, make sure it doesn't already exist.", 420 | &opts.wgsl_file 421 | ); 422 | return; 423 | }; 424 | file.write_all(include_bytes!("frag.default.wgsl")).unwrap(); 425 | } 426 | 427 | Playground::run(&opts); 428 | } 429 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "addr2line" 7 | version = "0.19.0" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" 10 | dependencies = [ 11 | "gimli", 12 | ] 13 | 14 | [[package]] 15 | name = "adler" 16 | version = "1.0.2" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 19 | 20 | [[package]] 21 | name = "ahash" 22 | version = "0.7.6" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" 25 | dependencies = [ 26 | "getrandom", 27 | "once_cell", 28 | "version_check", 29 | ] 30 | 31 | [[package]] 32 | name = "android_system_properties" 33 | version = "0.1.5" 34 | source = "registry+https://github.com/rust-lang/crates.io-index" 35 | checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" 36 | dependencies = [ 37 | "libc", 38 | ] 39 | 40 | [[package]] 41 | name = "ansi_term" 42 | version = "0.12.1" 43 | source = "registry+https://github.com/rust-lang/crates.io-index" 44 | checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" 45 | dependencies = [ 46 | "winapi 0.3.9", 47 | ] 48 | 49 | [[package]] 50 | name = "arrayref" 51 | version = "0.3.6" 52 | source = "registry+https://github.com/rust-lang/crates.io-index" 53 | checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" 54 | 55 | [[package]] 56 | name = "arrayvec" 57 | version = "0.5.2" 58 | source = "registry+https://github.com/rust-lang/crates.io-index" 59 | checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" 60 | 61 | [[package]] 62 | name = "arrayvec" 63 | version = "0.7.2" 64 | source = "registry+https://github.com/rust-lang/crates.io-index" 65 | checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" 66 | 67 | [[package]] 68 | name = "ash" 69 | version = "0.37.3+1.3.251" 70 | source = "registry+https://github.com/rust-lang/crates.io-index" 71 | checksum = "39e9c3835d686b0a6084ab4234fcd1b07dbf6e4767dce60874b12356a25ecd4a" 72 | dependencies = [ 73 | "libloading", 74 | ] 75 | 76 | [[package]] 77 | name = "autocfg" 78 | version = "1.1.0" 79 | source = "registry+https://github.com/rust-lang/crates.io-index" 80 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" 81 | 82 | [[package]] 83 | name = "backtrace" 84 | version = "0.3.67" 85 | source = "registry+https://github.com/rust-lang/crates.io-index" 86 | checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" 87 | dependencies = [ 88 | "addr2line", 89 | "cc", 90 | "cfg-if 1.0.0", 91 | "libc", 92 | "miniz_oxide", 93 | "object", 94 | "rustc-demangle", 95 | ] 96 | 97 | [[package]] 98 | name = "bit-set" 99 | version = "0.5.3" 100 | source = "registry+https://github.com/rust-lang/crates.io-index" 101 | checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" 102 | dependencies = [ 103 | "bit-vec", 104 | ] 105 | 106 | [[package]] 107 | name = "bit-vec" 108 | version = "0.6.3" 109 | source = "registry+https://github.com/rust-lang/crates.io-index" 110 | checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" 111 | 112 | [[package]] 113 | name = "bitflags" 114 | version = "1.3.2" 115 | source = "registry+https://github.com/rust-lang/crates.io-index" 116 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 117 | 118 | [[package]] 119 | name = "bitflags" 120 | version = "2.4.0" 121 | source = "registry+https://github.com/rust-lang/crates.io-index" 122 | checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635" 123 | 124 | [[package]] 125 | name = "block" 126 | version = "0.1.6" 127 | source = "registry+https://github.com/rust-lang/crates.io-index" 128 | checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" 129 | 130 | [[package]] 131 | name = "bumpalo" 132 | version = "3.12.0" 133 | source = "registry+https://github.com/rust-lang/crates.io-index" 134 | checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" 135 | 136 | [[package]] 137 | name = "bytemuck" 138 | version = "1.13.0" 139 | source = "registry+https://github.com/rust-lang/crates.io-index" 140 | checksum = "c041d3eab048880cb0b86b256447da3f18859a163c3b8d8893f4e6368abe6393" 141 | dependencies = [ 142 | "bytemuck_derive", 143 | ] 144 | 145 | [[package]] 146 | name = "bytemuck_derive" 147 | version = "1.4.0" 148 | source = "registry+https://github.com/rust-lang/crates.io-index" 149 | checksum = "1aca418a974d83d40a0c1f0c5cba6ff4bc28d8df099109ca459a2118d40b6322" 150 | dependencies = [ 151 | "proc-macro2", 152 | "quote", 153 | "syn 1.0.107", 154 | ] 155 | 156 | [[package]] 157 | name = "calloop" 158 | version = "0.10.5" 159 | source = "registry+https://github.com/rust-lang/crates.io-index" 160 | checksum = "1a59225be45a478d772ce015d9743e49e92798ece9e34eda9a6aa2a6a7f40192" 161 | dependencies = [ 162 | "log", 163 | "nix 0.25.1", 164 | "slotmap", 165 | "thiserror", 166 | "vec_map", 167 | ] 168 | 169 | [[package]] 170 | name = "cc" 171 | version = "1.0.79" 172 | source = "registry+https://github.com/rust-lang/crates.io-index" 173 | checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" 174 | 175 | [[package]] 176 | name = "cfg-if" 177 | version = "0.1.10" 178 | source = "registry+https://github.com/rust-lang/crates.io-index" 179 | checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" 180 | 181 | [[package]] 182 | name = "cfg-if" 183 | version = "1.0.0" 184 | source = "registry+https://github.com/rust-lang/crates.io-index" 185 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 186 | 187 | [[package]] 188 | name = "chrono" 189 | version = "0.4.23" 190 | source = "registry+https://github.com/rust-lang/crates.io-index" 191 | checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" 192 | dependencies = [ 193 | "iana-time-zone", 194 | "num-integer", 195 | "num-traits", 196 | "winapi 0.3.9", 197 | ] 198 | 199 | [[package]] 200 | name = "clap" 201 | version = "4.1.4" 202 | source = "registry+https://github.com/rust-lang/crates.io-index" 203 | checksum = "f13b9c79b5d1dd500d20ef541215a6423c75829ef43117e1b4d17fd8af0b5d76" 204 | dependencies = [ 205 | "bitflags 1.3.2", 206 | "clap_derive", 207 | "clap_lex", 208 | "is-terminal", 209 | "once_cell", 210 | "strsim", 211 | "termcolor", 212 | ] 213 | 214 | [[package]] 215 | name = "clap_derive" 216 | version = "4.1.0" 217 | source = "registry+https://github.com/rust-lang/crates.io-index" 218 | checksum = "684a277d672e91966334af371f1a7b5833f9aa00b07c84e92fbce95e00208ce8" 219 | dependencies = [ 220 | "heck", 221 | "proc-macro-error", 222 | "proc-macro2", 223 | "quote", 224 | "syn 1.0.107", 225 | ] 226 | 227 | [[package]] 228 | name = "clap_lex" 229 | version = "0.3.1" 230 | source = "registry+https://github.com/rust-lang/crates.io-index" 231 | checksum = "783fe232adfca04f90f56201b26d79682d4cd2625e0bc7290b95123afe558ade" 232 | dependencies = [ 233 | "os_str_bytes", 234 | ] 235 | 236 | [[package]] 237 | name = "cmake" 238 | version = "0.1.49" 239 | source = "registry+https://github.com/rust-lang/crates.io-index" 240 | checksum = "db34956e100b30725f2eb215f90d4871051239535632f84fea3bc92722c66b7c" 241 | dependencies = [ 242 | "cc", 243 | ] 244 | 245 | [[package]] 246 | name = "cocoa" 247 | version = "0.24.1" 248 | source = "registry+https://github.com/rust-lang/crates.io-index" 249 | checksum = "f425db7937052c684daec3bd6375c8abe2d146dca4b8b143d6db777c39138f3a" 250 | dependencies = [ 251 | "bitflags 1.3.2", 252 | "block", 253 | "cocoa-foundation", 254 | "core-foundation", 255 | "core-graphics", 256 | "foreign-types 0.3.2", 257 | "libc", 258 | "objc", 259 | ] 260 | 261 | [[package]] 262 | name = "cocoa-foundation" 263 | version = "0.1.0" 264 | source = "registry+https://github.com/rust-lang/crates.io-index" 265 | checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318" 266 | dependencies = [ 267 | "bitflags 1.3.2", 268 | "block", 269 | "core-foundation", 270 | "core-graphics-types", 271 | "foreign-types 0.3.2", 272 | "libc", 273 | "objc", 274 | ] 275 | 276 | [[package]] 277 | name = "codespan-reporting" 278 | version = "0.11.1" 279 | source = "registry+https://github.com/rust-lang/crates.io-index" 280 | checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" 281 | dependencies = [ 282 | "termcolor", 283 | "unicode-width", 284 | ] 285 | 286 | [[package]] 287 | name = "com-rs" 288 | version = "0.2.1" 289 | source = "registry+https://github.com/rust-lang/crates.io-index" 290 | checksum = "bf43edc576402991846b093a7ca18a3477e0ef9c588cde84964b5d3e43016642" 291 | 292 | [[package]] 293 | name = "core-foundation" 294 | version = "0.9.3" 295 | source = "registry+https://github.com/rust-lang/crates.io-index" 296 | checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" 297 | dependencies = [ 298 | "core-foundation-sys", 299 | "libc", 300 | ] 301 | 302 | [[package]] 303 | name = "core-foundation-sys" 304 | version = "0.8.3" 305 | source = "registry+https://github.com/rust-lang/crates.io-index" 306 | checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" 307 | 308 | [[package]] 309 | name = "core-graphics" 310 | version = "0.22.3" 311 | source = "registry+https://github.com/rust-lang/crates.io-index" 312 | checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb" 313 | dependencies = [ 314 | "bitflags 1.3.2", 315 | "core-foundation", 316 | "core-graphics-types", 317 | "foreign-types 0.3.2", 318 | "libc", 319 | ] 320 | 321 | [[package]] 322 | name = "core-graphics-types" 323 | version = "0.1.1" 324 | source = "registry+https://github.com/rust-lang/crates.io-index" 325 | checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b" 326 | dependencies = [ 327 | "bitflags 1.3.2", 328 | "core-foundation", 329 | "foreign-types 0.3.2", 330 | "libc", 331 | ] 332 | 333 | [[package]] 334 | name = "core-text" 335 | version = "19.2.0" 336 | source = "registry+https://github.com/rust-lang/crates.io-index" 337 | checksum = "99d74ada66e07c1cefa18f8abfba765b486f250de2e4a999e5727fc0dd4b4a25" 338 | dependencies = [ 339 | "core-foundation", 340 | "core-graphics", 341 | "foreign-types 0.3.2", 342 | "libc", 343 | ] 344 | 345 | [[package]] 346 | name = "crc32fast" 347 | version = "1.3.2" 348 | source = "registry+https://github.com/rust-lang/crates.io-index" 349 | checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" 350 | dependencies = [ 351 | "cfg-if 1.0.0", 352 | ] 353 | 354 | [[package]] 355 | name = "crossfont" 356 | version = "0.5.1" 357 | source = "registry+https://github.com/rust-lang/crates.io-index" 358 | checksum = "21fd3add36ea31aba1520aa5288714dd63be506106753226d0eb387a93bc9c45" 359 | dependencies = [ 360 | "cocoa", 361 | "core-foundation", 362 | "core-foundation-sys", 363 | "core-graphics", 364 | "core-text", 365 | "dwrote", 366 | "foreign-types 0.5.0", 367 | "freetype-rs", 368 | "libc", 369 | "log", 370 | "objc", 371 | "once_cell", 372 | "pkg-config", 373 | "servo-fontconfig", 374 | "winapi 0.3.9", 375 | ] 376 | 377 | [[package]] 378 | name = "cty" 379 | version = "0.2.2" 380 | source = "registry+https://github.com/rust-lang/crates.io-index" 381 | checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35" 382 | 383 | [[package]] 384 | name = "cxx" 385 | version = "1.0.90" 386 | source = "registry+https://github.com/rust-lang/crates.io-index" 387 | checksum = "90d59d9acd2a682b4e40605a242f6670eaa58c5957471cbf85e8aa6a0b97a5e8" 388 | dependencies = [ 389 | "cc", 390 | "cxxbridge-flags", 391 | "cxxbridge-macro", 392 | "link-cplusplus", 393 | ] 394 | 395 | [[package]] 396 | name = "cxx-build" 397 | version = "1.0.90" 398 | source = "registry+https://github.com/rust-lang/crates.io-index" 399 | checksum = "ebfa40bda659dd5c864e65f4c9a2b0aff19bea56b017b9b77c73d3766a453a38" 400 | dependencies = [ 401 | "cc", 402 | "codespan-reporting", 403 | "once_cell", 404 | "proc-macro2", 405 | "quote", 406 | "scratch", 407 | "syn 1.0.107", 408 | ] 409 | 410 | [[package]] 411 | name = "cxxbridge-flags" 412 | version = "1.0.90" 413 | source = "registry+https://github.com/rust-lang/crates.io-index" 414 | checksum = "457ce6757c5c70dc6ecdbda6925b958aae7f959bda7d8fb9bde889e34a09dc03" 415 | 416 | [[package]] 417 | name = "cxxbridge-macro" 418 | version = "1.0.90" 419 | source = "registry+https://github.com/rust-lang/crates.io-index" 420 | checksum = "ebf883b7aacd7b2aeb2a7b338648ee19f57c140d4ee8e52c68979c6b2f7f2263" 421 | dependencies = [ 422 | "proc-macro2", 423 | "quote", 424 | "syn 1.0.107", 425 | ] 426 | 427 | [[package]] 428 | name = "d3d12" 429 | version = "0.7.0" 430 | source = "registry+https://github.com/rust-lang/crates.io-index" 431 | checksum = "e16e44ab292b1dddfdaf7be62cfd8877df52f2f3fde5858d95bab606be259f20" 432 | dependencies = [ 433 | "bitflags 2.4.0", 434 | "libloading", 435 | "winapi 0.3.9", 436 | ] 437 | 438 | [[package]] 439 | name = "darling" 440 | version = "0.13.4" 441 | source = "registry+https://github.com/rust-lang/crates.io-index" 442 | checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" 443 | dependencies = [ 444 | "darling_core", 445 | "darling_macro", 446 | ] 447 | 448 | [[package]] 449 | name = "darling_core" 450 | version = "0.13.4" 451 | source = "registry+https://github.com/rust-lang/crates.io-index" 452 | checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" 453 | dependencies = [ 454 | "fnv", 455 | "ident_case", 456 | "proc-macro2", 457 | "quote", 458 | "strsim", 459 | "syn 1.0.107", 460 | ] 461 | 462 | [[package]] 463 | name = "darling_macro" 464 | version = "0.13.4" 465 | source = "registry+https://github.com/rust-lang/crates.io-index" 466 | checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" 467 | dependencies = [ 468 | "darling_core", 469 | "quote", 470 | "syn 1.0.107", 471 | ] 472 | 473 | [[package]] 474 | name = "dispatch" 475 | version = "0.2.0" 476 | source = "registry+https://github.com/rust-lang/crates.io-index" 477 | checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" 478 | 479 | [[package]] 480 | name = "dlib" 481 | version = "0.5.0" 482 | source = "registry+https://github.com/rust-lang/crates.io-index" 483 | checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794" 484 | dependencies = [ 485 | "libloading", 486 | ] 487 | 488 | [[package]] 489 | name = "downcast-rs" 490 | version = "1.2.0" 491 | source = "registry+https://github.com/rust-lang/crates.io-index" 492 | checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" 493 | 494 | [[package]] 495 | name = "dwrote" 496 | version = "0.11.0" 497 | source = "registry+https://github.com/rust-lang/crates.io-index" 498 | checksum = "439a1c2ba5611ad3ed731280541d36d2e9c4ac5e7fb818a27b604bdc5a6aa65b" 499 | dependencies = [ 500 | "lazy_static", 501 | "libc", 502 | "serde", 503 | "serde_derive", 504 | "winapi 0.3.9", 505 | "wio", 506 | ] 507 | 508 | [[package]] 509 | name = "errno" 510 | version = "0.2.8" 511 | source = "registry+https://github.com/rust-lang/crates.io-index" 512 | checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" 513 | dependencies = [ 514 | "errno-dragonfly", 515 | "libc", 516 | "winapi 0.3.9", 517 | ] 518 | 519 | [[package]] 520 | name = "errno-dragonfly" 521 | version = "0.1.2" 522 | source = "registry+https://github.com/rust-lang/crates.io-index" 523 | checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" 524 | dependencies = [ 525 | "cc", 526 | "libc", 527 | ] 528 | 529 | [[package]] 530 | name = "expat-sys" 531 | version = "2.1.6" 532 | source = "registry+https://github.com/rust-lang/crates.io-index" 533 | checksum = "658f19728920138342f68408b7cf7644d90d4784353d8ebc32e7e8663dbe45fa" 534 | dependencies = [ 535 | "cmake", 536 | "pkg-config", 537 | ] 538 | 539 | [[package]] 540 | name = "filetime" 541 | version = "0.2.20" 542 | source = "registry+https://github.com/rust-lang/crates.io-index" 543 | checksum = "8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412" 544 | dependencies = [ 545 | "cfg-if 1.0.0", 546 | "libc", 547 | "redox_syscall 0.2.16", 548 | "windows-sys 0.45.0", 549 | ] 550 | 551 | [[package]] 552 | name = "flate2" 553 | version = "1.0.25" 554 | source = "registry+https://github.com/rust-lang/crates.io-index" 555 | checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" 556 | dependencies = [ 557 | "crc32fast", 558 | "miniz_oxide", 559 | ] 560 | 561 | [[package]] 562 | name = "fnv" 563 | version = "1.0.7" 564 | source = "registry+https://github.com/rust-lang/crates.io-index" 565 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 566 | 567 | [[package]] 568 | name = "foreign-types" 569 | version = "0.3.2" 570 | source = "registry+https://github.com/rust-lang/crates.io-index" 571 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 572 | dependencies = [ 573 | "foreign-types-shared 0.1.1", 574 | ] 575 | 576 | [[package]] 577 | name = "foreign-types" 578 | version = "0.5.0" 579 | source = "registry+https://github.com/rust-lang/crates.io-index" 580 | checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965" 581 | dependencies = [ 582 | "foreign-types-macros", 583 | "foreign-types-shared 0.3.1", 584 | ] 585 | 586 | [[package]] 587 | name = "foreign-types-macros" 588 | version = "0.2.2" 589 | source = "registry+https://github.com/rust-lang/crates.io-index" 590 | checksum = "c8469d0d40519bc608ec6863f1cc88f3f1deee15913f2f3b3e573d81ed38cccc" 591 | dependencies = [ 592 | "proc-macro2", 593 | "quote", 594 | "syn 1.0.107", 595 | ] 596 | 597 | [[package]] 598 | name = "foreign-types-shared" 599 | version = "0.1.1" 600 | source = "registry+https://github.com/rust-lang/crates.io-index" 601 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 602 | 603 | [[package]] 604 | name = "foreign-types-shared" 605 | version = "0.3.1" 606 | source = "registry+https://github.com/rust-lang/crates.io-index" 607 | checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" 608 | 609 | [[package]] 610 | name = "freetype-rs" 611 | version = "0.26.0" 612 | source = "registry+https://github.com/rust-lang/crates.io-index" 613 | checksum = "74eadec9d0a5c28c54bb9882e54787275152a4e36ce206b45d7451384e5bf5fb" 614 | dependencies = [ 615 | "bitflags 1.3.2", 616 | "freetype-sys", 617 | "libc", 618 | ] 619 | 620 | [[package]] 621 | name = "freetype-sys" 622 | version = "0.13.1" 623 | source = "registry+https://github.com/rust-lang/crates.io-index" 624 | checksum = "a37d4011c0cc628dfa766fcc195454f4b068d7afdc2adfd28861191d866e731a" 625 | dependencies = [ 626 | "cmake", 627 | "libc", 628 | "pkg-config", 629 | ] 630 | 631 | [[package]] 632 | name = "fsevent" 633 | version = "0.4.0" 634 | source = "registry+https://github.com/rust-lang/crates.io-index" 635 | checksum = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6" 636 | dependencies = [ 637 | "bitflags 1.3.2", 638 | "fsevent-sys", 639 | ] 640 | 641 | [[package]] 642 | name = "fsevent-sys" 643 | version = "2.0.1" 644 | source = "registry+https://github.com/rust-lang/crates.io-index" 645 | checksum = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0" 646 | dependencies = [ 647 | "libc", 648 | ] 649 | 650 | [[package]] 651 | name = "fuchsia-zircon" 652 | version = "0.3.3" 653 | source = "registry+https://github.com/rust-lang/crates.io-index" 654 | checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" 655 | dependencies = [ 656 | "bitflags 1.3.2", 657 | "fuchsia-zircon-sys", 658 | ] 659 | 660 | [[package]] 661 | name = "fuchsia-zircon-sys" 662 | version = "0.3.3" 663 | source = "registry+https://github.com/rust-lang/crates.io-index" 664 | checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" 665 | 666 | [[package]] 667 | name = "futures" 668 | version = "0.3.26" 669 | source = "registry+https://github.com/rust-lang/crates.io-index" 670 | checksum = "13e2792b0ff0340399d58445b88fd9770e3489eff258a4cbc1523418f12abf84" 671 | dependencies = [ 672 | "futures-channel", 673 | "futures-core", 674 | "futures-executor", 675 | "futures-io", 676 | "futures-sink", 677 | "futures-task", 678 | "futures-util", 679 | ] 680 | 681 | [[package]] 682 | name = "futures-channel" 683 | version = "0.3.26" 684 | source = "registry+https://github.com/rust-lang/crates.io-index" 685 | checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5" 686 | dependencies = [ 687 | "futures-core", 688 | "futures-sink", 689 | ] 690 | 691 | [[package]] 692 | name = "futures-core" 693 | version = "0.3.26" 694 | source = "registry+https://github.com/rust-lang/crates.io-index" 695 | checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608" 696 | 697 | [[package]] 698 | name = "futures-executor" 699 | version = "0.3.26" 700 | source = "registry+https://github.com/rust-lang/crates.io-index" 701 | checksum = "e8de0a35a6ab97ec8869e32a2473f4b1324459e14c29275d14b10cb1fd19b50e" 702 | dependencies = [ 703 | "futures-core", 704 | "futures-task", 705 | "futures-util", 706 | ] 707 | 708 | [[package]] 709 | name = "futures-io" 710 | version = "0.3.26" 711 | source = "registry+https://github.com/rust-lang/crates.io-index" 712 | checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531" 713 | 714 | [[package]] 715 | name = "futures-macro" 716 | version = "0.3.26" 717 | source = "registry+https://github.com/rust-lang/crates.io-index" 718 | checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70" 719 | dependencies = [ 720 | "proc-macro2", 721 | "quote", 722 | "syn 1.0.107", 723 | ] 724 | 725 | [[package]] 726 | name = "futures-sink" 727 | version = "0.3.26" 728 | source = "registry+https://github.com/rust-lang/crates.io-index" 729 | checksum = "f310820bb3e8cfd46c80db4d7fb8353e15dfff853a127158425f31e0be6c8364" 730 | 731 | [[package]] 732 | name = "futures-task" 733 | version = "0.3.26" 734 | source = "registry+https://github.com/rust-lang/crates.io-index" 735 | checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366" 736 | 737 | [[package]] 738 | name = "futures-util" 739 | version = "0.3.26" 740 | source = "registry+https://github.com/rust-lang/crates.io-index" 741 | checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1" 742 | dependencies = [ 743 | "futures-channel", 744 | "futures-core", 745 | "futures-io", 746 | "futures-macro", 747 | "futures-sink", 748 | "futures-task", 749 | "memchr", 750 | "pin-project-lite", 751 | "pin-utils", 752 | "slab", 753 | ] 754 | 755 | [[package]] 756 | name = "getrandom" 757 | version = "0.2.8" 758 | source = "registry+https://github.com/rust-lang/crates.io-index" 759 | checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" 760 | dependencies = [ 761 | "cfg-if 1.0.0", 762 | "libc", 763 | "wasi", 764 | ] 765 | 766 | [[package]] 767 | name = "gimli" 768 | version = "0.27.3" 769 | source = "registry+https://github.com/rust-lang/crates.io-index" 770 | checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" 771 | 772 | [[package]] 773 | name = "glow" 774 | version = "0.12.3" 775 | source = "registry+https://github.com/rust-lang/crates.io-index" 776 | checksum = "ca0fe580e4b60a8ab24a868bc08e2f03cbcb20d3d676601fa909386713333728" 777 | dependencies = [ 778 | "js-sys", 779 | "slotmap", 780 | "wasm-bindgen", 781 | "web-sys", 782 | ] 783 | 784 | [[package]] 785 | name = "gpu-alloc" 786 | version = "0.6.0" 787 | source = "registry+https://github.com/rust-lang/crates.io-index" 788 | checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" 789 | dependencies = [ 790 | "bitflags 2.4.0", 791 | "gpu-alloc-types", 792 | ] 793 | 794 | [[package]] 795 | name = "gpu-alloc-types" 796 | version = "0.3.0" 797 | source = "registry+https://github.com/rust-lang/crates.io-index" 798 | checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" 799 | dependencies = [ 800 | "bitflags 2.4.0", 801 | ] 802 | 803 | [[package]] 804 | name = "gpu-allocator" 805 | version = "0.22.0" 806 | source = "registry+https://github.com/rust-lang/crates.io-index" 807 | checksum = "ce95f9e2e11c2c6fadfce42b5af60005db06576f231f5c92550fdded43c423e8" 808 | dependencies = [ 809 | "backtrace", 810 | "log", 811 | "thiserror", 812 | "winapi 0.3.9", 813 | "windows", 814 | ] 815 | 816 | [[package]] 817 | name = "gpu-descriptor" 818 | version = "0.2.3" 819 | source = "registry+https://github.com/rust-lang/crates.io-index" 820 | checksum = "0b0c02e1ba0bdb14e965058ca34e09c020f8e507a760df1121728e0aef68d57a" 821 | dependencies = [ 822 | "bitflags 1.3.2", 823 | "gpu-descriptor-types", 824 | "hashbrown", 825 | ] 826 | 827 | [[package]] 828 | name = "gpu-descriptor-types" 829 | version = "0.1.1" 830 | source = "registry+https://github.com/rust-lang/crates.io-index" 831 | checksum = "363e3677e55ad168fef68cf9de3a4a310b53124c5e784c53a1d70e92d23f2126" 832 | dependencies = [ 833 | "bitflags 1.3.2", 834 | ] 835 | 836 | [[package]] 837 | name = "hashbrown" 838 | version = "0.12.3" 839 | source = "registry+https://github.com/rust-lang/crates.io-index" 840 | checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" 841 | dependencies = [ 842 | "ahash", 843 | ] 844 | 845 | [[package]] 846 | name = "hassle-rs" 847 | version = "0.10.0" 848 | source = "registry+https://github.com/rust-lang/crates.io-index" 849 | checksum = "1397650ee315e8891a0df210707f0fc61771b0cc518c3023896064c5407cb3b0" 850 | dependencies = [ 851 | "bitflags 1.3.2", 852 | "com-rs", 853 | "libc", 854 | "libloading", 855 | "thiserror", 856 | "widestring", 857 | "winapi 0.3.9", 858 | ] 859 | 860 | [[package]] 861 | name = "heck" 862 | version = "0.4.1" 863 | source = "registry+https://github.com/rust-lang/crates.io-index" 864 | checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" 865 | 866 | [[package]] 867 | name = "hermit-abi" 868 | version = "0.3.1" 869 | source = "registry+https://github.com/rust-lang/crates.io-index" 870 | checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" 871 | 872 | [[package]] 873 | name = "hexf-parse" 874 | version = "0.2.1" 875 | source = "registry+https://github.com/rust-lang/crates.io-index" 876 | checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" 877 | 878 | [[package]] 879 | name = "iana-time-zone" 880 | version = "0.1.53" 881 | source = "registry+https://github.com/rust-lang/crates.io-index" 882 | checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" 883 | dependencies = [ 884 | "android_system_properties", 885 | "core-foundation-sys", 886 | "iana-time-zone-haiku", 887 | "js-sys", 888 | "wasm-bindgen", 889 | "winapi 0.3.9", 890 | ] 891 | 892 | [[package]] 893 | name = "iana-time-zone-haiku" 894 | version = "0.1.1" 895 | source = "registry+https://github.com/rust-lang/crates.io-index" 896 | checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" 897 | dependencies = [ 898 | "cxx", 899 | "cxx-build", 900 | ] 901 | 902 | [[package]] 903 | name = "ident_case" 904 | version = "1.0.1" 905 | source = "registry+https://github.com/rust-lang/crates.io-index" 906 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 907 | 908 | [[package]] 909 | name = "indexmap" 910 | version = "1.9.2" 911 | source = "registry+https://github.com/rust-lang/crates.io-index" 912 | checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" 913 | dependencies = [ 914 | "autocfg", 915 | "hashbrown", 916 | ] 917 | 918 | [[package]] 919 | name = "inotify" 920 | version = "0.7.1" 921 | source = "registry+https://github.com/rust-lang/crates.io-index" 922 | checksum = "4816c66d2c8ae673df83366c18341538f234a26d65a9ecea5c348b453ac1d02f" 923 | dependencies = [ 924 | "bitflags 1.3.2", 925 | "inotify-sys", 926 | "libc", 927 | ] 928 | 929 | [[package]] 930 | name = "inotify-sys" 931 | version = "0.1.5" 932 | source = "registry+https://github.com/rust-lang/crates.io-index" 933 | checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" 934 | dependencies = [ 935 | "libc", 936 | ] 937 | 938 | [[package]] 939 | name = "instant" 940 | version = "0.1.12" 941 | source = "registry+https://github.com/rust-lang/crates.io-index" 942 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" 943 | dependencies = [ 944 | "cfg-if 1.0.0", 945 | "js-sys", 946 | "wasm-bindgen", 947 | "web-sys", 948 | ] 949 | 950 | [[package]] 951 | name = "io-lifetimes" 952 | version = "1.0.5" 953 | source = "registry+https://github.com/rust-lang/crates.io-index" 954 | checksum = "1abeb7a0dd0f8181267ff8adc397075586500b81b28a73e8a0208b00fc170fb3" 955 | dependencies = [ 956 | "libc", 957 | "windows-sys 0.45.0", 958 | ] 959 | 960 | [[package]] 961 | name = "iovec" 962 | version = "0.1.4" 963 | source = "registry+https://github.com/rust-lang/crates.io-index" 964 | checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" 965 | dependencies = [ 966 | "libc", 967 | ] 968 | 969 | [[package]] 970 | name = "is-terminal" 971 | version = "0.4.3" 972 | source = "registry+https://github.com/rust-lang/crates.io-index" 973 | checksum = "22e18b0a45d56fe973d6db23972bf5bc46f988a4a2385deac9cc29572f09daef" 974 | dependencies = [ 975 | "hermit-abi", 976 | "io-lifetimes", 977 | "rustix", 978 | "windows-sys 0.45.0", 979 | ] 980 | 981 | [[package]] 982 | name = "itoa" 983 | version = "1.0.5" 984 | source = "registry+https://github.com/rust-lang/crates.io-index" 985 | checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" 986 | 987 | [[package]] 988 | name = "jni-sys" 989 | version = "0.3.0" 990 | source = "registry+https://github.com/rust-lang/crates.io-index" 991 | checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" 992 | 993 | [[package]] 994 | name = "js-sys" 995 | version = "0.3.64" 996 | source = "registry+https://github.com/rust-lang/crates.io-index" 997 | checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" 998 | dependencies = [ 999 | "wasm-bindgen", 1000 | ] 1001 | 1002 | [[package]] 1003 | name = "kernel32-sys" 1004 | version = "0.2.2" 1005 | source = "registry+https://github.com/rust-lang/crates.io-index" 1006 | checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" 1007 | dependencies = [ 1008 | "winapi 0.2.8", 1009 | "winapi-build", 1010 | ] 1011 | 1012 | [[package]] 1013 | name = "khronos-egl" 1014 | version = "4.1.0" 1015 | source = "registry+https://github.com/rust-lang/crates.io-index" 1016 | checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3" 1017 | dependencies = [ 1018 | "libc", 1019 | "libloading", 1020 | "pkg-config", 1021 | ] 1022 | 1023 | [[package]] 1024 | name = "lazy_static" 1025 | version = "1.4.0" 1026 | source = "registry+https://github.com/rust-lang/crates.io-index" 1027 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 1028 | 1029 | [[package]] 1030 | name = "lazycell" 1031 | version = "1.3.0" 1032 | source = "registry+https://github.com/rust-lang/crates.io-index" 1033 | checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" 1034 | 1035 | [[package]] 1036 | name = "libc" 1037 | version = "0.2.139" 1038 | source = "registry+https://github.com/rust-lang/crates.io-index" 1039 | checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" 1040 | 1041 | [[package]] 1042 | name = "libloading" 1043 | version = "0.7.4" 1044 | source = "registry+https://github.com/rust-lang/crates.io-index" 1045 | checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" 1046 | dependencies = [ 1047 | "cfg-if 1.0.0", 1048 | "winapi 0.3.9", 1049 | ] 1050 | 1051 | [[package]] 1052 | name = "link-cplusplus" 1053 | version = "1.0.8" 1054 | source = "registry+https://github.com/rust-lang/crates.io-index" 1055 | checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" 1056 | dependencies = [ 1057 | "cc", 1058 | ] 1059 | 1060 | [[package]] 1061 | name = "linux-raw-sys" 1062 | version = "0.1.4" 1063 | source = "registry+https://github.com/rust-lang/crates.io-index" 1064 | checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" 1065 | 1066 | [[package]] 1067 | name = "lock_api" 1068 | version = "0.4.9" 1069 | source = "registry+https://github.com/rust-lang/crates.io-index" 1070 | checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" 1071 | dependencies = [ 1072 | "autocfg", 1073 | "scopeguard", 1074 | ] 1075 | 1076 | [[package]] 1077 | name = "log" 1078 | version = "0.4.17" 1079 | source = "registry+https://github.com/rust-lang/crates.io-index" 1080 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" 1081 | dependencies = [ 1082 | "cfg-if 1.0.0", 1083 | ] 1084 | 1085 | [[package]] 1086 | name = "malloc_buf" 1087 | version = "0.0.6" 1088 | source = "registry+https://github.com/rust-lang/crates.io-index" 1089 | checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" 1090 | dependencies = [ 1091 | "libc", 1092 | ] 1093 | 1094 | [[package]] 1095 | name = "matchers" 1096 | version = "0.0.1" 1097 | source = "registry+https://github.com/rust-lang/crates.io-index" 1098 | checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" 1099 | dependencies = [ 1100 | "regex-automata", 1101 | ] 1102 | 1103 | [[package]] 1104 | name = "memchr" 1105 | version = "2.5.0" 1106 | source = "registry+https://github.com/rust-lang/crates.io-index" 1107 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" 1108 | 1109 | [[package]] 1110 | name = "memmap2" 1111 | version = "0.5.8" 1112 | source = "registry+https://github.com/rust-lang/crates.io-index" 1113 | checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc" 1114 | dependencies = [ 1115 | "libc", 1116 | ] 1117 | 1118 | [[package]] 1119 | name = "memoffset" 1120 | version = "0.6.5" 1121 | source = "registry+https://github.com/rust-lang/crates.io-index" 1122 | checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" 1123 | dependencies = [ 1124 | "autocfg", 1125 | ] 1126 | 1127 | [[package]] 1128 | name = "metal" 1129 | version = "0.26.0" 1130 | source = "registry+https://github.com/rust-lang/crates.io-index" 1131 | checksum = "623b5e6cefd76e58f774bd3cc0c6f5c7615c58c03a97815245a25c3c9bdee318" 1132 | dependencies = [ 1133 | "bitflags 2.4.0", 1134 | "block", 1135 | "core-graphics-types", 1136 | "foreign-types 0.5.0", 1137 | "log", 1138 | "objc", 1139 | "paste", 1140 | ] 1141 | 1142 | [[package]] 1143 | name = "minimal-lexical" 1144 | version = "0.2.1" 1145 | source = "registry+https://github.com/rust-lang/crates.io-index" 1146 | checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" 1147 | 1148 | [[package]] 1149 | name = "miniz_oxide" 1150 | version = "0.6.2" 1151 | source = "registry+https://github.com/rust-lang/crates.io-index" 1152 | checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" 1153 | dependencies = [ 1154 | "adler", 1155 | ] 1156 | 1157 | [[package]] 1158 | name = "mio" 1159 | version = "0.6.23" 1160 | source = "registry+https://github.com/rust-lang/crates.io-index" 1161 | checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4" 1162 | dependencies = [ 1163 | "cfg-if 0.1.10", 1164 | "fuchsia-zircon", 1165 | "fuchsia-zircon-sys", 1166 | "iovec", 1167 | "kernel32-sys", 1168 | "libc", 1169 | "log", 1170 | "miow", 1171 | "net2", 1172 | "slab", 1173 | "winapi 0.2.8", 1174 | ] 1175 | 1176 | [[package]] 1177 | name = "mio" 1178 | version = "0.8.5" 1179 | source = "registry+https://github.com/rust-lang/crates.io-index" 1180 | checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" 1181 | dependencies = [ 1182 | "libc", 1183 | "log", 1184 | "wasi", 1185 | "windows-sys 0.42.0", 1186 | ] 1187 | 1188 | [[package]] 1189 | name = "mio-extras" 1190 | version = "2.0.6" 1191 | source = "registry+https://github.com/rust-lang/crates.io-index" 1192 | checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" 1193 | dependencies = [ 1194 | "lazycell", 1195 | "log", 1196 | "mio 0.6.23", 1197 | "slab", 1198 | ] 1199 | 1200 | [[package]] 1201 | name = "miow" 1202 | version = "0.2.2" 1203 | source = "registry+https://github.com/rust-lang/crates.io-index" 1204 | checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d" 1205 | dependencies = [ 1206 | "kernel32-sys", 1207 | "net2", 1208 | "winapi 0.2.8", 1209 | "ws2_32-sys", 1210 | ] 1211 | 1212 | [[package]] 1213 | name = "naga" 1214 | version = "0.13.0" 1215 | source = "registry+https://github.com/rust-lang/crates.io-index" 1216 | checksum = "c1ceaaa4eedaece7e4ec08c55c640ba03dbb73fb812a6570a59bcf1930d0f70e" 1217 | dependencies = [ 1218 | "bit-set", 1219 | "bitflags 2.4.0", 1220 | "codespan-reporting", 1221 | "hexf-parse", 1222 | "indexmap", 1223 | "log", 1224 | "num-traits", 1225 | "rustc-hash", 1226 | "spirv", 1227 | "termcolor", 1228 | "thiserror", 1229 | "unicode-xid", 1230 | ] 1231 | 1232 | [[package]] 1233 | name = "ndk" 1234 | version = "0.7.0" 1235 | source = "registry+https://github.com/rust-lang/crates.io-index" 1236 | checksum = "451422b7e4718271c8b5b3aadf5adedba43dc76312454b387e98fae0fc951aa0" 1237 | dependencies = [ 1238 | "bitflags 1.3.2", 1239 | "jni-sys", 1240 | "ndk-sys", 1241 | "num_enum", 1242 | "raw-window-handle 0.5.0", 1243 | "thiserror", 1244 | ] 1245 | 1246 | [[package]] 1247 | name = "ndk-context" 1248 | version = "0.1.1" 1249 | source = "registry+https://github.com/rust-lang/crates.io-index" 1250 | checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" 1251 | 1252 | [[package]] 1253 | name = "ndk-glue" 1254 | version = "0.7.0" 1255 | source = "registry+https://github.com/rust-lang/crates.io-index" 1256 | checksum = "0434fabdd2c15e0aab768ca31d5b7b333717f03cf02037d5a0a3ff3c278ed67f" 1257 | dependencies = [ 1258 | "libc", 1259 | "log", 1260 | "ndk", 1261 | "ndk-context", 1262 | "ndk-macro", 1263 | "ndk-sys", 1264 | "once_cell", 1265 | "parking_lot 0.12.1", 1266 | ] 1267 | 1268 | [[package]] 1269 | name = "ndk-macro" 1270 | version = "0.3.0" 1271 | source = "registry+https://github.com/rust-lang/crates.io-index" 1272 | checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c" 1273 | dependencies = [ 1274 | "darling", 1275 | "proc-macro-crate", 1276 | "proc-macro2", 1277 | "quote", 1278 | "syn 1.0.107", 1279 | ] 1280 | 1281 | [[package]] 1282 | name = "ndk-sys" 1283 | version = "0.4.1+23.1.7779620" 1284 | source = "registry+https://github.com/rust-lang/crates.io-index" 1285 | checksum = "3cf2aae958bd232cac5069850591667ad422d263686d75b52a065f9badeee5a3" 1286 | dependencies = [ 1287 | "jni-sys", 1288 | ] 1289 | 1290 | [[package]] 1291 | name = "net2" 1292 | version = "0.2.38" 1293 | source = "registry+https://github.com/rust-lang/crates.io-index" 1294 | checksum = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631" 1295 | dependencies = [ 1296 | "cfg-if 0.1.10", 1297 | "libc", 1298 | "winapi 0.3.9", 1299 | ] 1300 | 1301 | [[package]] 1302 | name = "nix" 1303 | version = "0.24.3" 1304 | source = "registry+https://github.com/rust-lang/crates.io-index" 1305 | checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" 1306 | dependencies = [ 1307 | "bitflags 1.3.2", 1308 | "cfg-if 1.0.0", 1309 | "libc", 1310 | "memoffset", 1311 | ] 1312 | 1313 | [[package]] 1314 | name = "nix" 1315 | version = "0.25.1" 1316 | source = "registry+https://github.com/rust-lang/crates.io-index" 1317 | checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" 1318 | dependencies = [ 1319 | "autocfg", 1320 | "bitflags 1.3.2", 1321 | "cfg-if 1.0.0", 1322 | "libc", 1323 | "memoffset", 1324 | ] 1325 | 1326 | [[package]] 1327 | name = "nom" 1328 | version = "7.1.3" 1329 | source = "registry+https://github.com/rust-lang/crates.io-index" 1330 | checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" 1331 | dependencies = [ 1332 | "memchr", 1333 | "minimal-lexical", 1334 | ] 1335 | 1336 | [[package]] 1337 | name = "nom8" 1338 | version = "0.2.0" 1339 | source = "registry+https://github.com/rust-lang/crates.io-index" 1340 | checksum = "ae01545c9c7fc4486ab7debaf2aad7003ac19431791868fb2e8066df97fad2f8" 1341 | dependencies = [ 1342 | "memchr", 1343 | ] 1344 | 1345 | [[package]] 1346 | name = "notify" 1347 | version = "4.0.17" 1348 | source = "registry+https://github.com/rust-lang/crates.io-index" 1349 | checksum = "ae03c8c853dba7bfd23e571ff0cff7bc9dceb40a4cd684cd1681824183f45257" 1350 | dependencies = [ 1351 | "bitflags 1.3.2", 1352 | "filetime", 1353 | "fsevent", 1354 | "fsevent-sys", 1355 | "inotify", 1356 | "libc", 1357 | "mio 0.6.23", 1358 | "mio-extras", 1359 | "walkdir", 1360 | "winapi 0.3.9", 1361 | ] 1362 | 1363 | [[package]] 1364 | name = "num-integer" 1365 | version = "0.1.45" 1366 | source = "registry+https://github.com/rust-lang/crates.io-index" 1367 | checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" 1368 | dependencies = [ 1369 | "autocfg", 1370 | "num-traits", 1371 | ] 1372 | 1373 | [[package]] 1374 | name = "num-traits" 1375 | version = "0.2.15" 1376 | source = "registry+https://github.com/rust-lang/crates.io-index" 1377 | checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" 1378 | dependencies = [ 1379 | "autocfg", 1380 | ] 1381 | 1382 | [[package]] 1383 | name = "num_enum" 1384 | version = "0.5.9" 1385 | source = "registry+https://github.com/rust-lang/crates.io-index" 1386 | checksum = "8d829733185c1ca374f17e52b762f24f535ec625d2cc1f070e34c8a9068f341b" 1387 | dependencies = [ 1388 | "num_enum_derive", 1389 | ] 1390 | 1391 | [[package]] 1392 | name = "num_enum_derive" 1393 | version = "0.5.9" 1394 | source = "registry+https://github.com/rust-lang/crates.io-index" 1395 | checksum = "2be1598bf1c313dcdd12092e3f1920f463462525a21b7b4e11b4168353d0123e" 1396 | dependencies = [ 1397 | "proc-macro-crate", 1398 | "proc-macro2", 1399 | "quote", 1400 | "syn 1.0.107", 1401 | ] 1402 | 1403 | [[package]] 1404 | name = "objc" 1405 | version = "0.2.7" 1406 | source = "registry+https://github.com/rust-lang/crates.io-index" 1407 | checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" 1408 | dependencies = [ 1409 | "malloc_buf", 1410 | "objc_exception", 1411 | ] 1412 | 1413 | [[package]] 1414 | name = "objc_exception" 1415 | version = "0.1.2" 1416 | source = "registry+https://github.com/rust-lang/crates.io-index" 1417 | checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" 1418 | dependencies = [ 1419 | "cc", 1420 | ] 1421 | 1422 | [[package]] 1423 | name = "object" 1424 | version = "0.30.4" 1425 | source = "registry+https://github.com/rust-lang/crates.io-index" 1426 | checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" 1427 | dependencies = [ 1428 | "memchr", 1429 | ] 1430 | 1431 | [[package]] 1432 | name = "once_cell" 1433 | version = "1.17.0" 1434 | source = "registry+https://github.com/rust-lang/crates.io-index" 1435 | checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" 1436 | 1437 | [[package]] 1438 | name = "os_str_bytes" 1439 | version = "6.4.1" 1440 | source = "registry+https://github.com/rust-lang/crates.io-index" 1441 | checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" 1442 | 1443 | [[package]] 1444 | name = "parking_lot" 1445 | version = "0.11.2" 1446 | source = "registry+https://github.com/rust-lang/crates.io-index" 1447 | checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" 1448 | dependencies = [ 1449 | "instant", 1450 | "lock_api", 1451 | "parking_lot_core 0.8.6", 1452 | ] 1453 | 1454 | [[package]] 1455 | name = "parking_lot" 1456 | version = "0.12.1" 1457 | source = "registry+https://github.com/rust-lang/crates.io-index" 1458 | checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" 1459 | dependencies = [ 1460 | "lock_api", 1461 | "parking_lot_core 0.9.7", 1462 | ] 1463 | 1464 | [[package]] 1465 | name = "parking_lot_core" 1466 | version = "0.8.6" 1467 | source = "registry+https://github.com/rust-lang/crates.io-index" 1468 | checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" 1469 | dependencies = [ 1470 | "cfg-if 1.0.0", 1471 | "instant", 1472 | "libc", 1473 | "redox_syscall 0.2.16", 1474 | "smallvec", 1475 | "winapi 0.3.9", 1476 | ] 1477 | 1478 | [[package]] 1479 | name = "parking_lot_core" 1480 | version = "0.9.7" 1481 | source = "registry+https://github.com/rust-lang/crates.io-index" 1482 | checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" 1483 | dependencies = [ 1484 | "cfg-if 1.0.0", 1485 | "libc", 1486 | "redox_syscall 0.2.16", 1487 | "smallvec", 1488 | "windows-sys 0.45.0", 1489 | ] 1490 | 1491 | [[package]] 1492 | name = "paste" 1493 | version = "1.0.14" 1494 | source = "registry+https://github.com/rust-lang/crates.io-index" 1495 | checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" 1496 | 1497 | [[package]] 1498 | name = "percent-encoding" 1499 | version = "2.2.0" 1500 | source = "registry+https://github.com/rust-lang/crates.io-index" 1501 | checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" 1502 | 1503 | [[package]] 1504 | name = "pin-project-lite" 1505 | version = "0.2.9" 1506 | source = "registry+https://github.com/rust-lang/crates.io-index" 1507 | checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" 1508 | 1509 | [[package]] 1510 | name = "pin-utils" 1511 | version = "0.1.0" 1512 | source = "registry+https://github.com/rust-lang/crates.io-index" 1513 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 1514 | 1515 | [[package]] 1516 | name = "pkg-config" 1517 | version = "0.3.26" 1518 | source = "registry+https://github.com/rust-lang/crates.io-index" 1519 | checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" 1520 | 1521 | [[package]] 1522 | name = "png" 1523 | version = "0.17.7" 1524 | source = "registry+https://github.com/rust-lang/crates.io-index" 1525 | checksum = "5d708eaf860a19b19ce538740d2b4bdeeb8337fa53f7738455e706623ad5c638" 1526 | dependencies = [ 1527 | "bitflags 1.3.2", 1528 | "crc32fast", 1529 | "flate2", 1530 | "miniz_oxide", 1531 | ] 1532 | 1533 | [[package]] 1534 | name = "proc-macro-crate" 1535 | version = "1.3.0" 1536 | source = "registry+https://github.com/rust-lang/crates.io-index" 1537 | checksum = "66618389e4ec1c7afe67d51a9bf34ff9236480f8d51e7489b7d5ab0303c13f34" 1538 | dependencies = [ 1539 | "once_cell", 1540 | "toml_edit", 1541 | ] 1542 | 1543 | [[package]] 1544 | name = "proc-macro-error" 1545 | version = "1.0.4" 1546 | source = "registry+https://github.com/rust-lang/crates.io-index" 1547 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" 1548 | dependencies = [ 1549 | "proc-macro-error-attr", 1550 | "proc-macro2", 1551 | "quote", 1552 | "syn 1.0.107", 1553 | "version_check", 1554 | ] 1555 | 1556 | [[package]] 1557 | name = "proc-macro-error-attr" 1558 | version = "1.0.4" 1559 | source = "registry+https://github.com/rust-lang/crates.io-index" 1560 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" 1561 | dependencies = [ 1562 | "proc-macro2", 1563 | "quote", 1564 | "version_check", 1565 | ] 1566 | 1567 | [[package]] 1568 | name = "proc-macro2" 1569 | version = "1.0.67" 1570 | source = "registry+https://github.com/rust-lang/crates.io-index" 1571 | checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" 1572 | dependencies = [ 1573 | "unicode-ident", 1574 | ] 1575 | 1576 | [[package]] 1577 | name = "profiling" 1578 | version = "1.0.7" 1579 | source = "registry+https://github.com/rust-lang/crates.io-index" 1580 | checksum = "74605f360ce573babfe43964cbe520294dcb081afbf8c108fc6e23036b4da2df" 1581 | 1582 | [[package]] 1583 | name = "quote" 1584 | version = "1.0.33" 1585 | source = "registry+https://github.com/rust-lang/crates.io-index" 1586 | checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" 1587 | dependencies = [ 1588 | "proc-macro2", 1589 | ] 1590 | 1591 | [[package]] 1592 | name = "range-alloc" 1593 | version = "0.1.3" 1594 | source = "registry+https://github.com/rust-lang/crates.io-index" 1595 | checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" 1596 | 1597 | [[package]] 1598 | name = "raw-window-handle" 1599 | version = "0.4.3" 1600 | source = "registry+https://github.com/rust-lang/crates.io-index" 1601 | checksum = "b800beb9b6e7d2df1fe337c9e3d04e3af22a124460fb4c30fcc22c9117cefb41" 1602 | dependencies = [ 1603 | "cty", 1604 | ] 1605 | 1606 | [[package]] 1607 | name = "raw-window-handle" 1608 | version = "0.5.0" 1609 | source = "registry+https://github.com/rust-lang/crates.io-index" 1610 | checksum = "ed7e3d950b66e19e0c372f3fa3fbbcf85b1746b571f74e0c2af6042a5c93420a" 1611 | dependencies = [ 1612 | "cty", 1613 | ] 1614 | 1615 | [[package]] 1616 | name = "redox_syscall" 1617 | version = "0.1.57" 1618 | source = "registry+https://github.com/rust-lang/crates.io-index" 1619 | checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" 1620 | 1621 | [[package]] 1622 | name = "redox_syscall" 1623 | version = "0.2.16" 1624 | source = "registry+https://github.com/rust-lang/crates.io-index" 1625 | checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" 1626 | dependencies = [ 1627 | "bitflags 1.3.2", 1628 | ] 1629 | 1630 | [[package]] 1631 | name = "regex" 1632 | version = "1.7.1" 1633 | source = "registry+https://github.com/rust-lang/crates.io-index" 1634 | checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" 1635 | dependencies = [ 1636 | "regex-syntax", 1637 | ] 1638 | 1639 | [[package]] 1640 | name = "regex-automata" 1641 | version = "0.1.10" 1642 | source = "registry+https://github.com/rust-lang/crates.io-index" 1643 | checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" 1644 | dependencies = [ 1645 | "regex-syntax", 1646 | ] 1647 | 1648 | [[package]] 1649 | name = "regex-syntax" 1650 | version = "0.6.28" 1651 | source = "registry+https://github.com/rust-lang/crates.io-index" 1652 | checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" 1653 | 1654 | [[package]] 1655 | name = "renderdoc-sys" 1656 | version = "1.0.0" 1657 | source = "registry+https://github.com/rust-lang/crates.io-index" 1658 | checksum = "216080ab382b992234dda86873c18d4c48358f5cfcb70fd693d7f6f2131b628b" 1659 | 1660 | [[package]] 1661 | name = "rustc-demangle" 1662 | version = "0.1.23" 1663 | source = "registry+https://github.com/rust-lang/crates.io-index" 1664 | checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" 1665 | 1666 | [[package]] 1667 | name = "rustc-hash" 1668 | version = "1.1.0" 1669 | source = "registry+https://github.com/rust-lang/crates.io-index" 1670 | checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" 1671 | 1672 | [[package]] 1673 | name = "rustix" 1674 | version = "0.36.8" 1675 | source = "registry+https://github.com/rust-lang/crates.io-index" 1676 | checksum = "f43abb88211988493c1abb44a70efa56ff0ce98f233b7b276146f1f3f7ba9644" 1677 | dependencies = [ 1678 | "bitflags 1.3.2", 1679 | "errno", 1680 | "io-lifetimes", 1681 | "libc", 1682 | "linux-raw-sys", 1683 | "windows-sys 0.45.0", 1684 | ] 1685 | 1686 | [[package]] 1687 | name = "ryu" 1688 | version = "1.0.12" 1689 | source = "registry+https://github.com/rust-lang/crates.io-index" 1690 | checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" 1691 | 1692 | [[package]] 1693 | name = "safe_arch" 1694 | version = "0.5.2" 1695 | source = "registry+https://github.com/rust-lang/crates.io-index" 1696 | checksum = "c1ff3d6d9696af502cc3110dacce942840fb06ff4514cad92236ecc455f2ce05" 1697 | dependencies = [ 1698 | "bytemuck", 1699 | ] 1700 | 1701 | [[package]] 1702 | name = "same-file" 1703 | version = "1.0.6" 1704 | source = "registry+https://github.com/rust-lang/crates.io-index" 1705 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1706 | dependencies = [ 1707 | "winapi-util", 1708 | ] 1709 | 1710 | [[package]] 1711 | name = "scoped-tls" 1712 | version = "1.0.1" 1713 | source = "registry+https://github.com/rust-lang/crates.io-index" 1714 | checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" 1715 | 1716 | [[package]] 1717 | name = "scopeguard" 1718 | version = "1.1.0" 1719 | source = "registry+https://github.com/rust-lang/crates.io-index" 1720 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" 1721 | 1722 | [[package]] 1723 | name = "scratch" 1724 | version = "1.0.3" 1725 | source = "registry+https://github.com/rust-lang/crates.io-index" 1726 | checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" 1727 | 1728 | [[package]] 1729 | name = "sctk-adwaita" 1730 | version = "0.4.3" 1731 | source = "registry+https://github.com/rust-lang/crates.io-index" 1732 | checksum = "61270629cc6b4d77ec1907db1033d5c2e1a404c412743621981a871dc9c12339" 1733 | dependencies = [ 1734 | "crossfont", 1735 | "log", 1736 | "smithay-client-toolkit", 1737 | "tiny-skia", 1738 | ] 1739 | 1740 | [[package]] 1741 | name = "serde" 1742 | version = "1.0.152" 1743 | source = "registry+https://github.com/rust-lang/crates.io-index" 1744 | checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" 1745 | 1746 | [[package]] 1747 | name = "serde_derive" 1748 | version = "1.0.152" 1749 | source = "registry+https://github.com/rust-lang/crates.io-index" 1750 | checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" 1751 | dependencies = [ 1752 | "proc-macro2", 1753 | "quote", 1754 | "syn 1.0.107", 1755 | ] 1756 | 1757 | [[package]] 1758 | name = "serde_json" 1759 | version = "1.0.93" 1760 | source = "registry+https://github.com/rust-lang/crates.io-index" 1761 | checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76" 1762 | dependencies = [ 1763 | "itoa", 1764 | "ryu", 1765 | "serde", 1766 | ] 1767 | 1768 | [[package]] 1769 | name = "servo-fontconfig" 1770 | version = "0.5.1" 1771 | source = "registry+https://github.com/rust-lang/crates.io-index" 1772 | checksum = "c7e3e22fe5fd73d04ebf0daa049d3efe3eae55369ce38ab16d07ddd9ac5c217c" 1773 | dependencies = [ 1774 | "libc", 1775 | "servo-fontconfig-sys", 1776 | ] 1777 | 1778 | [[package]] 1779 | name = "servo-fontconfig-sys" 1780 | version = "5.1.0" 1781 | source = "registry+https://github.com/rust-lang/crates.io-index" 1782 | checksum = "e36b879db9892dfa40f95da1c38a835d41634b825fbd8c4c418093d53c24b388" 1783 | dependencies = [ 1784 | "expat-sys", 1785 | "freetype-sys", 1786 | "pkg-config", 1787 | ] 1788 | 1789 | [[package]] 1790 | name = "sharded-slab" 1791 | version = "0.1.4" 1792 | source = "registry+https://github.com/rust-lang/crates.io-index" 1793 | checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" 1794 | dependencies = [ 1795 | "lazy_static", 1796 | ] 1797 | 1798 | [[package]] 1799 | name = "slab" 1800 | version = "0.4.7" 1801 | source = "registry+https://github.com/rust-lang/crates.io-index" 1802 | checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" 1803 | dependencies = [ 1804 | "autocfg", 1805 | ] 1806 | 1807 | [[package]] 1808 | name = "slotmap" 1809 | version = "1.0.6" 1810 | source = "registry+https://github.com/rust-lang/crates.io-index" 1811 | checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" 1812 | dependencies = [ 1813 | "version_check", 1814 | ] 1815 | 1816 | [[package]] 1817 | name = "smallvec" 1818 | version = "1.10.0" 1819 | source = "registry+https://github.com/rust-lang/crates.io-index" 1820 | checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" 1821 | 1822 | [[package]] 1823 | name = "smithay-client-toolkit" 1824 | version = "0.16.0" 1825 | source = "registry+https://github.com/rust-lang/crates.io-index" 1826 | checksum = "f307c47d32d2715eb2e0ece5589057820e0e5e70d07c247d1063e844e107f454" 1827 | dependencies = [ 1828 | "bitflags 1.3.2", 1829 | "calloop", 1830 | "dlib", 1831 | "lazy_static", 1832 | "log", 1833 | "memmap2", 1834 | "nix 0.24.3", 1835 | "pkg-config", 1836 | "wayland-client", 1837 | "wayland-cursor", 1838 | "wayland-protocols", 1839 | ] 1840 | 1841 | [[package]] 1842 | name = "spirv" 1843 | version = "0.2.0+1.5.4" 1844 | source = "registry+https://github.com/rust-lang/crates.io-index" 1845 | checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830" 1846 | dependencies = [ 1847 | "bitflags 1.3.2", 1848 | "num-traits", 1849 | ] 1850 | 1851 | [[package]] 1852 | name = "static_assertions" 1853 | version = "1.1.0" 1854 | source = "registry+https://github.com/rust-lang/crates.io-index" 1855 | checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" 1856 | 1857 | [[package]] 1858 | name = "strsim" 1859 | version = "0.10.0" 1860 | source = "registry+https://github.com/rust-lang/crates.io-index" 1861 | checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" 1862 | 1863 | [[package]] 1864 | name = "syn" 1865 | version = "1.0.107" 1866 | source = "registry+https://github.com/rust-lang/crates.io-index" 1867 | checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" 1868 | dependencies = [ 1869 | "proc-macro2", 1870 | "quote", 1871 | "unicode-ident", 1872 | ] 1873 | 1874 | [[package]] 1875 | name = "syn" 1876 | version = "2.0.37" 1877 | source = "registry+https://github.com/rust-lang/crates.io-index" 1878 | checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8" 1879 | dependencies = [ 1880 | "proc-macro2", 1881 | "quote", 1882 | "unicode-ident", 1883 | ] 1884 | 1885 | [[package]] 1886 | name = "termcolor" 1887 | version = "1.2.0" 1888 | source = "registry+https://github.com/rust-lang/crates.io-index" 1889 | checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" 1890 | dependencies = [ 1891 | "winapi-util", 1892 | ] 1893 | 1894 | [[package]] 1895 | name = "thiserror" 1896 | version = "1.0.38" 1897 | source = "registry+https://github.com/rust-lang/crates.io-index" 1898 | checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" 1899 | dependencies = [ 1900 | "thiserror-impl", 1901 | ] 1902 | 1903 | [[package]] 1904 | name = "thiserror-impl" 1905 | version = "1.0.38" 1906 | source = "registry+https://github.com/rust-lang/crates.io-index" 1907 | checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" 1908 | dependencies = [ 1909 | "proc-macro2", 1910 | "quote", 1911 | "syn 1.0.107", 1912 | ] 1913 | 1914 | [[package]] 1915 | name = "thread-id" 1916 | version = "3.3.0" 1917 | source = "registry+https://github.com/rust-lang/crates.io-index" 1918 | checksum = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1" 1919 | dependencies = [ 1920 | "libc", 1921 | "redox_syscall 0.1.57", 1922 | "winapi 0.3.9", 1923 | ] 1924 | 1925 | [[package]] 1926 | name = "thread_local" 1927 | version = "1.1.4" 1928 | source = "registry+https://github.com/rust-lang/crates.io-index" 1929 | checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" 1930 | dependencies = [ 1931 | "once_cell", 1932 | ] 1933 | 1934 | [[package]] 1935 | name = "tiny-skia" 1936 | version = "0.7.0" 1937 | source = "registry+https://github.com/rust-lang/crates.io-index" 1938 | checksum = "642680569bb895b16e4b9d181c60be1ed136fa0c9c7f11d004daf053ba89bf82" 1939 | dependencies = [ 1940 | "arrayref", 1941 | "arrayvec 0.5.2", 1942 | "bytemuck", 1943 | "cfg-if 1.0.0", 1944 | "png", 1945 | "safe_arch", 1946 | "tiny-skia-path", 1947 | ] 1948 | 1949 | [[package]] 1950 | name = "tiny-skia-path" 1951 | version = "0.7.0" 1952 | source = "registry+https://github.com/rust-lang/crates.io-index" 1953 | checksum = "c114d32f0c2ee43d585367cb013dfaba967ab9f62b90d9af0d696e955e70fa6c" 1954 | dependencies = [ 1955 | "arrayref", 1956 | "bytemuck", 1957 | ] 1958 | 1959 | [[package]] 1960 | name = "toml_datetime" 1961 | version = "0.5.1" 1962 | source = "registry+https://github.com/rust-lang/crates.io-index" 1963 | checksum = "4553f467ac8e3d374bc9a177a26801e5d0f9b211aa1673fb137a403afd1c9cf5" 1964 | 1965 | [[package]] 1966 | name = "toml_edit" 1967 | version = "0.18.1" 1968 | source = "registry+https://github.com/rust-lang/crates.io-index" 1969 | checksum = "56c59d8dd7d0dcbc6428bf7aa2f0e823e26e43b3c9aca15bbc9475d23e5fa12b" 1970 | dependencies = [ 1971 | "indexmap", 1972 | "nom8", 1973 | "toml_datetime", 1974 | ] 1975 | 1976 | [[package]] 1977 | name = "tracing" 1978 | version = "0.1.37" 1979 | source = "registry+https://github.com/rust-lang/crates.io-index" 1980 | checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" 1981 | dependencies = [ 1982 | "cfg-if 1.0.0", 1983 | "pin-project-lite", 1984 | "tracing-core", 1985 | ] 1986 | 1987 | [[package]] 1988 | name = "tracing-core" 1989 | version = "0.1.30" 1990 | source = "registry+https://github.com/rust-lang/crates.io-index" 1991 | checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" 1992 | dependencies = [ 1993 | "once_cell", 1994 | "valuable", 1995 | ] 1996 | 1997 | [[package]] 1998 | name = "tracing-log" 1999 | version = "0.1.3" 2000 | source = "registry+https://github.com/rust-lang/crates.io-index" 2001 | checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" 2002 | dependencies = [ 2003 | "lazy_static", 2004 | "log", 2005 | "tracing-core", 2006 | ] 2007 | 2008 | [[package]] 2009 | name = "tracing-serde" 2010 | version = "0.1.3" 2011 | source = "registry+https://github.com/rust-lang/crates.io-index" 2012 | checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" 2013 | dependencies = [ 2014 | "serde", 2015 | "tracing-core", 2016 | ] 2017 | 2018 | [[package]] 2019 | name = "tracing-subscriber" 2020 | version = "0.2.25" 2021 | source = "registry+https://github.com/rust-lang/crates.io-index" 2022 | checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" 2023 | dependencies = [ 2024 | "ansi_term", 2025 | "chrono", 2026 | "lazy_static", 2027 | "matchers", 2028 | "regex", 2029 | "serde", 2030 | "serde_json", 2031 | "sharded-slab", 2032 | "smallvec", 2033 | "thread_local", 2034 | "tracing", 2035 | "tracing-core", 2036 | "tracing-log", 2037 | "tracing-serde", 2038 | ] 2039 | 2040 | [[package]] 2041 | name = "unicode-ident" 2042 | version = "1.0.6" 2043 | source = "registry+https://github.com/rust-lang/crates.io-index" 2044 | checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" 2045 | 2046 | [[package]] 2047 | name = "unicode-width" 2048 | version = "0.1.10" 2049 | source = "registry+https://github.com/rust-lang/crates.io-index" 2050 | checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" 2051 | 2052 | [[package]] 2053 | name = "unicode-xid" 2054 | version = "0.2.4" 2055 | source = "registry+https://github.com/rust-lang/crates.io-index" 2056 | checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" 2057 | 2058 | [[package]] 2059 | name = "valuable" 2060 | version = "0.1.0" 2061 | source = "registry+https://github.com/rust-lang/crates.io-index" 2062 | checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 2063 | 2064 | [[package]] 2065 | name = "vec_map" 2066 | version = "0.8.2" 2067 | source = "registry+https://github.com/rust-lang/crates.io-index" 2068 | checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" 2069 | 2070 | [[package]] 2071 | name = "version_check" 2072 | version = "0.9.4" 2073 | source = "registry+https://github.com/rust-lang/crates.io-index" 2074 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 2075 | 2076 | [[package]] 2077 | name = "walkdir" 2078 | version = "2.3.2" 2079 | source = "registry+https://github.com/rust-lang/crates.io-index" 2080 | checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" 2081 | dependencies = [ 2082 | "same-file", 2083 | "winapi 0.3.9", 2084 | "winapi-util", 2085 | ] 2086 | 2087 | [[package]] 2088 | name = "wasi" 2089 | version = "0.11.0+wasi-snapshot-preview1" 2090 | source = "registry+https://github.com/rust-lang/crates.io-index" 2091 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 2092 | 2093 | [[package]] 2094 | name = "wasm-bindgen" 2095 | version = "0.2.87" 2096 | source = "registry+https://github.com/rust-lang/crates.io-index" 2097 | checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" 2098 | dependencies = [ 2099 | "cfg-if 1.0.0", 2100 | "wasm-bindgen-macro", 2101 | ] 2102 | 2103 | [[package]] 2104 | name = "wasm-bindgen-backend" 2105 | version = "0.2.87" 2106 | source = "registry+https://github.com/rust-lang/crates.io-index" 2107 | checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" 2108 | dependencies = [ 2109 | "bumpalo", 2110 | "log", 2111 | "once_cell", 2112 | "proc-macro2", 2113 | "quote", 2114 | "syn 2.0.37", 2115 | "wasm-bindgen-shared", 2116 | ] 2117 | 2118 | [[package]] 2119 | name = "wasm-bindgen-futures" 2120 | version = "0.4.34" 2121 | source = "registry+https://github.com/rust-lang/crates.io-index" 2122 | checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" 2123 | dependencies = [ 2124 | "cfg-if 1.0.0", 2125 | "js-sys", 2126 | "wasm-bindgen", 2127 | "web-sys", 2128 | ] 2129 | 2130 | [[package]] 2131 | name = "wasm-bindgen-macro" 2132 | version = "0.2.87" 2133 | source = "registry+https://github.com/rust-lang/crates.io-index" 2134 | checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" 2135 | dependencies = [ 2136 | "quote", 2137 | "wasm-bindgen-macro-support", 2138 | ] 2139 | 2140 | [[package]] 2141 | name = "wasm-bindgen-macro-support" 2142 | version = "0.2.87" 2143 | source = "registry+https://github.com/rust-lang/crates.io-index" 2144 | checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" 2145 | dependencies = [ 2146 | "proc-macro2", 2147 | "quote", 2148 | "syn 2.0.37", 2149 | "wasm-bindgen-backend", 2150 | "wasm-bindgen-shared", 2151 | ] 2152 | 2153 | [[package]] 2154 | name = "wasm-bindgen-shared" 2155 | version = "0.2.87" 2156 | source = "registry+https://github.com/rust-lang/crates.io-index" 2157 | checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" 2158 | 2159 | [[package]] 2160 | name = "wayland-client" 2161 | version = "0.29.5" 2162 | source = "registry+https://github.com/rust-lang/crates.io-index" 2163 | checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715" 2164 | dependencies = [ 2165 | "bitflags 1.3.2", 2166 | "downcast-rs", 2167 | "libc", 2168 | "nix 0.24.3", 2169 | "scoped-tls", 2170 | "wayland-commons", 2171 | "wayland-scanner", 2172 | "wayland-sys", 2173 | ] 2174 | 2175 | [[package]] 2176 | name = "wayland-commons" 2177 | version = "0.29.5" 2178 | source = "registry+https://github.com/rust-lang/crates.io-index" 2179 | checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902" 2180 | dependencies = [ 2181 | "nix 0.24.3", 2182 | "once_cell", 2183 | "smallvec", 2184 | "wayland-sys", 2185 | ] 2186 | 2187 | [[package]] 2188 | name = "wayland-cursor" 2189 | version = "0.29.5" 2190 | source = "registry+https://github.com/rust-lang/crates.io-index" 2191 | checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661" 2192 | dependencies = [ 2193 | "nix 0.24.3", 2194 | "wayland-client", 2195 | "xcursor", 2196 | ] 2197 | 2198 | [[package]] 2199 | name = "wayland-protocols" 2200 | version = "0.29.5" 2201 | source = "registry+https://github.com/rust-lang/crates.io-index" 2202 | checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6" 2203 | dependencies = [ 2204 | "bitflags 1.3.2", 2205 | "wayland-client", 2206 | "wayland-commons", 2207 | "wayland-scanner", 2208 | ] 2209 | 2210 | [[package]] 2211 | name = "wayland-scanner" 2212 | version = "0.29.5" 2213 | source = "registry+https://github.com/rust-lang/crates.io-index" 2214 | checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53" 2215 | dependencies = [ 2216 | "proc-macro2", 2217 | "quote", 2218 | "xml-rs", 2219 | ] 2220 | 2221 | [[package]] 2222 | name = "wayland-sys" 2223 | version = "0.29.5" 2224 | source = "registry+https://github.com/rust-lang/crates.io-index" 2225 | checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4" 2226 | dependencies = [ 2227 | "dlib", 2228 | "lazy_static", 2229 | "pkg-config", 2230 | ] 2231 | 2232 | [[package]] 2233 | name = "web-sys" 2234 | version = "0.3.64" 2235 | source = "registry+https://github.com/rust-lang/crates.io-index" 2236 | checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" 2237 | dependencies = [ 2238 | "js-sys", 2239 | "wasm-bindgen", 2240 | ] 2241 | 2242 | [[package]] 2243 | name = "wgpu" 2244 | version = "0.17.1" 2245 | source = "registry+https://github.com/rust-lang/crates.io-index" 2246 | checksum = "ed547920565c56c7a29afb4538ac5ae5048865a5d2f05bff3ad4fbeb921a9a2c" 2247 | dependencies = [ 2248 | "arrayvec 0.7.2", 2249 | "cfg-if 1.0.0", 2250 | "js-sys", 2251 | "log", 2252 | "naga", 2253 | "parking_lot 0.12.1", 2254 | "profiling", 2255 | "raw-window-handle 0.5.0", 2256 | "smallvec", 2257 | "static_assertions", 2258 | "wasm-bindgen", 2259 | "wasm-bindgen-futures", 2260 | "web-sys", 2261 | "wgpu-core", 2262 | "wgpu-hal", 2263 | "wgpu-types", 2264 | ] 2265 | 2266 | [[package]] 2267 | name = "wgpu-core" 2268 | version = "0.17.1" 2269 | source = "registry+https://github.com/rust-lang/crates.io-index" 2270 | checksum = "0f8a44dd301a30ceeed3c27d8c0090433d3da04d7b2a4042738095a424d12ae7" 2271 | dependencies = [ 2272 | "arrayvec 0.7.2", 2273 | "bit-vec", 2274 | "bitflags 2.4.0", 2275 | "codespan-reporting", 2276 | "log", 2277 | "naga", 2278 | "parking_lot 0.12.1", 2279 | "profiling", 2280 | "raw-window-handle 0.5.0", 2281 | "rustc-hash", 2282 | "smallvec", 2283 | "thiserror", 2284 | "web-sys", 2285 | "wgpu-hal", 2286 | "wgpu-types", 2287 | ] 2288 | 2289 | [[package]] 2290 | name = "wgpu-hal" 2291 | version = "0.17.1" 2292 | source = "registry+https://github.com/rust-lang/crates.io-index" 2293 | checksum = "0df4fc240da3c460a52cf0ff8f1b71fd6544a6b49f74ff2330238fcb0fd99512" 2294 | dependencies = [ 2295 | "android_system_properties", 2296 | "arrayvec 0.7.2", 2297 | "ash", 2298 | "bit-set", 2299 | "bitflags 2.4.0", 2300 | "block", 2301 | "core-graphics-types", 2302 | "d3d12", 2303 | "glow", 2304 | "gpu-alloc", 2305 | "gpu-allocator", 2306 | "gpu-descriptor", 2307 | "hassle-rs", 2308 | "js-sys", 2309 | "khronos-egl", 2310 | "libc", 2311 | "libloading", 2312 | "log", 2313 | "metal", 2314 | "naga", 2315 | "objc", 2316 | "parking_lot 0.12.1", 2317 | "profiling", 2318 | "range-alloc", 2319 | "raw-window-handle 0.5.0", 2320 | "renderdoc-sys", 2321 | "rustc-hash", 2322 | "smallvec", 2323 | "thiserror", 2324 | "wasm-bindgen", 2325 | "web-sys", 2326 | "wgpu-types", 2327 | "winapi 0.3.9", 2328 | ] 2329 | 2330 | [[package]] 2331 | name = "wgpu-subscriber" 2332 | version = "0.1.0" 2333 | source = "registry+https://github.com/rust-lang/crates.io-index" 2334 | checksum = "91955b0d6480d86e577bbd0b0d1dd5acd0699c054610dc8673c4c3366295ed27" 2335 | dependencies = [ 2336 | "parking_lot 0.11.2", 2337 | "thread-id", 2338 | "tracing", 2339 | "tracing-log", 2340 | "tracing-subscriber", 2341 | ] 2342 | 2343 | [[package]] 2344 | name = "wgpu-types" 2345 | version = "0.17.0" 2346 | source = "registry+https://github.com/rust-lang/crates.io-index" 2347 | checksum = "ee64d7398d0c2f9ca48922c902ef69c42d000c759f3db41e355f4a570b052b67" 2348 | dependencies = [ 2349 | "bitflags 2.4.0", 2350 | "js-sys", 2351 | "web-sys", 2352 | ] 2353 | 2354 | [[package]] 2355 | name = "wgsl-playground" 2356 | version = "0.1.7" 2357 | dependencies = [ 2358 | "bytemuck", 2359 | "clap", 2360 | "futures", 2361 | "notify", 2362 | "wgpu", 2363 | "wgpu-subscriber", 2364 | "winit", 2365 | ] 2366 | 2367 | [[package]] 2368 | name = "widestring" 2369 | version = "1.0.2" 2370 | source = "registry+https://github.com/rust-lang/crates.io-index" 2371 | checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" 2372 | 2373 | [[package]] 2374 | name = "winapi" 2375 | version = "0.2.8" 2376 | source = "registry+https://github.com/rust-lang/crates.io-index" 2377 | checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" 2378 | 2379 | [[package]] 2380 | name = "winapi" 2381 | version = "0.3.9" 2382 | source = "registry+https://github.com/rust-lang/crates.io-index" 2383 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 2384 | dependencies = [ 2385 | "winapi-i686-pc-windows-gnu", 2386 | "winapi-x86_64-pc-windows-gnu", 2387 | ] 2388 | 2389 | [[package]] 2390 | name = "winapi-build" 2391 | version = "0.1.1" 2392 | source = "registry+https://github.com/rust-lang/crates.io-index" 2393 | checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" 2394 | 2395 | [[package]] 2396 | name = "winapi-i686-pc-windows-gnu" 2397 | version = "0.4.0" 2398 | source = "registry+https://github.com/rust-lang/crates.io-index" 2399 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2400 | 2401 | [[package]] 2402 | name = "winapi-util" 2403 | version = "0.1.5" 2404 | source = "registry+https://github.com/rust-lang/crates.io-index" 2405 | checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" 2406 | dependencies = [ 2407 | "winapi 0.3.9", 2408 | ] 2409 | 2410 | [[package]] 2411 | name = "winapi-x86_64-pc-windows-gnu" 2412 | version = "0.4.0" 2413 | source = "registry+https://github.com/rust-lang/crates.io-index" 2414 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2415 | 2416 | [[package]] 2417 | name = "windows" 2418 | version = "0.44.0" 2419 | source = "registry+https://github.com/rust-lang/crates.io-index" 2420 | checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b" 2421 | dependencies = [ 2422 | "windows-targets", 2423 | ] 2424 | 2425 | [[package]] 2426 | name = "windows-sys" 2427 | version = "0.36.1" 2428 | source = "registry+https://github.com/rust-lang/crates.io-index" 2429 | checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" 2430 | dependencies = [ 2431 | "windows_aarch64_msvc 0.36.1", 2432 | "windows_i686_gnu 0.36.1", 2433 | "windows_i686_msvc 0.36.1", 2434 | "windows_x86_64_gnu 0.36.1", 2435 | "windows_x86_64_msvc 0.36.1", 2436 | ] 2437 | 2438 | [[package]] 2439 | name = "windows-sys" 2440 | version = "0.42.0" 2441 | source = "registry+https://github.com/rust-lang/crates.io-index" 2442 | checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" 2443 | dependencies = [ 2444 | "windows_aarch64_gnullvm", 2445 | "windows_aarch64_msvc 0.42.1", 2446 | "windows_i686_gnu 0.42.1", 2447 | "windows_i686_msvc 0.42.1", 2448 | "windows_x86_64_gnu 0.42.1", 2449 | "windows_x86_64_gnullvm", 2450 | "windows_x86_64_msvc 0.42.1", 2451 | ] 2452 | 2453 | [[package]] 2454 | name = "windows-sys" 2455 | version = "0.45.0" 2456 | source = "registry+https://github.com/rust-lang/crates.io-index" 2457 | checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" 2458 | dependencies = [ 2459 | "windows-targets", 2460 | ] 2461 | 2462 | [[package]] 2463 | name = "windows-targets" 2464 | version = "0.42.1" 2465 | source = "registry+https://github.com/rust-lang/crates.io-index" 2466 | checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" 2467 | dependencies = [ 2468 | "windows_aarch64_gnullvm", 2469 | "windows_aarch64_msvc 0.42.1", 2470 | "windows_i686_gnu 0.42.1", 2471 | "windows_i686_msvc 0.42.1", 2472 | "windows_x86_64_gnu 0.42.1", 2473 | "windows_x86_64_gnullvm", 2474 | "windows_x86_64_msvc 0.42.1", 2475 | ] 2476 | 2477 | [[package]] 2478 | name = "windows_aarch64_gnullvm" 2479 | version = "0.42.1" 2480 | source = "registry+https://github.com/rust-lang/crates.io-index" 2481 | checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" 2482 | 2483 | [[package]] 2484 | name = "windows_aarch64_msvc" 2485 | version = "0.36.1" 2486 | source = "registry+https://github.com/rust-lang/crates.io-index" 2487 | checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" 2488 | 2489 | [[package]] 2490 | name = "windows_aarch64_msvc" 2491 | version = "0.42.1" 2492 | source = "registry+https://github.com/rust-lang/crates.io-index" 2493 | checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" 2494 | 2495 | [[package]] 2496 | name = "windows_i686_gnu" 2497 | version = "0.36.1" 2498 | source = "registry+https://github.com/rust-lang/crates.io-index" 2499 | checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" 2500 | 2501 | [[package]] 2502 | name = "windows_i686_gnu" 2503 | version = "0.42.1" 2504 | source = "registry+https://github.com/rust-lang/crates.io-index" 2505 | checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" 2506 | 2507 | [[package]] 2508 | name = "windows_i686_msvc" 2509 | version = "0.36.1" 2510 | source = "registry+https://github.com/rust-lang/crates.io-index" 2511 | checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" 2512 | 2513 | [[package]] 2514 | name = "windows_i686_msvc" 2515 | version = "0.42.1" 2516 | source = "registry+https://github.com/rust-lang/crates.io-index" 2517 | checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" 2518 | 2519 | [[package]] 2520 | name = "windows_x86_64_gnu" 2521 | version = "0.36.1" 2522 | source = "registry+https://github.com/rust-lang/crates.io-index" 2523 | checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" 2524 | 2525 | [[package]] 2526 | name = "windows_x86_64_gnu" 2527 | version = "0.42.1" 2528 | source = "registry+https://github.com/rust-lang/crates.io-index" 2529 | checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" 2530 | 2531 | [[package]] 2532 | name = "windows_x86_64_gnullvm" 2533 | version = "0.42.1" 2534 | source = "registry+https://github.com/rust-lang/crates.io-index" 2535 | checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" 2536 | 2537 | [[package]] 2538 | name = "windows_x86_64_msvc" 2539 | version = "0.36.1" 2540 | source = "registry+https://github.com/rust-lang/crates.io-index" 2541 | checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" 2542 | 2543 | [[package]] 2544 | name = "windows_x86_64_msvc" 2545 | version = "0.42.1" 2546 | source = "registry+https://github.com/rust-lang/crates.io-index" 2547 | checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" 2548 | 2549 | [[package]] 2550 | name = "winit" 2551 | version = "0.27.5" 2552 | source = "registry+https://github.com/rust-lang/crates.io-index" 2553 | checksum = "bb796d6fbd86b2fd896c9471e6f04d39d750076ebe5680a3958f00f5ab97657c" 2554 | dependencies = [ 2555 | "bitflags 1.3.2", 2556 | "cocoa", 2557 | "core-foundation", 2558 | "core-graphics", 2559 | "dispatch", 2560 | "instant", 2561 | "libc", 2562 | "log", 2563 | "mio 0.8.5", 2564 | "ndk", 2565 | "ndk-glue", 2566 | "objc", 2567 | "once_cell", 2568 | "parking_lot 0.12.1", 2569 | "percent-encoding", 2570 | "raw-window-handle 0.4.3", 2571 | "raw-window-handle 0.5.0", 2572 | "sctk-adwaita", 2573 | "smithay-client-toolkit", 2574 | "wasm-bindgen", 2575 | "wayland-client", 2576 | "wayland-protocols", 2577 | "web-sys", 2578 | "windows-sys 0.36.1", 2579 | "x11-dl", 2580 | ] 2581 | 2582 | [[package]] 2583 | name = "wio" 2584 | version = "0.2.2" 2585 | source = "registry+https://github.com/rust-lang/crates.io-index" 2586 | checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5" 2587 | dependencies = [ 2588 | "winapi 0.3.9", 2589 | ] 2590 | 2591 | [[package]] 2592 | name = "ws2_32-sys" 2593 | version = "0.2.1" 2594 | source = "registry+https://github.com/rust-lang/crates.io-index" 2595 | checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" 2596 | dependencies = [ 2597 | "winapi 0.2.8", 2598 | "winapi-build", 2599 | ] 2600 | 2601 | [[package]] 2602 | name = "x11-dl" 2603 | version = "2.21.0" 2604 | source = "registry+https://github.com/rust-lang/crates.io-index" 2605 | checksum = "38735924fedd5314a6e548792904ed8c6de6636285cb9fec04d5b1db85c1516f" 2606 | dependencies = [ 2607 | "libc", 2608 | "once_cell", 2609 | "pkg-config", 2610 | ] 2611 | 2612 | [[package]] 2613 | name = "xcursor" 2614 | version = "0.3.4" 2615 | source = "registry+https://github.com/rust-lang/crates.io-index" 2616 | checksum = "463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7" 2617 | dependencies = [ 2618 | "nom", 2619 | ] 2620 | 2621 | [[package]] 2622 | name = "xml-rs" 2623 | version = "0.8.4" 2624 | source = "registry+https://github.com/rust-lang/crates.io-index" 2625 | checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" 2626 | --------------------------------------------------------------------------------