> Писать свой тулкит заточенный под свою же программу? Да, вариант.Зачем? Сейчас делают приятные immediate mode гуи, типа такого: https://github.com/ocornut/imgui
Они простые, их можно изучить насквозь и использовать с той же эффективностью как собственный код. В том числе и портировать на Xorg, Wayland, Android, WebAssembly, что-угодно-ещё, если они не умеют этого из коробки.
Такие штуки, писанные на C++, haskell'е или rust'е, будут резвее всяких там gtk/qt по трём причинам:
- они проще и не содержат всего на все случаи жизни
- они выводят графику через что-нибудь из списка OpenGLES/Vulkan/DX/Metal, а не через API прошлого века типа win32api, X11 или OpenGL 2.1
- они минимизируют использование динамической типизации: в отличие от gtk/qt они не используют наследование и динамическую типизацию (или используют, но в гораздо меньших масштабах), заменяя это статически параметризованными типами, то есть "прощайте тормозные виртуальные методы, здравствуйте инлайн-функции", то есть это гораздо ближе к "тулкит заточенный под конкретную программу", чем все эти ООП высеры.
Они быстрее вывода через Xlib, потому что одним промежуточным звеном меньше (даже если всё это работает поверх Xorg), и опять же не надо полагаться на динамически типизированные деревья дочерних окон в Xorg. Кстати, не знаю как qt, а gtk совершенно определённо не создаёт на каждый свой виджет по X11-окошку, виджет в gtk -- это чисто client-side абстракция. Не знаю, зачем я это сказал сейчас, но решил оставить на всякий случай.
Но это самое что ни на есть натуральное хипстерство. Если ты имеешь что-то против хипстеров, то это не твой путь. Тебе лучше взять Xlib и пилить через него.