Crate dear_imgui_wgpu

Crate dear_imgui_wgpu 

Source
Expand description

WGPU backend for Dear ImGui

This crate provides a WGPU-based renderer for Dear ImGui, allowing you to render Dear ImGui interfaces using the WGPU graphics API.

§Features

  • Modern texture management: Full integration with Dear ImGui’s ImTextureData system
  • Gamma correction: Automatic sRGB format detection and gamma correction
  • Multi-frame buffering: Support for multiple frames in flight
  • Device object management: Proper handling of device loss and recovery
  • Multi-viewport support: Support for multiple windows (feature-gated)

§Example

use dear_imgui::Context;
use dear_imgui_wgpu::{WgpuRenderer, WgpuInitInfo};
use wgpu::*;

// Initialize WGPU device and queue
let instance = Instance::new(&InstanceDescriptor::default());
let adapter = instance.request_adapter(&RequestAdapterOptions::default()).await.unwrap();
let (device, queue) = adapter.request_device(&DeviceDescriptor::default()).await?;

// Create Dear ImGui context
let mut imgui = Context::create();

// Create renderer
let init_info = WgpuInitInfo::new(device, queue, TextureFormat::Bgra8UnormSrgb);
let mut renderer = WgpuRenderer::new();
renderer.init(init_info)?;
renderer.configure_imgui_context(&mut imgui);
renderer.prepare_font_atlas(&mut imgui)?;

// In your render loop:
// imgui.new_frame();
// ... build your UI ...
// let draw_data = imgui.render();
// renderer.render_draw_data(&draw_data, &mut render_pass)?;

Structs§

FrameResources
Per-frame resources
FrameResourcesStats
Statistics for frame resources
RenderResources
Shared render resources
RenderResourcesStats
Statistics for render resources
ShaderManager
Shader manager
UniformBuffer
Uniform buffer manager
Uniforms
Uniform data structure
WgpuBackendData
Main backend data structure
WgpuInitInfo
Initialization data for ImGui WGPU renderer
WgpuRenderState
Selected render state data shared with callbacks
WgpuRenderer
Main WGPU renderer for Dear ImGui
WgpuTexture
WGPU texture resource
WgpuTextureManager
Texture manager for WGPU renderer

Enums§

GammaMode
Gamma correction mode for the WGPU renderer
RendererError
Errors that can occur during rendering operations
TextureUpdateResult
Result of a texture update operation

Constants§

FS_ENTRY_POINT
Fragment shader entry point
SHADER_SOURCE
WGSL shader source
VS_ENTRY_POINT
Vertex shader entry point

Functions§

create_bind_group_layouts
Create bind group layouts for the pipeline
create_fragment_state
Create fragment state for render pipeline
create_vertex_buffer_layout
Create vertex buffer layout for Dear ImGui vertices
create_vertex_state
Create vertex state for render pipeline

Type Aliases§

RendererResult
Result type for renderer operations