- 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.
All source snippets and widgets from other authors are linked into header files as credits. Thanks!
An addon by moebiusSurfing.
( ManuMolina ) 2021-2024