LINUX.ORG.RU

Архитектура GTK

 


0

2

Читаю web-страницу
https://www.gtk.org/docs/architecture/

и мне непонятно:

  1. Если вся графика делится на растровую и векторную, есть библиотека для работы с png, gif, jpg (GdkPixbuf), то где библиотека для векторной графики и для svg, почему она не в составе Gtk. Переход на векторные ассеты должен быть актуален в связи с большими мониторами и требованиями к масштабируемости интерфейсов (например увеличить всё изображение в окне по Ctrl+‘+’);
  2. если в Gtk 4.2 сделали новую библиотеку NGL для работы с OpenGL, то почему об этом не написано в статье про архитектуру? Как мне загружать 3D-ассеты, в каком-нибудь .dae-формате? Почему для пиксельных это сделано, а для трёхмерных неупомянуто?
  3. а где поддержка печати вообще? Видимо это Cairo, но как оно должно работать с cups? Или как мне изображение загнать в .pdf-файл (без печати в .pdf-файл через пользователя, а сразу из программы)? В какой библиотеке UI-диалоги для предпросмотра печати?
  4. GSK и GDK есть на картинке, но нет в легенде к картинке.
  5. Загадкой является, почему области рисунка-схемы не сделали гиперссылками, могли же, причём несколькими способами.

«Observed a typo or some missing information, edit this page.»
«Read on how to contribute to this website.»

Вы тут все умные, вы и пишите. Я бы написал, если бы меня за каждое слово не ругали и не поправляли.

★★★★

Последнее исправление: Shushundr (всего исправлений: 5)

Если вся графика делится на растровую и векторную, есть библиотека для работы с png, gif, jpg (GdkPixbuf), то где библиотека для векторной графики и для svg, почему она не в составе Gtk. Переход на векторные ассеты должен быть актуален в связи с большими мониторами и требованиями к масштабируемости интерфейсов (например увеличить всё изображение в окне по Ctrl+‘+’);

GdkPixbuf умеет грузить SVG.

Как мне загружать 3D-ассеты, в каком-нибудь .dae-формате? Почему для пиксельных это сделано, а для трёхмерных неупомянуто?

Да какие 3D ассеты. Они за 25 лет не смогли научиться простые картинки рендерить.

wandrien ★★
()

Загадкой является, почему области рисунка-схемы не сделали гиперссылками, могли же, причём несколькими способами.

У них исходник страницы в формате Markdown хранится.

Ты слишком много хочешь от современных снежинок, им такое сложно.

wandrien ★★
()
Ответ на: комментарий от wandrien

GdkPixbuf умеет грузить SVG.

Узнавать об этом из официальной документации должны люди. А там (в этом месте) такое не сказано.

Shushundr ★★★★
() автор топика

На мой взгляд, если подсаживать тулкит на векторную графику, то на существующее API он налезет с большим трудом. Проще новый написать и не называть его GTK. А в GTK постараться сохранять совместимость с тем, что работало 10 и даже 20 лет назад. ИМХО, ничего невозможного в этом нет.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Проще новый написать и не называть его GTK.

Хорошо, как называется такой новый проект, и какая DE на нём основана? Ей ведь до популярности Gnome как до луны. То есть, её нет. И нового тулкита тоже нет.

Shushundr ★★★★
() автор топика

Там внизу страницы есть ссылка «Report an issue» С этими вопросами тебе туда

cobold ★★★★★
()
Ответ на: комментарий от wandrien

Они за 25 лет не смогли научиться простые картинки рендерить.

Разве в гноме2 тоже всё лагало?

firkax ★★★★★
()
Ответ на: комментарий от cobold

Лучше бы Вы рассказали, какой адрес у сайта, на котором находится русскоязычное gnome-сообщество. Раз уж это не сайт linux.org.ru.

Shushundr ★★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 1)
Ответ на: комментарий от sanyodesu

Qt != KDE.

Согласен. Qt - коммерческий тулкит разрабатываемый компанией Trolltech, а KDE - десктопная среда на баде этого тулкита которую пишут отдельные люди. Тролли пишут свой тулкит как тулкит - воспринимая KDE как одного из потребителей продукта, но явно не единственного и тем более не основного. Тролли понимают что потребителей много - и относятся к API как к священной корове - то есть поменяли на мажорном апгрейде а там уже в рамках мажорной версии землю грызут но совместимость держат. Даже если КDE вдруг что-то очень слезно попросят.

GTK != GNOME

А вот это бред сивого мерина. GTK не был гномом на этапе GTK1 - тогда это был Gimp Toolkit. Но сейчас GTK и GNOME разрабатываются одной командой и GTK разрабатывается исключительно под запросы гнома. Если гному надо сломать APi - то оно будет в ту же секунду сломано, а вы, остальные несчастные потребители GTK - &^%%сь как хотите, вы тут никто и звать вас никак. Гном - господин, царь, бог и главный бухгалтер.

Мораль сей басни - нельзя для своих разработок использвать GTK той версии, на которой разрабатывается гном. Потому что гномики будут ломать API полностю и многократно, и несчастным разработчиками придется постоянно латать свое поделие под новые хотелки гномосеков. Поэтому гном обречен быть говном - некоей нашлепкой-бородавкой сверху остальных приложений на более старой не используемой гномом версии GTK. Софт сейчас на 3, и стали задумываться о миграции на 4 когда гном уже перенес разработку в более свежую ветку.

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

Софт сейчас на 3, и стали задумываться о миграции на 4 когда гном уже перенес разработку в более свежую ветку.

Я правильно понял, что гном перенёс разработку в версию 5?

Shushundr ★★★★
() автор топика
Ответ на: комментарий от Shushundr

Официально еще нет - пока концептуальные моменты типа «а не дропнуть ли нам Xorg». Но по жизненному циклу предидущих версий оно уже рядом. Докидываем сюда время необходимое на адаптацию софта - гимп еще на 3 не перешел до сих пор релиз на 2, firefox кажется год назад довыпиливал 2 , jdk до сих пор 2 поользует - как раз примерно и выйдет.

Inkscape вот в пределах месяца заявил о начале разработки на 4, в мозилле тоже где-то также возобновилась дискуссия на эту тему ( в свое время ее рубанул Странский заявив что толку ноль а геморроя тонна), либра вроде зашевелилсь раньше но как-то это очень экспериментально. И тут как ни крути - софт на gtk4 в продуктивном не бета варианте приедет к моменту перехода гнома на gtk5.

Qui-Gon ★★★★★
()
Ответ на: комментарий от fluorite

От переименования конторки суть не меняется. Qt - отдельый продукт, тулкит общего назначения. Gtk - тулкит разрабатываемый под нужды одного де.

Qui-Gon ★★★★★
()
Ответ на: комментарий от hobbit

Ну, я так понял, что они работают над этим.

Кроме того, как разработка Gtk 4 закончится, так
API и стабилизируется, разве нет?

Shushundr ★★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 1)

если в Gtk 4.2 сделали новую библиотеку NGL для работы с OpenGL, то почему об этом не написано в статье про архитектуру?

Это для внутренней кухни: как код самого GTK использует OpenGL. Да и это не статья, а картинка. Статьи есть на https://blog.gtk.org/.

Кстати, новый ngl переименовали в gl к релизу 4.6, а активированный по-умолчанию ngl в GTK 4.14 - это уже другой новый OpenGL renderer (и соответствующий vulkan).

gag ★★★★★
()
Ответ на: комментарий от hobbit

если подсаживать тулкит на векторную графику, то на существующее API он налезет с большим трудом.

Так GTK 1, 2, 3 векторно-растровые, так как виджеты рисуются через cairo, где есть векторный объект Path. GTK4 стал OpenGL’ный и вулканный, но, оказалось, люди всё равно хотят рисовать как раньше: просто. И только совсем недавно добавили классическое векторное API:

gag ★★★★★
()
Ответ на: комментарий от Qui-Gon

будут ломать API полностю и многократно

Не, ну они придерживаются общепринятых принципов, что в minor версии можно добавить API, объявить API устаревшим. Но до смены major версии устаревшее API не удаляется. Проблема может быть, разве что, в том, что под капотом старое API могут пересадить на новые рельсы.

gag ★★★★★
()
Ответ на: комментарий от gag

Они в свое время сломав API 3 gtk разродились блогом что ломать API дело богоугодное и они продолжать его ломать в 4 версии причем еще более разрушительно и катастрофично и это есть хорошо. Так что общепринято к гномикам не применимо. Возможно они и исправились с тех пор но особо доверия нету - как в той притче про один раз соврамши. Что собственно и подтверждается крайне неохотным и вялотекущим процессом миграции на gtk4.

Релизы Qt6 и Gtk4 кстати были почти одновременно - но вот на Qt6 перенесена уже тонна софта, а вот с gtk4 за исключением гномика как-то все печально.

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

Так между major релизами API не ломают, а меняют. Более того, разработчики упоминали, что «Gtk 4» следует рассматривать как другой тулкит, а не просто следующий релиз GTK в ожидаемом смысле. Т.е. только название старое.

но вот на Qt6 перенесена уже тонна софта

А там были особо значительные изменения? Qt6 вышла де-факто бетой без некоторых модулей, а Qt5 была тут же объявлена как LTS с исключительно коммерческой поддержкой. Ну, да, потом всё же немножко что-то подлатывали.

То, что Gtk настолько легковесный, что там под капотом можно всё поменять, радует. Огорчает только то, что эту легковесность отчасти стали достигать выбрасывая виджеты и настраиваемость. Да и замена стабильно работающего кода на новый, который из-за OpenGL и сложности драйверов и компиляторов для 3D-ускорителей, а ещё и аппаратных багов, отсутствия документации ну никак не может стать лучше в сумме. Как его не переписывай.

gag ★★★★★
()
Ответ на: комментарий от gag

А там были особо значительные изменения?

Freecad начал под qt6 просто собираться с месяц назад. Значит таки были.

То, что Gtk настолько легковесный, что там под капотом можно всё поменять, радует

Ну сравнивать Qt и Gtk - это сравнивать жопу с пальцем. Qt это огромный фреймфорк в котором через кроссплатформенную прослойку реализовано все-все-все. Еще и девелоперские инструменты. И почти готовый броузер. А Gtk - это просто библиотека виждетов. Понятно что оно легковесно ибо там и 10 процентов от функционала наскрести не получится.

Огорчает только то, что эту легковесность отчасти стали достигать выбрасывая виджеты и настраиваемость

Путаете тут. Выбрасывание настраиваемости - это ЦЕЛЬ гнома, а легковесность - сопутствующий эффект. Гном должен выглядеть как северокорейский работяга - везде на одно лицо в серой робе и значком вождя на воротничке. Так что никто там не парился особо легковесностью - парились имеено тем чтобы оставить только функционал используемый в гноме, все остальное выбрасывается. Ну зачем там настраиваемость - гномеры не пишут тулкит для разработкии софта, гномеры пишут гном - а гтк это маленький кусочек гнома. То что нужно гному - туда впиливается, то что не нужно гному - оттуда выпиливается. Проблемы разработчиков стороннего софта приравнены к проблемам индейцев и шерифа не волнуют.

Понятно что дойдя до определенной степени минимализма гномы вынуждены брать тайм-аут, иначе интенсивное выпиливание фич и настроек может отвратить от поделия и немалое число фанатов - так что возникает некоторый период стабилизации. Публика готовится к следующей стадии примитивизации , а руководство проекта составляет расстрельный список что бы еще такого повыпилить. Ну вот примерно в это время - если есть там какой-то смысл - можно мигрировать софт на gtk следующего поколения. Как я понимаю смысл gtk4 как раз в этом усиленном взаимодействии с хардверными ускорителями ибо сейчас это есть у всех, и драйвера на линукс тоже не экзотика.

Qui-Gon ★★★★★
()
Ответ на: комментарий от sanyodesu

GTK != GNOME

Да нет, GTK пилится сейчас целиком гномерами на зарплате в красношапке. Они его под себя подмяли давно уже.

hateyoufeel ★★★★★
()
Ответ на: комментарий от gag

Так между major релизами API не ломают, а меняют.

Да нет, плагины и темы между минорными релизами GTK3 ломались только так, в пух и прах.

А там были особо значительные изменения?

Да. Qt6 в плане API много где от Qt5 отличается. Но куда меньше чем GTK3 от GTK2, например.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

Да нет, плагины и темы между минорными релизами GTK3 ломались только так, в пух и прах.

Темы да, но это формально не API разделяемой библиотеки. А по факту, да, мне перед обновлением GTK надо было сначала дождаться обновления mate-themes.

gag ★★★★★
()

и мне непонятно:

# xbps-remove gtk+3
gtk+3-3.24.41_2 in transaction breaks installed pkg `qt6-gui-6.6.0_1'
Transaction aborted due to unresolved dependencies.
amd_amd ★★★★★
()
Ответ на: комментарий от Shushundr

Зачем тебе русскоязычное? Русскоязычных разработчиков гнома я не знаю. А для остального существует машинный перевод. Стыдно об этом не знать в 2024 году

cobold ★★★★★
()
Ответ на: комментарий от cobold

существует машинный перевод

Многие проекты отказываются принимать контрибьюшены, сгенерированные роботами.

Shushundr ★★★★
() автор топика
Ответ на: комментарий от cobold

Русскоязычных разработчиков гнома я не знаю

Михайленко (мейнтейнер libadwaita) с Уфы ЕМНИП (или откуда-то оттуда) отвалил. Правда, там всё очень сложно. Смотреть осторожно, я предупреждал.

SkyMaverick ★★★★★
()
Ответ на: комментарий от kirill_rrr

Ещё не нашлось психов, портировавшихся на этот АДЪ.

Так на Qt тоже проблемно, у них коммерческая лицензия по $4000 в год на разработчика и нельзя отказаться. А с опенсорсной грабли какие-то, то-ли форкнут, то-ли не форкают.

Shushundr ★★★★
() автор топика
Ответ на: комментарий от Shushundr

Грабли, не грабли, но как то работает. А портирование на гтк4+ гарантирует что вам поломают api через полгода или год и надо будет всё переписать и вероятно поддерживать 2-3 ветки на ровном месте. А гтк3 самостабилизировалась.

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от Qui-Gon

в свое время ее рубанул Странский заявив что толку ноль а геморроя тонна

Единственный голос разума, кто бы он ни был.

wandrien ★★
()
Ответ на: комментарий от kirill_rrr

А гтк3 самостабилизировалась.

Ну и гтк4 самостабилизируется ровно в тот момент когда гномики перейдут на гтк5. Гномик с возу - тулкиту легче.

Qui-Gon ★★★★★
()
Ответ на: комментарий от Shushundr

Опенсорс — не нечто единое и идеальное. Внутри опенсорса тоже есть свои «уродцы»… И почему-то многие из них связаны с RedHat…

CrX ★★★★★
()
Ответ на: комментарий от CrX

И почему-то многие из них связаны с RedHat…

Ну тут все банально. RedHat - это бабло. Бабло манит к себе не только уродцев но именно уродцы в деле борьбы за бабло всегда побеждают и присасываются к кормушке. Вот и выходит что бездарный программер с раздутым ЧСВ , шершавым языком искуссно лижущим начальственные задницы и отличным владением презентациями в PowerPoint прорывается в определенные верхи и - имеем то что имеем.

Qui-Gon ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.