Отношения между библиотеками: Clutter, Cogl, Clutter, GTK+ и т. д.

Меня немного смущает взаимосвязь перечисленных выше библиотек, вот что я думаю:

  1. Cairo — это библиотека 2D-графики, и GTK+ использует ее для рендеринга виджетов. Карио низкоуровневый.
  2. Cogl — это библиотека 3D-графики, основанная на OpenGL (или форк? Я не знаю), а Clutter — это набор инструментов для 3D-графического интерфейса, основанный на Cogl.

Если это так, заменит ли Clutter когда-нибудь GTK+?

И...

Если вы считаете, что есть место, где лучше задать этот вопрос, или какие книги мне следует прочитать в первую очередь, пожалуйста, скажите мне! Я изучаю программирование ради интереса.


person molikto    schedule 25.01.2012    source источник


Ответы (1)


да, Cairo — это высококачественный API для 2D-рисования, а GTK+ использует Cairo для рисования самого себя.

Cogl — это библиотека для программирования графического процессора, которая внутри может использовать GL или GLES для доступа к графическому конвейеру (хотя теоретически она может также легко использовать DirectX на поддерживаемых платформах).

Clutter использует Cogl для рендеринга, но также может использовать Cairo для 2D-элементов.

Clutter не заменит GTK+: GTK+ — это очень сложная библиотека, обеспечивающая системную интеграцию, сложные виджеты и другие служебные API, в предоставлении которых Clutter не заинтересован.

будущее будет немного более серым, чем черно-белая замена.

Каиро может использовать Cogl для рисования; Cogl запрограммирует конвейер графического процессора, но Cairo сгенерирует геометрию для отправки, поэтому вы сможете получить высококачественные 2D-результаты. Cairo уже может использовать GL напрямую, но Cogl уже лучше отслеживает состояние.

Clutter может использовать GDK, API оконной системы GTK+, для взаимодействия с поверхностями оконной системы и получения входных событий.

в будущем вполне возможно, что GTK+ будет использовать Clutter для внутренних нужд в качестве основы для своих виджетов, хотя работа над этим все еще продолжается.

Короче говоря, диаграмма может быть:


  GPU <- [ [ Cogl + Cairo ] <- [ GDK + Clutter ] <- GTK+ ] <- application
person ebassi    schedule 25.01.2012
comment
Если вы являетесь разработчиком приложений, вы можете использовать gtk для создания окна, меню, панелей инструментов и т. д. и использовать беспорядок для рисования любого содержимого приложения, которое похоже на область рисования и не вписывается в основанное на виджетах. метафора приложения. В беспорядке вы можете докопаться до Каира для конкретных задач по рисованию. - person Bill Gribble; 26.01.2012