You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+56-9
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ A desktop software development framework that uses dear imgui as its UI and rend
10
10
You can try out the demo [here](https://uimgui.madladsquad.com).
11
11
12
12
## 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
14
14
would hard-lock us into using only what they use.
15
15
16
16
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/
28
28
\* It depends on 1 for window management and compositing but it is small, autogenerated and is mainly used to save window
29
29
coordinates for the next user session.
30
30
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
33
61
and submodules they want or don't want to include in their application. Module list and development status below:
34
62
35
63
- Core Module ✅
@@ -67,6 +95,7 @@ functions for easily rendering bold, italic, underlined and other types of text
The framework uses C++ as its main development language. Additionally, because we want to include support for full modability and
71
100
plugins in mutiple languages, the user-facing API has a separate, completely C version that can be used to develop
72
101
applications too!
@@ -75,7 +104,11 @@ Simply write the required bindings to your language or generate them automatical
75
104
you have the main engine library compiled you should easily be able to write applications in C or any other programming
76
105
language that supports C style functions. C and C++ ABI stability of the core is generally guaranteed.
77
106
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
79
112
We currently support the following platforms as official targets:
80
113
81
114
1. Windows
@@ -88,12 +121,27 @@ All of the operating systems above have generally the same features, as we're tr
88
121
The only exception is the Freedesktop submodule of the OS module, which provides more libraries for working with desktop environment features, that are
89
122
otherwise baked into the core OS libraries, when talking about Windows and macOS.
90
123
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
+
91
134
## 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).
93
136
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
97
145
98
146
## Showcase and Progress
99
147
Coming soon, follow the [UntitledDesktopEnvironment webpage](https://madladsquad.com/desktop) for updates
@@ -107,4 +155,3 @@ uses the framework, please contribute to the list!
107
155
108
156
The organization trello board can be found [here](https://trello.com/b/HmfuRY2K/untitleddesktop). It
109
157
contains organization information on all projects related to UDE. The framework can be found in its corresponding cards.
0 commit comments