Skip to content

High-performance, descriptor-based, low-latency, multi-platform, modular GPU-accelerated GUI library written for C++.

License

Notifications You must be signed in to change notification settings

vokegpu/ekg-ui-library

Repository files navigation

🐄 EKG 🐈

High-performance, descriptor-based, low-latency, multi-platform, modular GPU-accelerated GUI library written for C++.

Note: EKG is not stable yet.

Creating a simple frame:

ekg::make(
  ekg::frame_t {
    .tag = "first frame",
    .rect = {20.0f, 20.0f, 200.0f, 200.0f},
    .drag_dock = ekg::dock::top,
    .resize_dock = ekg::dock::left | ekg::dock::bottom | ekg::dock::right
  }
);

image

Adding buttons:

ekg::button_t button {};

button.tag = "bt-1";
button.text = "moo moo";
button.text_dock = ekg::dock::left;
button.dock = ekg::dock::left;
ekg::make(button);

button.tag = "bt-2";
button.text = "owlf olwf";
button.text_dock = ekg::dock::center;
button.dock = ekg::dock::next | ekg::dock::fill;
ekg::make(button);

button.tag = "bt-3";
button.text = "oi amo gatinhos";
ekg::make(button);

image

You can dynamic change the value, text or any display output via safety-reference:

button.tag = "bt-3";
button.text = "oi amo gatinhos";
ekg::button_t &bla = ekg::make(button);

And then dynamic trigger/set value from fields.

bla.value = true; // set button trigger value forced
bla.text = "clicked here times: " + std::to_string(button_click_times); // set the text dynamically

Others widgets are being re-implemented in this new memory-model, also new future widgets.

May you want to know about this new memory-model or about EKG more, go here.
EKG Docs

Contributing

EKG Code of Conduct and Guide-Style

About

High-performance, descriptor-based, low-latency, multi-platform, modular GPU-accelerated GUI library written for C++.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Languages