Skip to content

Commit 59ccd3a

Browse files
committed
[git] topics and detailed stuff about memory-model
1 parent 3bae1fd commit 59ccd3a

File tree

1 file changed

+32
-2
lines changed

1 file changed

+32
-2
lines changed

README.md

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
EKG is a descriptor-based low-latency memory-safe modular UI-toolkit for desktop-apps, mobile-apps, and high-performance apps.
44

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.
66

77
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).
88

@@ -62,7 +62,37 @@ ekg::frame_t frame_template {
6262
};
6363

6464
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
6696

6797
## Contributing
6898

0 commit comments

Comments
 (0)