# Vulkano backend for egui
[](https://crates.io/crates/egui_vulkano)
[](https://docs.rs/egui_vulkano)
This is a drawing backend to use [egui](https://github.com/emilk/egui) with [Vulkano](https://github.com/vulkano-rs/vulkano).
It can be used with [egui-winit](https://github.com/emilk/egui/tree/master/egui-winit) for input handling.
## Usage
```rust
let mut egui_painter = egui_vulkano::Painter::new(
device.clone(), // your Vulkano Device
queue.clone(), // your Vulkano Queue
Subpass::from(render_pass.clone(), 1).unwrap(), // subpass that you set up to render the gui
)
.unwrap();
// ...
// Get the shapes from egui
let egui_output = egui_ctx.end_frame();
let result = egui_painter.update_textures(egui_output.textures_delta, &mut builder).unwrap();
// If using egui-winit:
egui_winit.handle_platform_output(surface.window(), &egui_ctx, egui_output.platform_output);
// Do your own rendering ...
// Automatically start the next render subpass and draw the gui
egui_painter
.draw(
&mut builder, // your vulkano AutoCommandBufferBuilder
[width, height], // window size
&egui_ctx, // your egui CtxRef
egui_output.shapes // shapes from egui,
)
.unwrap();
```
Check the included working [example](examples/example.rs) for more info.
**Pull requests are welcome!**
## Credits
With inspiration from
[egui_winit_ash_vk_mem](https://github.com/MatchaChoco010/egui_winit_ash_vk_mem),
[egui_sdl2_gl](https://github.com/ArjunNair/egui_sdl2_gl) and
[egui_glium](https://github.com/emilk/egui/tree/master/egui_glium).