Skip to content

Latest commit

 

History

History
257 lines (192 loc) · 7.65 KB

README.md

File metadata and controls

257 lines (192 loc) · 7.65 KB

ofxSurfingImGui.

A Dear ImGui Toolkit
for openFrameworks
desktop app projects.

An extension for ofxImGui.


WORK IN PROGRESS!


OVERVIEW

  • Bundled batteries for your full Desktop OF Apps.
  • ofParameter Widgets.
  • Layout and Style Helpers.
  • Useful Modules/Systems.
  • Workflow Engines for the final user.

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 .ini files.
    • 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

EXAMPLE: 00_HelloWorld

CODE

ofApp.h

#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

#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();
}

REQUERIMENTS

IMGUI OF BACKEND

WHY ANOTHER BACKEND FORK?

DATA ASSET FILES

  • 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

CURRENT SYSTEMS

  • Windows 11 / Visual Studio 2022.
  • 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

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!


AUTHOR

An addon by moebiusSurfing.
( ManuMolina ) 2021-2024


LICENSE

MIT LICENSE