# Juliet\include\Graphics\ImGuiRenderer

## Source Files
- Header: `Juliet\include\Graphics\ImGuiRenderer.h`
- Source: `Juliet\src\Graphics\ImGuiRenderer.cpp`

## AI Description
The `ImGuiRenderer` component in the Juliet graphics library is designed to handle rendering of ImGui UI elements directly within a graphics pipeline. It initializes, manages, and renders ImGui windows and controls on the GPU using DirectX 12. The component includes functions for initializing, shutting down, starting a new frame, and rendering the ImGui content into a command list. It uses a set of buffers and transfer buffers to manage vertex and index data efficiently, ensuring smooth and responsive UI interactions.

## Symbols

### Namespace `Juliet`

#### Functions & Methods
- `extern bool ImGuiRenderer_Initialize(GraphicsDevice* device)`
- `extern void ImGuiRenderer_Shutdown(GraphicsDevice* device)`
- `extern void ImGuiRenderer_NewFrame()`
- `extern JULIET_API void ImGuiRenderer_Render(CommandList* cmdList, RenderPass* renderPass)`

