- Bundled batteries for your full Desktop OF Apps.
- ofParameter Widgets.
- Layout and Style Helpers.
- Useful Modules/Systems.
- Workflow Engines for the final user.
- 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.
- Wheel for tweaking:
- Themes Editor example: ( WIP )
- 20+ bundled themes compilation.
- Hardcoded and
.ini
files. - File serializers, A-B compare, sizes and/or colors.
- Manager, Demo Window and Tester Widgets.
- 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.
- Windows Organizer:
- Aligner, cascade, and Group/Linker.
- Layout Presets Engine. ( WIP )
- Docking Helpers. ( WIP )
- Examples_0_Basic
- Examples_1_Widgets
- Examples_2_Modules
- Examples_3_Engines
- Examples_5_MultipleInstances
CODE
#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;
};
#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();
}
- Required: ofxImGui
- Dear ImGui v1.91 BackEnd for OF.
- Is the AWESOME @Daandelange's FORK.
- You MUST use this one!
- Do not use the @jvcleave's REPOSITORY!
WHY ANOTHER BACKEND FORK?
- What's new on the @Daandelange's ofxImGui FORK vs the @jvcleave's ORIGINAL REPOSITORY?
- 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.
- Multi context/instances:
- Recommended: JetBrainsMono-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/
.
ABOUT THE FONTS
The single font file for the currently used theme is JetBrainsMono-Bold.ttf. If that font is not located, it will search for a legacy font called telegrama_render.otf. 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!)
RELATED LINKS
- ofxSurfingImGuiExtra
- My Testing Sandbox with New WIP examples and new incoming widgets.
- imgui/wiki/Useful-Extensions
- 3rd party ImGui modules/widgets that could be integrated.
- imgui/labels/gallery
- Inspiration Gallery from ImGui user's apps.
- ofxWindowApp
- Not required. Only for some examples.
- ofxSurfingHelpers
- Not required. Only for some examples.
- Windows 11 / Visual Studio 2022.
- GitHub OF patch-release branch.
- Last official release OF 0.12.
- macOS 12.5 Monterey / Xcode 14.2 OF 0.11.2. Intel.
- macOS 14.5 Sonoma / Xcode 15.4 / [OF 0.12+] / M1/M2 Apple Silicon. iOS requires testing.
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 @alptugan for macOS testing and some fixes.
Thanks to @AndyJarosz for using the lib and financing 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!
An addon by moebiusSurfing.
( ManuMolina ) 2021-2024