( WIP ) ImGui Toolkit for openFrameworks apps: ofParameters Widgets and Layout Helpers. Modules/Engines: Log, Debugger, Docking, Layout Presets and more. NEW: iOS
Forks
Forks pushed to more recently than moebiussurfing/ofxSurfingImGui itself, plus any admin-confirmed fork with commits of its own — worth checking if you're hitting issues with the original.
Branches ahead of develop
These branches have commits not yet on develop — could be unmerged fixes or work in progress worth a look.
README
<h1>
ofxSurfingImGui.
A Dear ImGui Toolkit for openFrameworks desktop app projects.
</h1>
<h3> An extension for ofxImGui. </h3>
<h3> <em> WORK IN PROGRESS! </em> </h3>
OVERVIEW
- Bundled batteries for your full Desktop OF Apps.
- ofParameter Widgets.
- Layout and Style Helpers.
- Useful Modules/Systems.
- Workflow Engines for the final user.
- NEW! iOS support. ( WIP )
FEATURES
- Simple Setup:
- Simplified coder and user workflow.
- Many useful Internal states and persistent settings:
- Minimize, debug, extra, advanced, windows auto resize...
- Log, Notifier, and windows visibility and distribution.
- Global Scale.
- Useful API methods and Snippets:
- Help on populate Windows and Widgets.
- Speed-Up responsive Layout Helpers.
- ofParameter Helpers:
- Many RAW DearImGui widgets adapted.
- Added custom useful widgets.
- Multiple instances:
- Many windows around your classes and ofxAddons.
- All together without colliding.
- Four active Font Sizes for labels, widgets, and text paragraphs.
- Four optional extra fonts for alternate monospaced and non-monospaced.
- Extra Mouse Control:
- Wheel for tweaking:
- _+Ctrl_ to finetune.
- Right-Click:
- To Reset to param Center.
- _+Ctrl_ to Reset to Min.
- _+Alt_ to Reset to Max.
- Themes Editor example: ( WIP )
- 20+ bundled themes compilation.
- Hardcoded and
.inifiles. - File serializers, A-B compare, sizes and/or colors.
- Manager, Demo Window and Tester Widgets.
MODULES / SYSTEMS
- Log System:
- With custom tags.
- Notifier System:
- With custom layout and styles.
- Debugger System:
- Metrics: frame rate and frame time.
- Profiler: Cpu and Gpu measurements.
- Text Editor System:
- Language marks with custom marked keywords.
- Font sizes, color themes.
- Clipboard access and undo/redo history.
- Image Inspector System:
- Zoom with pixel color picker.
- Console System: ( WIP )
- Basic console/terminal module.
- Call methods/commands by typing into the console.
ENGINES
- Windows Organizer:
- Aligner, cascade, and Group/Linker.
- Layout Presets Engine. ( WIP )
- Docking Helpers. ( WIP )
SCREENSHOTS
- Examples_0_Basic
- Examples_1_Widgets
- Examples_2_Modules
- Examples_3_Engines
- Examples_5_MultipleInstances
- Examples_6_iOS
EXAMPLE: 00_HelloWorld
ofApp.h
``
.cpp pragma once
include "ofMain.h"
include "ofxSurfingImGui.h"
class ofApp : public ofBaseApp { public: void draw();
ofParameter<bool> bEnable{ "Enable", true }; ofParameter<float> speed{ "Speed", .5f, 0.f, 1.f }; ofParameterGroup params{ "MyGroup", bEnable, speed };
ofParameter<bool> bGui{ "Show", true };
ofxSurfingGui ui; };
ofApp.cpp
.cpp
include "ofApp.h"
void ofApp::draw() { ui.Begin(); { / Put windows here / if (ui.BeginWindow(bGui)) { / Put widgets here / ui.AddLabelBig("00_HelloWorld"); ui.AddSpacing(); ui.Add(bEnable, OFX_IM_TOGGLE_BIG_BORDER_BLINK); ui.Add(speed, OFX_IM_HSLIDER); ui.AddSpacingSeparated(); ui.AddGroup(params, SurfingGuiGroupStyle_Collapsed);
ui.EndWindow(); } } ui.End(); } `
</details>
REQUERIMENTS
IMGUI OF BACKEND
Required: ofxImGui from @jvcleave's repository and develop branch. - Dear ImGui v1.91.5 BackEnd for OF.
- Is the AWESOME @Daandelange's FORK. (Now mirrored to @jvcleave's develop branch!)
- You MUST use this one!
- WARNING! Do not use the @jvcleave's respository master branch!
<details> <summary>WHY ANOTHER BACKEND FORK?</summary> <p>
- What's new on the @Daandelange's ofxImGui FORK vs the @jvcleave's ORIGINAL REPOSITORY (master branch)?
- Multi context/instances:
- Several ImGui windows from different addons without colliding.
- Easy to update to future NEW ImGui releases.
Currently, this fork is linked to the original develop branch from @jvcleave. And will be probably merged into the master branch someday. </p> </details>
DATA ASSET FILES
Recommended: Geist-Bold.ttf - The monospaced font file for the default theme.
- Put into
OF_APP/bin/data/assets/fonts/. Optional: data.zip - More font files (non-monospaced alternative) from the same family.
- Put into each OF project
OF_APP/bin/data/. Extras: dataExtras.zip - More fonts, theme files...etc
<details> <summary>ABOUT THE FONTS</summary> The single font file for the currently used theme is Geist-Bold.ttf. If that font is not located, it will search for a legacy font called JetBrainsMono-Bold.ttf. If none of those fonts are located, it will work too, but using the default embedded ProggyClean.ttf font from ImGui. (So OF_APP/bin/data/` can also be completely empty too!) </details>
<details> <summary>RELATED LINKS</summary> ofxSurfingImGuiExtra
- _My Testing Sandbox with New WIP examples and new incoming widgets._
- 3rd party ImGui modules/widgets that could be integrated.
- Inspiration Gallery from ImGui user's apps.
- _Not required. Only for some examples._
- _Not required. Only for some examples._
CURRENT SYSTEMS
- Windows 11 / Visual Studio 2022. (Main develop)
- NEW! iOS simulators and device running iOS 18.5. Simulator _iPad(A16)_ and _iPad (10th / iOS 18.6)_ device.
- macOS 16.0 Tahoe beta / Xcode 16.4 / Silicon Apple M1. / [OF 0.12.1]
- macOS 15.5 Sequoia / Xcode 16.4 / [OF 0.12.1] / M1/M2 Apple Silicon. iOS requires testing.
- macOS 14.5 Sonoma / Xcode 15.4 / [OF 0.12+] / M1/M2 Apple Silicon. iOS requires testing.
- macOS 12.5 Monterey / Xcode 14.2 OF 0.11.2. Intel.
THANKS
_Thanks to Omar Cornut for the fantastic Dear ImGui._
_SUPER THANKS to @Daandelange for HIS AWESOME ofxImGui (maintained) FORK, and some macOS fixes._
_Thanks to @roymacdonald for iOS ofxImGui fixing._
_Thanks to @alptugan for macOS testing and some fixes._
_Thanks to @AndyJarosz for financing and using the lib for his Reality Field Virtual Production System project for LOLED VIRTUAL._
_All source snippets and widgets from other authors are linked into header files as credits. Thanks!_
AUTHOR
An addon by moebiusSurfing. ( ManuMolina ) 2021-2025
LICENSE
MIT LICENSE
Get this addon
Latest release
v0.7
published 1y ago
- Added iOS support with some examples ( WIP ).
- Tested in OF 0.12.1 last release.
- Updated Dear imgui, v1.91.5 (from ofxImGui)
- Tested platforms: Windows, macOS and iOS.
- Updated default fonts GeistMono-Bold.ttf and Geist-Bold.ttf.
ofxAddons