Show / Hide Table of Contents

# Namespace ImGuiScene

### Classes

#### FramerateLimit

Simple encapsulation of framerate limiting behavior, allowing for fully unbounded (no control), Vsync-enabled (sync to monitor refresh), or a specified fixed framerate (vsync disabled, hard time cap)

#### GLTextureWrap

OpenGL 3 Implementation of TextureWrap. Provides a simple wrapped view of the disposeable resource as well as the handle for ImGui.

#### ImGui_Impl_DX11

Currently undocumented because it is a horrible mess. A near-direct port of https://github.com/ocornut/imgui/blob/master/examples/imgui_impl_dx11.cpp State backup follows the general layout of imgui's sample (which is a mess), but has been rather expanded to cover the vast majority of render state, following the example here https://github.com/GPUOpen-LibrariesAndSDKs/CrossfireAPI11/blob/master/amd_lib/src/AMD_SaveRestoreState.cpp Would be nice to organize it better, but it seems to work

#### ImGui_Impl_OpenGL3

Currently undocumented because it is a horrible mess. A near-direct port of https://github.com/ocornut/imgui/blob/master/examples/imgui_impl_opengl3.cpp State backup IS done for this renderer, because SDL does not play nicely when using OpenGL.

#### ImGui_Impl_SDL

Currently undocumented because it is a horrible mess. A near-direct port of https://github.com/ocornut/imgui/blob/master/examples/imgui_impl_sdl.cpp

#### ImGui_Input_Impl_Direct

#### RawDX11Scene

#### RendererFactory

Simple factory to create a renderer for a given backend API/version/etc.

#### SDLWindowGL

OpenGL specialization of SimpleSDLWindow, for setting up additional necessary states during window creation.

#### SimpleD3D

A simple wrapper for a minimal DirectX 11 renderer. Consumers of this class will need to implement all actual pipeline and render logic externally.

#### SimpleImGuiScene

Simple class to wrap everything necessary to use ImGui inside a window. Currently this always creates a new window rather than take ownership of an existing one.

Internally this uses SDL and DirectX 11 or OpenGL 3.2. Rendering is tied to vsync.

#### SimpleOGL3

A simple wrapper for a minimal OpenGL 3.2 renderer. Consumers of this class will need to implement all actual pipeline and render logic externally.

#### SimpleSDLWindow

A very basic SDL wrapper to handle creating a window and processing SDL events.

#### WindowCreateInfo

Simple wrapper for information necessary to create an application window

#### WindowFactory

Factory used to create a SimpleSDLWindow set up to work with the selected renderer.

### Interfaces

#### IImGuiInputHandler

#### IImGuiRenderer

A simple shared public interface that all ImGui render implementations follow.

#### IRenderer

Abstraction for a simple renderer that can be used with ImGui

#### TextureWrap

Simple wrapper to handle texture resources from different APIs, while accounting for resource freeing and ImGui interaction.

### Enums

#### FramerateLimit.LimitType

The different methods of limiting framerate.

#### RendererFactory.RendererBackend

### Delegates

#### RawDX11Scene.BuildUIDelegate

#### RawDX11Scene.NewInputFrameDelegate

#### RawDX11Scene.NewRenderFrameDelegate

#### SimpleImGuiScene.BuildUIDelegate

#### SimpleSDLWindow.ProcessEventDelegate