I wrote a GUI toolkit from scratch — window creation, message loop, GPU
rendering, widgets, layout, text and IME, all in one static library. No Qt,
no SDL, no GLFW.
Then I counted the lines. 87,094. And wrote down where the time actually went.
What Zekit is
One static library. Downstream projects link a single file. No FreeType install, no Vulkan SDK, no third-party setup.
Hand-written window layers. Win32 and X11 directly. No SDL, no GLFW, no Qt.
Three render backends. D3D12, Vulkan and OpenGL on Windows; OpenGL (EGL) and Vulkan on Linux. All of them consume the same display list, so the same UI looks the same everywhere.
Value-semantic widget tree. Widgets are stack locals. win.AddWidget(btn) hands them over; no new , no delete .
Real IME. IMM32 integration, composition drawn in place, candidate window following the caret.
The four things that actually cost time
1.…