GithubHelp home page GithubHelp logo

gofrettin / untitledimguiframework Goto Github PK

View Code? Open in Web Editor NEW

This project forked from madladsquad/untitledimguiframework

0.0 0.0 0.0 3.35 MB

A desktop software framework that uses OpenGL, Vulkan and Dear imgui as its UI and Rendering libraries

Home Page: https://madladsquad.com/

License: MIT License

Shell 5.12% C++ 78.18% C 16.21% CMake 0.49%

untitledimguiframework's Introduction

UntitledImGuiFramework

CI MIT license trello Discord

A desktop software development framework that uses Dear imgui as its UI and Rendering library.

Motivation

Desktop UI frameworks and libraries like QT and GTK are complicated and really rigid. Using them or system-specific UI libraries would hard-lock us into using only what they use.

We also wanted a small and light core, which provides most-minimal features. We also wanted good developer experience, as QT and GTK seemed overengineered to us. Dear imgui filled all our requirements.

Dear imgui provides a GUI layer which provides the following benefits:

  • Light
  • Fast(graphically accelerated)
  • Immediate(rendering is done in the source code using function calls)
  • Doesn't require config files for layouts or style *
  • Easy to work with
  • Used by a multitude of high profile developers, an incomplete list can be seen here

* It depends on 1 for window management and compositing but it is small, autogenerated and is mainly used to save window coordinates for the next user session.

Library features

The library is divided into multiple modules compiled statically into your program. Users can fully decide which modules and submodules they want or don't want to include in their application. Module list and development status below:

  • Core Module ✅
    • Window ✅
    • Core ImGui rendering ✅
    • Textures ✅
    • Renderer submodules ✅
      • OpenGL ✅
      • Vulkan 🚧
  • I18N module ✅
    • Adds localization ✅
    • Adds utilities for accessing the user locale ✅
    • Adds additional utilify functions for localization ✅
  • Plotting Module ✅
    • Adds ImPlot for plotting ✅
  • Knobs Module ✅
  • Spinner Module ✅
    • Adds imspinner for different spinner widgets ✅
  • Toggles Module ✅
    • Adds imgui_toggle library for different types of toggle widgets ✅
  • Text Utils Module ✅
    • Adds the UntitledImGuiTextUtils library that adds additional utility functions for easily rendering bold, italic, underlined and other types of text
  • Undo/Redo Module ✅
    • Adds Undo/Redo operation support ✅
  • CLI Args module ✅
  • Theming module ✅
  • OS Module for core OS interaction

The framework uses C++ as its main development language. Additionally, because we want to include support for full modability and plugins in mutiple languages, the user-facing API has a separate, completely C version that can be used to develop applications too!

Simply write the required bindings to your language or generate them automatically from C using a relevant tool. As long as you have the main engine library compiled you should easily be able to write applications in C or any other programming language that supports C style functions. C and C++ ABI stability of the core is generally guaranteed.

Learn

You can find the documentation in the wiki.

Documentation is written as pure learning material, code examples are, in most cases, provided and are written with both the C and C++ API in mind. Additionally, there is specific documentation for distibuting applications including the framework on different platforms that may be used by OS maintainers to create packages for the framework.

Showcase and Progress

Coming soon, follow our YouTube channel and the UntitledDesktopEnvironment wiki for updates and some feature highlights soon!

There are many applications, already in production, that use the framework. A list can be found here. If your application uses the framework, please contribute to the list!

The organization trello board can be found here. It contains organization information on all projects related to UDE. The framework can be found in its corresponding cards.

untitledimguiframework's People

Contributors

madman10k avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.