@AlexCoffee

Что нужно для создания GUI библиотеки?

Хочу в учебных целях попробовать сделать библиотеку для создания GUI (что то типа QT, GTK, EFL, etc).
Виджеты нужны не родные, а свои. Значит их нужно как то рисовать, отображать на них текст, позиционировать.
Вопрос заключается в том, какой бекэнд нужно использовать? opengl/vulkan или что то родное для каждой ОС, например XCB(xlib)? Хочу написать на RUST в учебных целях.

Если посоветуете литературу, буду очень признателен.
  • Вопрос задан
  • 478 просмотров
Пригласить эксперта
Ответы на вопрос 2
TrueBers
@TrueBers
Гуглю за еду
У вас существует недопонимание конвеера отрисовки/композитинга/серверов графических элементов. "opengl/vulkan" и "xlib" это совершенно разные уровни абстракции интерфейса. Они часто работают вместе и дополняют друг друга. Можно работать с контроллами через xlib и при этом рисовать это всё через OpenGL.

Вообще, с системами отрисовки графических элементов, различными уровнями абстракций сейчас такой дичайший зоопарк творится, даже сами разработчики порой уже путают эти уровни, впихивают невпихуемое туда, где его быть не должно, потом переписывают всё с нуля, старые костыли оставляют для совместимости, и т. д. Поэтому, крайне не советую начинать это неблагодарное дело, ибо не закончите никогда. Возьмитесь лучше за что-то попроще, напишите биндинги для GTK или Qt, например, если уж так нравятся гуи.
Ответ написан
Комментировать
Rou1997
@Rou1997
В учебных целях лучше что-то стоящее напишите, "стоящее" - это то, из чего можно извлечь хоть какую-то прибыль, реализовав его на том уровне, на котором у вас это действительно получится.
Все знают слово "человеко-часы", и про требуемую квалификацию все понимают, это тоже учтите, я сам любитель писать библиотеки и через это прошел, но еще учтите про финансы и не советую иметь глупость утверждать будто вам деньги за работу вовсе не нужны так как вам есть на что жить, все это тоже пройдено, работа без заказчика и обратной связи не формирует правильный опыт.

Ну а по теме:
Вопрос заключается в том, какой бекэнд нужно использовать? opengl/vulkan или что то родное для каждой ОС, например XCB(xlib)?

Зависит от задач, если прежде всего кроссплатформенность - используйте кроссплатформенные решения, если прежде всего качество и удобство - используйте нативные, но впрочем у вас же нет реальной цели, а просто "для обучения", да делайте как хотите.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы