Skip to content

Commit 1750d88

Browse files
authored
Update README.md
1 parent 4769649 commit 1750d88

File tree

1 file changed

+56
-9
lines changed

1 file changed

+56
-9
lines changed

README.md

+56-9
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ A desktop software development framework that uses dear imgui as its UI and rend
1010
You can try out the demo [here](https://uimgui.madladsquad.com).
1111

1212
## Motivation
13-
Desktop UI frameworks and libraries like QT and GTK are complicated and really rigid. Using them or system-specific UI libraries
13+
Desktop UI frameworks and libraries like QT and GTK are complicated and really rigid. Using them, or system-specific UI libraries
1414
would hard-lock us into using only what they use.
1515

1616
We also wanted a small and light core, which provides most-minimal features. We also wanted good developer experience, as
@@ -28,8 +28,36 @@ QT and GTK seemed overengineered to us. [Dear imgui](https://github.com/ocornut/
2828
\* It depends on 1 for window management and compositing but it is small, autogenerated and is mainly used to save window
2929
coordinates for the next user session.
3030

31-
## Library features
32-
The library is divided into multiple modules compiled statically into your program. Users can fully decide which modules
31+
### But the UntitledImGuiFramework provides many of the features that QT and GTK provides, how can you say that it is lighter then them!?
32+
Yes, the framework provides many of the features that can be found in larger toolkits such as QT and GTK. The difference is that the UntitledImGuiFramework
33+
only provides a minimal renderer, component system and some interfaces for things like input out of the box.
34+
35+
To enable additional features, you need to enable modules, which can be compiled out of your application, as opposed to toolkits like QT and GTK, where many
36+
of the features that are modules here, are actually part of the core toolkit and cannot be removed. Here is a short list of features that we provide as modules
37+
that other libraries provide as part of their core:
38+
39+
1. System font querying
40+
1. CLI parsing
41+
1. System theme fetching
42+
1. Rich text rendering
43+
1. Undo/Redo
44+
1. URL & default file/folder opening
45+
1. I18N features
46+
47+
## Framework features
48+
The above section says a lot, but let's talk features.
49+
50+
### Interfaces
51+
The framework provides access to many core features through so-called interfaces. Currently we have the following interfaces:
52+
53+
1. Window interface - covers almost all parts of Window management on most platforms and even has additional X11 features
54+
1. Input interface - an easy way to deal with input devices, key bindings and more
55+
1. Renderer interface - gives you access to renderer settings
56+
1. Utility interface - contains many utility functions
57+
1. Plugins interface - allows you to interact with the built-in plugin support
58+
59+
### Modules
60+
The framework is divided into multiple modules compiled statically into your program. Users can fully decide which modules
3361
and submodules they want or don't want to include in their application. Module list and development status below:
3462

3563
- Core Module ✅
@@ -67,6 +95,7 @@ functions for easily rendering bold, italic, underlined and other types of text
6795
- [XDG Basedir](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) integration ✅
6896
- [dbus](https://www.freedesktop.org/wiki/Software/dbus/) integration ✅
6997

98+
### C & C++ APIs
7099
The framework uses C++ as its main development language. Additionally, because we want to include support for full modability and
71100
plugins in mutiple languages, the user-facing API has a separate, completely C version that can be used to develop
72101
applications too!
@@ -75,7 +104,11 @@ Simply write the required bindings to your language or generate them automatical
75104
you have the main engine library compiled you should easily be able to write applications in C or any other programming
76105
language that supports C style functions. C and C++ ABI stability of the core is generally guaranteed.
77106

78-
## Supported platforms
107+
### Native plugin support
108+
The framework has native support for plugins with a handy plugin manager and interface that make it easy to make your application
109+
extensible from both C & C++, as well as other languages through the C & C++ APIs.
110+
111+
### Supported platforms
79112
We currently support the following platforms as official targets:
80113

81114
1. Windows
@@ -88,12 +121,27 @@ All of the operating systems above have generally the same features, as we're tr
88121
The only exception is the Freedesktop submodule of the OS module, which provides more libraries for working with desktop environment features, that are
89122
otherwise baked into the core OS libraries, when talking about Windows and macOS.
90123

124+
### And much more
125+
There are countless more little useful features that we could name, here's a short list:
126+
127+
1. Easy texturing
128+
1. Bundled with utilities for dealing with UTF-8/16/32
129+
1. Client-side header bar
130+
1. Comes with a library for logging
131+
1. Comes with a library for working with YAML files
132+
1. Is extensively documented with up-to-date and stable documenation
133+
91134
## Learn
92-
You can find the documentation in the [wiki](https://github.com/MadLadSquad/UntitledImGuiFramework/wiki).
135+
We provide an always up-to-date, stable and extensive documentation, which you can find on the [wiki](https://github.com/MadLadSquad/UntitledImGuiFramework/wiki).
93136

94-
Documentation is written as pure learning material, code examples are, in most cases, provided and are written with both
95-
the C and C++ API in mind. Additionally, there is specific documentation for distibuting applications including the
96-
framework on different platforms that may be used by OS maintainers to create packages for the framework.
137+
It is written as pure learning material, with code examples using both the C and C++ APIs. Aside from users of the framework,
138+
the documentation also covers topics such as:
139+
140+
1. Shipping the application to production for package maintainers
141+
1. Plugin development examples
142+
1. Developer tips
143+
1. Internal documentation and reference
144+
1. Collaboration tips
97145

98146
## Showcase and Progress
99147
Coming soon, follow the [UntitledDesktopEnvironment webpage](https://madladsquad.com/desktop) for updates
@@ -107,4 +155,3 @@ uses the framework, please contribute to the list!
107155

108156
The organization trello board can be found [here](https://trello.com/b/HmfuRY2K/untitleddesktop). It
109157
contains organization information on all projects related to UDE. The framework can be found in its corresponding cards.
110-

0 commit comments

Comments
 (0)