dear-imgui-wgpu 0.14.0

WGPU renderer backend for dear-imgui-rs (native + WebAssembly)
Documentation

dear-imgui-wgpu

WGPU renderer for Dear ImGui.

Quick Start

use dear_imgui_rs::Context;
use dear_imgui_wgpu::{WgpuRenderer, WgpuInitInfo, GammaMode};

// device, queue, surface_format prepared ahead
let mut renderer = WgpuRenderer::new(WgpuInitInfo::new(device, queue, surface_format), &mut imgui)?;

// Optional: unify gamma policy across backends
renderer.set_gamma_mode(GammaMode::Auto); // Auto | Linear | Gamma22

// per-frame
renderer.render_draw_data(&imgui.render(), &mut render_pass)?;

For multi-context applications, use render_context() or render_context_with_fb_size() so draw callbacks read Renderer_RenderState from the matching ImGui context's PlatformIO.

Selecting wgpu version

By default this crate uses wgpu v29.

If your ecosystem is pinned to wgpu v28 or wgpu v27, select it explicitly:

[dependencies]

dear-imgui-wgpu = { version = "0.14.0", default-features = false, features = ["wgpu-28"] }

[dependencies]

dear-imgui-wgpu = { version = "0.14.0", default-features = false, features = ["wgpu-27"] }

What You Get

  • ImGui v1.92 texture system integration (create/update/destroy)
  • Multi-frame buffering and device-object management
  • Format-aware or user-controlled gamma (see below)

sRGB / Gamma

  • Default GammaMode::Auto: picks gamma=2.2 for sRGB targets and 1.0 for linear targets.
  • You can force Linear (1.0) or Gamma22 (2.2).
  • Pair this with your swapchain format to avoid double correction.

Compatibility

Item Version
Crate 0.14.0
dear-imgui-rs 0.14.0
wgpu 29 (default), 28 (wgpu-28), 27 (wgpu-27)

See also: docs/COMPATIBILITY.md for the full workspace matrix.

Notes

  • Targets native and Web (with webgl/webgpu features mapped to wgpu features).
  • External dependency updates (wgpu) may require coordinated version bumps.

Features

  • Default: no extra features required for native builds
  • WGPU version selection (mutually exclusive)
    • wgpu-29 (default)
    • wgpu-28
    • wgpu-27
  • WASM targets
    • webgl / webgpu select the WASM route for the default wgpu-29 build
    • With wgpu-28, use webgl-wgpu28 / webgpu-wgpu28 instead
    • With wgpu-27, use webgl-wgpu27 / webgpu-wgpu27 instead

Pick exactly one of webgl or webgpu for browser targets; for native leave both off.