Standalone application framework for Dear ImGui
- Dear ImGui like Minimum API (referred to Dear ImGui examples)
- Texture loading API (referred to Dear ImGui tutorial)
Basic API is used just like any other Dear ImGui functions(Begin***/End*** pair).
if (ImApp::BeginApplication("Example")) // Setup
{
while (ImApp::BeginFrame()) // Process events
{
...
ImApp::EndFrame(); // Rendering
}
}
ImApp::EndApplication(); // Shutdown
Loads a texture and returns its size and ImTextureID.
int my_image_width = 0;
int my_image_height = 0;
ImTextureID my_image_texture;
bool ret = ImApp::LoadTextureFromFile("MyImage01.jpg", &my_image_texture, &my_image_width, &my_image_height);
IM_ASSERT(ret);
You can use integrated macro instead of main function.
#include "imapp.h"
IMAPP_MAIN("Minimal Example") // Setup/Process events/Rendering/Shutdown
{
ImGui::Text(...);
}
- Windows (not tested)
- macOS (not tested)
- Linux
- Ubuntu
- other distros (not tested)
- Emscripten
- OpenGL 2
- OpenGL 3
- OpenGL ES 2 (for Emscripten)
- Vulkan (customized)
Note: Consult imapp-template for build example using CMake.
- Dear ImGui core libraries
- Dear ImGui Platform/Renderer bindings
- If you use Vulkan, use the file described below.
- imapp core libaries
imapp.cpp
imapp.h
imapp_internal.h
imapp_stb_image.h
- imapp Platform bindings
- SDL2
imapp_platform_sdl.cpp
- GLFW
imapp_platform_glfw.cpp
- SDL2
- imapp Renderer bindings
- OpenGL
imapp_opengl_loader.cpp
imapp_opengl_loader.h
- OpenGL 3
imapp_renderer_opengl3.cpp
- OpenGL 2
imapp_renderer_opengl2.cpp
- Vulkan
imapp_renderer_vulkan.cpp
imapp_impl_vulkan.cpp
(Custom binding)imapp_impl_vulkan.h
- OpenGL
- Platform
- SDL2
IMAPP_PLATFORM_SDL2
- GLFW
IMAPP_PLATFORM_GLFW
- SDL2
- Renderer
- OpenGL 3
IMAPP_RENDERER_OPENGL3
- OpenGL 2
IMAPP_RENDERER_OPENGL2
- Vulkan
IMAPP_RENDERER_VULKAN
- OpenGL 3
- OpenGL Loader (Only OpenGL 3)
- GLEW
IMGUI_IMPL_OPENGL_LOADER_GLEW
- GL3W
IMGUI_IMPL_OPENGL_LOADER_GL3W
- GLAD
IMGUI_IMPL_OPENGL_LOADER_GLAD
- glbinding v2
IMGUI_IMPL_OPENGL_LOADER_GLBINDING2
- glbinding v3
IMGUI_IMPL_OPENGL_LOADER_GLBINDING3
- GLEW
- Setup build/test on GitHub Actions
- Test on Windows/macOS
- Support iOS/Android
- Support other platform/renderer
- Dear ImGui
- stb (Texture loading API using stb_image.h)
- martty/imgui (User texture binding for Vulkan Renderer)
MIT License