All Projects → abdes → Asap_app_imgui

abdes / Asap_app_imgui

Licence: bsd-3-clause
Starter project for portable app with optional GUI (GLFW/ImGui) and a rich builtin debug UI. Includes docked windows, log viewer, settings editor, configuration load/save, etc...

Projects that are alternatives of or similar to Asap app imgui

Imgui Go
Go wrapper library for "Dear ImGui" (https://github.com/ocornut/imgui)
Stars: ✭ 499 (+612.86%)
Mutual labels:  gui, imgui
Layout
Single-file library for calculating 2D UI layouts using stacking boxes. Compiles as C99 or C++.
Stars: ✭ 551 (+687.14%)
Mutual labels:  gui, imgui
Iconfontcppheaders
C, C++ headers and C# classes for icon fonts: Font Awesome, Fork Awesome, Material Design, Kenney game icons and Fontaudio
Stars: ✭ 509 (+627.14%)
Mutual labels:  gui, imgui
Wxwidgets
wxWidgets is a free and open source cross-platform C++ framework for writing advanced GUI applications using native controls.
Stars: ✭ 3,994 (+5605.71%)
Mutual labels:  portable, gui
Cimgui
c-api for imgui (https://github.com/ocornut/imgui) Look at: https://github.com/cimgui for other widgets
Stars: ✭ 707 (+910%)
Mutual labels:  gui, imgui
Imgui
Bloat-free Immediate Mode Graphical User interface for JVM with minimal dependencies (rewrite of dear imgui)
Stars: ✭ 394 (+462.86%)
Mutual labels:  gui, imgui
Dearpygui
Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies
Stars: ✭ 6,631 (+9372.86%)
Mutual labels:  gui, imgui
Simple
The Simple Intelligent and Modular Programming Language and Environment
Stars: ✭ 120 (+71.43%)
Mutual labels:  portable, gui
Cvui
A (very) simple UI lib built on top of OpenCV drawing primitives
Stars: ✭ 619 (+784.29%)
Mutual labels:  gui, imgui
Imgui Sfml
Dear ImGui binding for use with SFML
Stars: ✭ 596 (+751.43%)
Mutual labels:  gui, imgui
Imgui Plot
An improved plot widget for Dear ImGui, aimed at displaying audio data
Stars: ✭ 332 (+374.29%)
Mutual labels:  gui, imgui
Imgui
Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
Stars: ✭ 33,574 (+47862.86%)
Mutual labels:  gui, imgui
Love Nuklear
Lightweight immediate mode GUI for LÖVE games
Stars: ✭ 281 (+301.43%)
Mutual labels:  gui, imgui
Nuklear
A single-header ANSI C immediate mode cross-platform GUI library
Stars: ✭ 5,055 (+7121.43%)
Mutual labels:  gui, imgui
Libagar
Cross-Platform GUI Toolkit (stable)
Stars: ✭ 212 (+202.86%)
Mutual labels:  portable, gui
Kotlin Libui
Kotlin/Native interop to libui: a portable GUI library
Stars: ✭ 512 (+631.43%)
Mutual labels:  portable, gui
Webgui
An example demo of IMGUI (Immediate Mode GUI) on the web. Using only WebGL, GLFW and ImGui. Suitable for being compiled to web assembly (WASM).
Stars: ✭ 180 (+157.14%)
Mutual labels:  gui, imgui
Nuklear
A single-header ANSI C gui library
Stars: ✭ 13,365 (+18992.86%)
Mutual labels:  gui, imgui
Imgui markdown
Markdown for Dear ImGui
Stars: ✭ 594 (+748.57%)
Mutual labels:  gui, imgui
Giu
Cross platform rapid GUI framework for golang based on Dear ImGui.
Stars: ✭ 862 (+1131.43%)
Mutual labels:  gui, imgui

repo on GitHub repo on GitLab

Configuration Build Status
Linux G++ 7 Linux G++ 7
Linux Clang 4 Linux Clang 4
Linux Clang 5 Linux Clang 5
XCode 9.4.1 - OS X 10.13 XCode 9.4.1 - OS X 10.13
XCode 12.0 - OS X 10.15.5 XCode 12.0 - OS X 10.15.5
Windows Windows

Starter project with minimum necessary functionality

  • use cmake for the build system
  • modular structure with each module self-contained in a subdirectory within the project
  • build helpers in common/cmake to facilitate declaration of library, exe, test modules, for the end-to-end lifecycle including doc generation, test, packaging etc...
  • common facilities (common module) for platform specifics, assertions support, logging
  • unit testing with Catch2
  • backported C++17 filesystem implementation (will be portable across Linux, Mac and Windows)
  • imgui with docking
  • persistence of imgui and docks configuration

Getting the code

# Use the one you prefer :-)
# git clone --recurse-submodules -j4 https://gitlab.com/absassi/asap_app_imgui.git
# git clone --recurse-submodules -j4 https://github.com/abdes/asap_app_imgui.git

# The develop branch carries the ongoing feature development
# the master branch carries stable releases only
git checkout develop

git submodule update --recursive

NOTES:

  • most of the cutting edge stuff will be in the 'develop' branch. The master branch carries the stable releases only. As many changes are currently being made to ImGui for docking and viewports, it is recommended you checkout the develop branch for the latest features.
  • -j4 requests git to parallelize cloning of repos. Needs a relatively recent version of git. If that is not available, simply do not use this option.

Requirements

Make sure you have a C++ compiler with C++-14 capabilities at least. Gnu, Clang and MSVC all can do that with a recent version.

Building

mkdir _build && cd _build && cmake .. && cmake --build .

You can also use any of the cmake options, generators, etc...

By default the build will create shared libraries. If you want static libraries, pass -DBUILD_SHARED_LIBS=OFF to cmake during configuration:

cmake -DBUILD_SHARED_LIBS=OFF ..

You can also use any of the cmake options, generators, etc...

By default the build will create shared libraries. If you want static libraries, pass -DBUILD_SHARED_LIBS=OFF to cmake during configuration:

cmake -DBUILD_SHARED_LIBS=OFF ..
# Project options
option(BUILD_SHARED_LIBS     "Build shared instead of static libraries."              ON)
option(OPTION_SELF_CONTAINED "Create a self-contained install with all dependencies." OFF)
option(OPTION_BUILD_TESTS    "Build tests."                                           ON)
option(OPTION_BUILD_DOCS     "Build documentation."                                   OFF)
option(OPTION_BUILD_EXAMPLES "Build examples."                                        OFF)
option(OPTION_CLANG_TIDY     "Analyze code with clang-tidy."                          OFF)
option(OPTION_CPPCHECK       "Analyze code with CppCheck."                            OFF)
option(OPTION_GOOGLE_ASAN    "Instrument code with address sanitizer"                 OFF)
option(OPTION_GOOGLE_USAN    "Instrument code with memory sanitizer"                  OFF)
option(OPTION_GOOGLE_TSAN    "Instrument code with thread sanitizer"                  OFF)

The code is portable across Linux (g++ and clang), OS X and Visual Studio 2017.

Running the demo

  1. Copy the shaders from the source directory (main/src/shaders) to the build directory.
  2. Run the app from within the build directory (./asap_app)
  3. Drag and drop the frames to dock them to whichever side you want.
  4. Edit the settings as you wish
  5. When the app is closed, the settings, docks, loggers, etc are saved into the .asap directory under the build directory. Some files saved by imgui are still under the build directory directly (work in progress)

You need to have a graphics system capable of providing OpenGL 3.2 to properly run the demo.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].