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
}
);
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);
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