Examples

There are a number of examples for custom renderers in the UntitledImGuiFramework that you can use:

  1. Basic OpenGL - Built-in OpenGL renderer
  2. Basic Vulkan - Built-in Vulkan renderer
  3. Basic WebGPU - Built-in WebGPU renderer
  4. Basic Metal, DirectX12 and bgfx - UImGuiRendererExamples

Tips

Creating a compliant renderer

Here is a checklist for nice-to-have features we recommend you implement in your renderer:

  1. Supporting V-Sync from the renderer settings
  2. Supporting MSAA from the renderer settings
  3. Supporting texture filtering in your custom texture renderers
  4. Fill the renderer metadata strings if possible
  5. Using ImGui::GetStyle().Colors[ImGuiCol_WindowBg] as the clear colour
  6. Implementing robust framebuffer resizing
  7. For custom dear imgui renderer backends(when using renderer abstractions like bgfx):
    • Adding support for multi-viewports
    • Supporting the dynamic font API from dear imgui 1.92