{"id":17788849,"url":"https://github.com/moebiussurfing/ofxsurfingimgui","last_synced_at":"2025-03-16T09:33:47.723Z","repository":{"id":37702584,"uuid":"374250105","full_name":"moebiussurfing/ofxSurfingImGui","owner":"moebiussurfing","description":"( WIP ) ImGui Toolkit for openFrameworks apps: ofParameters Widgets and Layout Helpers. Modules/Engines: Log, Debugger, Docking, Layout Presets and more.","archived":false,"fork":false,"pushed_at":"2025-02-14T22:09:54.000Z","size":86888,"stargazers_count":49,"open_issues_count":2,"forks_count":11,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-02-27T07:13:39.540Z","etag":null,"topics":["dear-imgui","dearimgui","imgui","imgui-widgets","openframeworks","openframeworks-addon"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moebiussurfing.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-06T02:19:57.000Z","updated_at":"2025-02-14T22:09:57.000Z","dependencies_parsed_at":"2023-12-27T05:32:29.001Z","dependency_job_id":"7d10f621-6fe2-4ce1-98a3-b7358eb5fab9","html_url":"https://github.com/moebiussurfing/ofxSurfingImGui","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moebiussurfing%2FofxSurfingImGui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moebiussurfing%2FofxSurfingImGui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moebiussurfing%2FofxSurfingImGui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moebiussurfing%2FofxSurfingImGui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moebiussurfing","download_url":"https://codeload.github.com/moebiussurfing/ofxSurfingImGui/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243809888,"owners_count":20351407,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dear-imgui","dearimgui","imgui","imgui-widgets","openframeworks","openframeworks-addon"],"created_at":"2024-10-27T10:24:22.843Z","updated_at":"2025-03-16T09:33:47.704Z","avatar_url":"https://github.com/moebiussurfing.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cbr\u003e\n  \n\u003ch1\u003e\n\nofxSurfingImGui.\n\nA [Dear ImGui](https://github.com/ocornut/imgui) **Toolkit**  \nfor [openFrameworks](https://openframeworks.cc/)  \ndesktop app projects.  \n\n\u003c/h1\u003e\n\n\u003ch3\u003e\n  \nAn extension for [ofxImGui](https://github.com/Daandelange/ofxImGui/tree/develop).    \n  \n\u003c/h3\u003e\n\n\u003cbr\u003e\n\n\u003ch3\u003e\n\u003cem\u003e\nWORK IN PROGRESS!\n\u003c/em\u003e\n\u003c/h3\u003e\n\n\n\u003cbr\u003e\n\n# OVERVIEW\n- **Bundled batteries** for your full **Desktop OF Apps**.\n- **ofParameter** Widgets.\n- **Layout** and **Style** Helpers.\n- Useful **Modules**/**Systems**.\n- **Workflow Engines** for the final user.\n\n\u003cbr\u003e\n\n## FEATURES\n- **Simple Setup**:\n  - Simplified coder and user **workflow**.\n  - Many useful **Internal states** and persistent settings:\n    - Minimize, debug, extra, advanced, windows auto resize...\n    - Log, Notifier, and windows visibility and distribution. \n    - Global Scale.\n- Useful **API methods** and **Snippets**: \n  - Help on populate **Windows** and **Widgets**.\n  - **Speed-Up** responsive **Layout Helpers**.\n- **ofParameter Helpers**:\n  - Many RAW **DearImGui widgets** adapted.\n  - Added custom useful widgets.\n- **Multiple instances**:\n  - Many windows around your classes and **ofxAddons**.\n  - All together without colliding.\n- Four active **Font Sizes** for labels, widgets, and text paragraphs.\n  - Four optional extra fonts for alternate **monospaced** and **non-monospaced**.\n- Extra **Mouse Control**: \n  - Wheel for tweaking:\n    -  _+Ctrl_ to finetune.\n  - Right-Click:\n    - To Reset to param **Center**.\n    - _+Ctrl_ to Reset to **Min**.\n    - _+Alt_ to Reset to **Max**.\n- **Themes Editor** example:  ( WIP )\n    - **20+ bundled themes** compilation. \n    - Hardcoded and `.ini` files.\n    - File serializers, A-B compare, sizes and/or colors.\n    - **Manager**, **Demo Window** and **Tester Widgets**.\n\n## MODULES / SYSTEMS\n- **Log System**:\n    - With custom **tags**.\n- **Notifier System**:\n    - With **custom** layout and styles.\n- **Debugger System**:\n    - Metrics: frame rate and frame time.\n    - Profiler: Cpu and Gpu measurements.\n- **Text Editor System**: \n    - Language marks with custom marked **keywords**.\n    - Font sizes, color themes.\n    - **Clipboard** access and **undo/redo** history.\n- **Image Inspector System**:\n    - Zoom with pixel color picker.\n- **Console System**: ( WIP )\n    - Basic console/**terminal** module.\n    - Call methods/**commands** by typing into the console.\n\n## ENGINES\n- **Windows Organizer**:\n    - Aligner, cascade, and Group/Linker.\n- **Layout Presets Engine**. ( WIP )\n- **Docking Helpers**. ( WIP )\n \n\u003cbr\u003e\n\n# SCREENSHOTS\n\n- [Examples_0_Basic](/Examples_0_Basic/README.md)  \n- [Examples_1_Widgets](/Examples_1_Widgets/README.md)  \n- [Examples_2_Modules](/Examples_2_Modules/README.md)  \n- [Examples_3_Engines](/Examples_3_Engines/README.md)  \n- [Examples_5_MultipleInstances](/Examples_5_MultipleInstances/README.md)  \n\n## EXAMPLE: 00_HelloWorld\n![](/Examples_0_Basic/01_HelloWorld/Capture.PNG)\n\u003cdetails\u003e\n  \u003csummary\u003eCODE\u003c/summary\u003e\n  \n#### ofApp.h\n\n```.cpp\n#pragma once\n#include \"ofMain.h\"\n\n#include \"ofxSurfingImGui.h\"\n\nclass ofApp : public ofBaseApp\n{\n  public:\n  void draw();\n\n  ofParameter\u003cbool\u003e bEnable{ \"Enable\", true };\n  ofParameter\u003cfloat\u003e speed{ \"Speed\", .5f, 0.f, 1.f };\n  ofParameterGroup params{ \"MyGroup\", bEnable, speed };\n\n  ofParameter\u003cbool\u003e bGui{ \"Show\", true };\n\n  ofxSurfingGui ui;\n};\n```\n\n#### ofApp.cpp\n\n```.cpp\n\n#include \"ofApp.h\"\n\nvoid ofApp::draw()\n{\n  ui.Begin();\n  {\n    /* Put windows here */\n    if (ui.BeginWindow(bGui))\n    {\n      /* Put widgets here */\n      ui.AddLabelBig(\"00_HelloWorld\");\n      ui.AddSpacing();\n      ui.Add(bEnable, OFX_IM_TOGGLE_BIG_BORDER_BLINK);\n      ui.Add(speed, OFX_IM_HSLIDER);\n      ui.AddSpacingSeparated();\n      ui.AddGroup(params, SurfingGuiGroupStyle_Collapsed);\n\n      ui.EndWindow();\n    }\n  }\n  ui.End();\n}\n```\n\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n# REQUERIMENTS\n\n## IMGUI OF BACKEND\n\n* Required: [ofxImGui](https://github.com/Daandelange/ofxImGui/tree/develop)\n  - Dear [ImGui v1.91](https://github.com/ocornut/imgui) BackEnd for [OF](https://openframeworks.cc/).\n  - Is the **AWESOME** [@Daandelange's FORK](https://github.com/Daandelange/ofxImGui/tree/develop).\n    - You **MUST use this one**! \n    - Do not use the [@jvcleave's REPOSITORY](https://github.com/jvcleave/ofxImGui)!\n\n\u003cdetails\u003e\n  \u003csummary\u003eWHY ANOTHER BACKEND FORK?\u003c/summary\u003e\n  \u003cp\u003e\n\n- What's new on the [@Daandelange's ofxImGui FORK](https://github.com/Daandelange/ofxImGui/tree/develop) vs the [@jvcleave's ORIGINAL REPOSITORY](https://github.com/jvcleave/ofxImGui)? \n  - Multi context/instances: \n    - Several ImGui windows from different addons without colliding.  \n  - Easy to update to future **NEW ImGui** releases.  \n    Currently, this fork is linked to the original [develop branch from @jvcleave](https://github.com/jvcleave/ofxImGui/tree/develop).  \n    And will be probably merged into the master branch someday.  \n    \n \u003c/p\u003e\n\u003c/details\u003e\n\n## DATA ASSET FILES\n\n* Recommended: [JetBrainsMono-Bold.ttf](data/assets/fonts/JetBrainsMono-Bold.ttf)\n  - The monospaced font file for the default theme.\n  - Put into `OF_APP/bin/data/assets/fonts/`.  \n* Optional: [data.zip](data.zip)\n  - More font files (non-monospaced alternative) from the same family.\n  - Put into each **OF project** `OF_APP/bin/data/`.  \n\n\u003cdetails\u003e\n  \u003csummary\u003eABOUT THE FONTS\u003c/summary\u003e  \n  \nThe 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!) \n\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eRELATED LINKS\u003c/summary\u003e  \n  \n* [ofxSurfingImGuiExtra](https://github.com/moebiussurfing/ofxSurfingImGuiExtra)\n  - _My **Testing Sandbox** with **New WIP examples** and new incoming widgets._\n* [imgui/wiki/Useful-Extensions](https://github.com/ocornut/imgui/wiki/Useful-Extensions#image-manipulation)\n  - 3rd party ImGui modules/widgets that could be integrated.\n* [imgui/labels/gallery](https://github.com/ocornut/imgui/labels/gallery)\n  - Inspiration Gallery from ImGui user's apps.\n* [ofxWindowApp](https://github.com/moebiussurfing/ofxWindowApp)\n  - _Not required. Only for some examples._\n* [ofxSurfingHelpers](https://github.com/moebiussurfing/ofxSurfingHelpers)\n  - _Not required. Only for some examples._\n  \n\u003c/details\u003e\n\n\u003cbr\u003e\n\n## CURRENT SYSTEMS\n\n- **Windows 11** / **Visual Studio 2022**.\n    * GitHub [OF patch-release](https://github.com/openframeworks/openFrameworks/tree/patch-release) branch.\n    * Last official release [OF 0.12](https://openframeworks.cc/download/).\n- **macOS 12.5 Monterey** / **Xcode 14.2** [OF 0.11.2](https://openframeworks.cc/download/). **Intel**.  \n- **macOS 14.5 Sonoma** / **Xcode 15.4** / [OF 0.12+] / **M1/M2 Apple Silicon**. **iOS** requires testing.\n\n\u003cbr\u003e\n\n## THANKS\n\n_Thanks to [Omar Cornut](https://github.com/ocornut) for the fantastic [Dear ImGui](https://github.com/ocornut/imgui)._  \n\n_**SUPER THANKS** to [@Daandelange](https://github.com/Daandelange) for **HIS AWESOME ofxImGui (maintained) FORK**, and some **macOS** fixes._  \n\n_Thanks to [@alptugan](https://github.com/alptugan) for **macOS** testing and some fixes._  \n\n_Thanks to [@AndyJarosz](https://github.com/MadlyFX) for financing and using the lib for his [Reality Field Virtual Production System](https://loledvirtual.gumroad.com/l/realityfield) project for [LOLED VIRTUAL](https://loledvirtual.com/)._  \n\n_All source snippets and widgets from other authors are linked into header files as credits. Thanks!_  \n\n\u003cbr\u003e\n\n# AUTHOR\n\nAn addon by **moebiusSurfing**.  \n*( ManuMolina ) 2021-2024*  \n\n\u003cbr\u003e\n\n## LICENSE\n\n[**MIT LICENSE**](https://github.com/moebiussurfing/ofxSurfingImGui/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoebiussurfing%2Fofxsurfingimgui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoebiussurfing%2Fofxsurfingimgui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoebiussurfing%2Fofxsurfingimgui/lists"}