A
A
AlexCoffee2016-12-24 14:39:13
Rust
AlexCoffee, 2016-12-24 14:39:13

What is needed to create a GUI library?

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

Answer the question

In order to leave comments, you need to log in

2 answer(s)
Дмитрий, 2016-12-25
@TrueBers

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

R
Rou1997, 2016-12-24
@Rou1997

В учебных целях лучше что-то стоящее напишите, "стоящее" - это то, из чего можно извлечь хоть какую-то прибыль, реализовав его на том уровне, на котором у вас это действительно получится.
Все знают слово "человеко-часы", и про требуемую квалификацию все понимают, это тоже учтите, я сам любитель писать библиотеки и через это прошел, но еще учтите про финансы и не советую иметь глупость утверждать будто вам деньги за работу вовсе не нужны так как вам есть на что жить, все это тоже пройдено, работа без заказчика и обратной связи не формирует правильный опыт.
Ну а по теме:
It depends on the tasks, if first of all cross-platform - use cross-platform solutions, if first of all quality and convenience - use native ones, but by the way you don’t have a real goal, but just “for learning”, but do as you wish.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question