imgui-vulkano-renderer-unsafe 0.6.1

A renderer for imgui-rs using Vulkano that also works with UnsafeCommandBufferBuilder
Documentation
# imgui-vulkano-renderer

A [vulkano]-based renderer for [imgui-rs].

Warning: I've only used this renderer in a few examples and a couple projects, so there are likely some issues, but it seems to work with basic ImGui usage.

Supports [imgui-rs] version `0.6.0` and [vulkano] version `0.19.0`. 

Note: Currently `vulkano-win`, the [vulkano] `winit` integration, only supports `winit 0.22.2` while `imgui-winit-support` by default uses `winit 0.23.0`. To make them compatible, enable the `winit-22` feature in the `imgui-winit-support` crate.

## Usage

The `Renderer` struct is designed to be a drop-in replacement for the equivalent in  `imgui-glium-renderer` and `imgui-gfx-renderer` (from the [imgui-rs] repository), modulo the API-specific context arguments (the Vulkano `Device` and `Queue` structs). 

### Setup:

```rust
use imgui_vulkano_renderer::Renderer;

let mut renderer = Renderer::init(
    &mut imgui_ctx,
    device.clone(),
    graphics_queue.clone(),
    Format::R8G8B8A8Srgb
).unwrap();
```

### Rendering:

Use the `Renderer::draw_commands` function to update buffers and 

```rust

let ui = imgui_ctx.frame();

// ... UI elements created here

let draw_data = ui.render();

let mut cmd_buf_builder = AutoCommandBufferBuilder::new(device.clone(), graphics_queue.family()).unwrap();

// add Vulkan commands to a command buffer. Here a new command buffer is used, but you can also append to an existing one.
renderer.draw_commands(&mut cmd_buf_builder, graphics_queue.clone(), target_image.clone(), draw_data).unwrap();

let cmd_buf = cmd_buf_builder.build().unwrap();

```

### Misc.

The font altas texture are reloaded with the following:

```rust
renderer.reupload_font_texture(&mut imgui_ctx, device.clone(), queue.clone());
```

Textures used in your UI are looked up in an `imgui::Textures` struct, which can be accessed with `Renderer::textures`.

### Examples

I rewrote a couple of examples from [imgui-rs] to show basic usage (most of them only needed setup changes to the `System` struct in [`examples/support/mod.rs`](examples/support/mod.rs)). They can be run with:

```bash
cargo run --example hello_world
cargo run --example custom_textures
```


[vulkano]: https://github.com/vulkano-rs/vulkano
[imgui-rs]: https://github.com/Gekkio/imgui-rs