|
2 | 2 |
|
3 | 3 | EKG is a descriptor-based low-latency memory-safe modular UI-toolkit for desktop-apps, mobile-apps, and high-performance apps. |
4 | 4 |
|
5 | | -The purpose of EKG is to be an alternative way to create fancy and low-latency C++ memory-safety GUI-context. EKG is under a experimental-buildable-unstable version, which means no ready-prod release was made before. |
| 5 | +The purpose of EKG is to be an alternative way to create fancy and low-latency C++ memory-safety GUI-context. EKG is under an experimental-buildable-unstable version, which means no ready-prod release was made before. |
6 | 6 |
|
7 | 7 | The complete article of EKG memory-safety model can be read [here](https://github.com/vokegpu/ekg-docs/blob/master/model/architecture-model.md#architecture-model). Ultimately, EKG does not use raw-ptr(s) or even smart-ptr(s), except for hardware interfaces (platform-base and rendering-api), the entire EKG use of a virtual memory with virtual address which is called `ekg::at_t`, `ekg::at_t` is a virtual-address reference pointer to EKG descriptors, you can read more about [here](https://github.com/vokegpu/ekg-docs/blob/master/model/ui-descriptor-based-model.md#ui-descriptor-based-model). |
8 | 8 |
|
@@ -62,7 +62,37 @@ ekg::frame_t frame_template { |
62 | 62 | }; |
63 | 63 |
|
64 | 64 | auto &my_frame = ekg::make<ekg::frame_t>(frame_template); |
65 | | -```` |
| 65 | +``` |
| 66 | + |
| 67 | +## Building |
| 68 | + |
| 69 | +Dependencies required for building: |
| 70 | +- [FreeType](https://freetype.org/) |
| 71 | +- [GLEW](https://glew.sourceforge.net/) |
| 72 | +- [SDL2](https://www.libsdl.org/) |
| 73 | +- [Ninja](https://ninja-build.org/) |
| 74 | +- [CMake](https://cmake.org/) |
| 75 | + |
| 76 | +Note: EKG is not SDL2 or GLEW fixed, this is for compile the entire library, for using the library you will not need to compile SDL2 or even GLEW with EKG, you can choose soon Vulkan and GLFW. |
| 77 | + |
| 78 | +Run the following commands: |
| 79 | +```cpp |
| 80 | +cmake -S . -B ./cmake-build -G Ninja -D CMAKE_BUILD_TYPE=Release |
| 81 | +cmake --build ./cmake-build |
| 82 | +``` |
| 83 | + |
| 84 | +Supported compilers: |
| 85 | +- GNU-MinGW64 stable buildable |
| 86 | +- GNU-G++ stable buildable |
| 87 | +- Clang++ stable buildable |
| 88 | + |
| 89 | +Supported video APIs: |
| 90 | +- OpenGL 3.1~4.6 |
| 91 | +- OpenGL ES 3 |
| 92 | +- Emscripten WebGL 2 (OpenGL ES 2) (require building EKG with flag `-D EKG_EMSCRIPTEN_BUILD_TYPE=1`) |
| 93 | + |
| 94 | +Supported platforms: |
| 95 | +- SDL2 |
66 | 96 |
|
67 | 97 | ## Contributing |
68 | 98 |
|
|
0 commit comments