LINUX.ORG.RU

[misc][X.org] Программирование «системных» тулзов

 


0

1

Что есть почитать на тему написания программ, типа WM, систреев, панелей и т.д.? Какой есть окноманагер на Perl?

P.S. Как я понял, надо курить на тему Xlib?

★★

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

> А где во всем этом место для вещей типа композит и пр. свистелок? Где место для 3Д? Сколько кода, который как бы основан на тулките, но внутри себя использует иксовые вызовы?

Новые БУДУТ. Самое страшное - пережить первый момент и убедить девелоперз, девелоперз, что имеет смысл связываться с новым ДЕ. Это очень непростая задача. Фактически, на весы тут невозможно ничего кинуть, кроме мешка с деньгами.

мешок с деньгами вряд ли кто-то будет сюда кидать (ибо профита нет, яббл свой кварц сделал для профита же) — так что сразу это исключим

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

профит может быть

- в удобстве для красноглазых (читай ФБ2) — и *мне* например этого бы хватило, чтобы пересесть на новые_иксы

- в скорости работы, если ФБ2 сделать через gpu

имеет смысл связываться с новым ДЕ

ДЕ вообще-то предполагаются старые (хотя возможно поначалу и обрезанные... я честно говоря не в курсе, че там кьют предлагает из ДЕ-ориентированных возможностей — но сдается мне, не слишком этих возможностей много надо для привычного экспириенса)

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

> А где во всем этом место для вещей типа композит и пр. свистелок?

полный список пожалуста

про альфа-канал я уже сказал,

возможно таскание окон без перерисовки их содержимого и контекстные меню, запоминающие и восстанавливающие окно под собой должно входить в ФБ1 (размер кэша под это должен регулироваться, понятно)

Где место для 3Д?

Типа вращения рабочих столов кубом? Это ненужна свистелка, но в чем проблема ее сделать, если у нас есть фреймбуфера с рабочими столами?

Сколько кода, который как бы основан на тулките, но внутри себя использует иксовые вызовы?

ССЗБ идут в п.3 (иксовый сервер как в макоси 10)

_____________________

надеюсь, мы еще продолжим обсуждение

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

я одно время порывался написать такой вот графический терминал с микроэлементами тулкита (ФБ2), но решил, что это будет чуть попозже

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

> 3. Сделать костыльную реализацию иксов. Отладить.

Это как в анекдоте - первым делом напишут эмулятор терминала, а вторым - слой совместимости с иксами )

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

>Я не знаю, сколько денег ушло на это у эппла - но явно немало. Я не вижу, у кого из игроков линуха есть желание и ресурсы на это. Все, кто серьезно играет на десктопе - уже как-то притерлись к угребищу иксовому.

простите, а разве гугль не так сделал (с конями ушел от иксов) с андроидом?

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

>> я одно время порывался написать такой вот графический терминал с микроэлементами тулкита (ФБ2), но решил, что это будет чуть попозже

Qt же работает и в fb?

а сетевая прозначность у него есть? чтобы fb было на другом хосте.

я не имел (и не имею) цели сделать что-то *вместо* Qt — как раз оно скорее всего и будет использовано (да и вообще, во избежание кривотолков — я все это пока обдумываю, изучаю и обсуждаю, и писать пока не собираюсь); ключевые слова это «графический терминал»

вот сравним типовую сетевую сессию иксов с аяксовым веб-сайтом через подтормаживающий интернет:

1. прокрутка страницы, обычные выпадающие списки, обычные меню в иксах будет тормозить, в браузере — не будут (при нескольких прокрутках страницу придется в иксах пересылать несколько раз, в браузере — всего 1 раз, хотя оверхед от неотображенных допустим выпадающих списков тоже имеется)

2. аяксовые запросы и яваскрипт будут чуть потормознее обмена с икс-клиентом, но все-таки прилично работать

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

т.е. получается, что у браузера с аяксом в основном преимущество, а у иксов — недостатки

вывод — иксам нужна похожая архитектура, только без дебильных исторических заморочек ДОМ+ХТМЛ

и нужно посмотреть на Y — там контролы внедрили во бывшие_иксы

З.Ы. подтормаживающий интернет был, есть и будет.

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

> А когда приходит новый чайник со свистком - песня начинается с первого куплета.

Ну так запишите эту песню с лучшими оркестрами мира и выложите, пусть каждый себе наштампует тулкитов по душе

Не только спеки WM, сами x11 api со всей кучей расширений - те еще джунгли.

При изобретении тулкита можно обойтись малым набором API, а остальное завелосипедить.

Критическая масса софта.

А как же http://www.gtk.org/api/2.6/gtk/gtk-framebuffer.html ?

Совсем не весь софт открыт. Куча дорогого иксового софта из 80х и 90х.

Если какой-то подобный софт еще имеет столь критический вес, то почему не сделать эмулятор иксов, одним концом слушающий порт с x11, а другим транслирующим все в новую подсистему? Реальный пример, на который у меня пока нехватает времени: вендоскрины вроде http://rghost.net/2117305/image.png дополняем системным шрифтом, заточенным под быстрое OCR, в бекбуффере разбираем на тексты и прямоугольники, по внешнему виду текстур определяем типы, ищем полоски прямоугольников (кнопки, списки), объединяем в некое подобие layout-менеджера, на выходе будет что-то вроде qml. А с полученным qml можно такого натворить... Заметь, это худший вариант, когда у нас в наличии только готовый битмап, а если есть доступ к низкоуровневым структурам, то все еще проще.

Эта работа называется «написать полную документацию по иксам, с кучей примеров и пр. и пр». Решаемо, но кто это будет делать?

дооо, я до сих пор помню, как лет 5 назад нашел в man xorg.conf:

VIDEOADAPTOR SECTION

Nobody wants to say how this works. Maybe nobody knows ...

simple_best_world_web_master
()
Ответ на: комментарий от www_linux_org_ru

> при этом конечно надо нафиг повыкидывать лишнюю специфику хтмл-я, оставив только слои, боксы, текст и картинки (с их атрибутами)

И чего ты выбрасывать собрался? Весь html - это и есть «набор аттрибутов, дабы построить блоки и текст в них». Кстате, на первый взгляд достаточно куцый, но у меня ничего лучше не получилось (я немного спер из qml, немного из концепций сцен в 3дмаксе, но в целом мало чего изменилось). А еще были такие проекты как flake в KDE: http://en.wikipedia.org/wiki/Flake_(KDE)

ФБ2. фреймбуфер со слоями-окнами, боксами, текстом и картинками

Очень хорошо. А теперь придумай как сделать области прокрутки, дабы все работало на GPU, да еще и без предварительной растеризации.

а еще одна киллер-фича ФБ2 — то, что он может и должен рендериться также и на текстовых терминалах (картинки естественно придется смотреть как текстовых браузерах — псевдографикой на весь экран)

В принципе это и сегодня возможно, можешь посмотреть вывод иксов через aalib

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

>> а еще одна киллер-фича ФБ2 — то, что он может и должен рендериться также и на текстовых терминалах (картинки естественно придется смотреть как текстовых браузерах — псевдографикой на весь экран)

В принципе это и сегодня возможно, можешь посмотреть вывод иксов через aalib

cделай скриншот ЛОРа, выведи его через aalib и попробуй там хоть что-то прочесть

на остальное отвечу потом.

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

> полный список пожалуста

Альфаблендинг - самое простое, но уже ужас как бьющее по FPS. Далее различные режимы наложения (возьми фотошоп, а не гимп и посмотри на извражения дизайнеров по смешиванию слоев), фильтры (размыть текст, желательно не просто матрицей свертки 3х3, простые эффекты вроде blum или glow, скажем добавить на поверхность текста огня - заранее такую композицию не расчитаешь, так как нужно будет выстраивать полный пайплайн для отрисовки), сгенерированная графика (всякие градиенты и фракталы, примерно как фильтры, только независимые от композиции, а значит с возможностью продвинутого кеширования), да и вообще векторная графика - это очень большая тема. Причем заметь, все это 2D. А если я захочу какие-то отражения вроде «мокрый пол» в 3D-сцене? Истинное 3D, а не псевдофейк с флипом и градиентом сверху. Да еще повесить зеркальный шар захочу для эффекта каустики, дабы на окошках отражения бегали?

Было бы желание, а эффектов всегда налепить можно...

simple_best_world_web_master
()
Ответ на: комментарий от www_linux_org_ru

> cделай скриншот ЛОРа, выведи его через aalib и попробуй там хоть что-то прочесть

Нуу, построчно читать можно :]

simple_best_world_web_master
()
Ответ на: комментарий от www_linux_org_ru

> мешок с деньгами вряд ли кто-то будет сюда кидать
А иначе первый рывок не сделать.

ДЕ вообще-то предполагаются старые

Не знаю про КДЕ, в гноме хватает иксового кода. Сам тулкит достаточно абстрактен, но когда надо делать что-то посложнее, приходится лезть в иксы.

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

> должно входить в ФБ1
Вот-вот. Это все надо, очевидно, делать с аппаратной акселерацией и кросс-платформенно. Значит, функции уже близки к иксовым. Сетевую прозрачность не забудем?

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

> Ну так запишите эту песню с лучшими оркестрами мира и выложите, пусть каждый себе наштампует тулкитов по душе
Я ж говорю - нужно, чтобы кто-то это сделал. Займетесь?

Nobody wants to say how this works. Maybe nobody knows ...

Я бы выделил это капслоком и повесил на главной страничке x.org

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

Да, гугл с андроидом - именно такая фигня. Но они не собираются на этом строить полный десктоп. И как-то никто другой тоже не собирается. Думаю, вопрос инерции... Попробуйте. Сделайте стартап (андроиДЕ). Может, мы еще услышим про Ваши миллионы :)

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

> Хорошо хоть рейтрейсинг не упомянут.

А каустику чем делать? :]]

А на самом деле я просто описал Adobe Flash и его двиг по двухмерной отрисовке, там все это есть. Есть даже базовое GPU-3D и GPU-шейдеры, правда когда я их последний раз щупал, то работало отвратительно, но это было давно и нынче уже (судя по гуглю и его ютубу) не правда. Свой тулкитовелосипед забросил потому, что еще один флеш я не рожу. Хотя.... Тяга к велосипедам так сильна.....................

simple_best_world_web_master
()
Ответ на: комментарий от svu

Что ТОЧНО факт - в хромосе нет полноценного десктопа в привычном смысле.

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

> А иначе первый рывок не сделать.

Вопросы бабла нефига не обдуманы.

На первый рывок (до ФБ2) бабло найдется, вопрос только в том, как его отбить обратно.

В принципе, открытые (не совсем по столлману) исходники не мешают продавать свою работу (и лицензия должна быть не GPL и не LGPL). То есть новые_иксы продавать как-то можно.

Но кьютишный драйвер для новых_иксов тоже делать надо, а продавать его не получится (разве что договорившись с нокией, что не факт).

Не знаю про КДЕ, в гноме хватает иксового кода.

ЕМНИП при портировании КДЕ под винду проблемы были в основном сворачивании-разворачивании окошек.

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

> Сетевую прозрачность не забудем?

Нет конечно. ФБ0 с сетевой прозрачностью уже можно считать иксами.

Прозрачность, правда, налагает обязанность держать очередь операций и флашить ее по некоторым событиям, но в икслиб справились... так что надеюсь все это не слишком сложно будет реализовать в Qt@fb.

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

>> Nobody wants to say how this works. Maybe nobody knows ...

Я бы выделил это капслоком и повесил на главной страничке x.org

вот это мне до сих пор не ясно...

понятно, что ситуация «хочу что-то сделать, но для того, чтобы понять как это делать, надо прочесть в 20-100 раз больше текста, чем в нормальном случае ООП» вполне возможна

я бегло посмотрел на примеры программирования xlib, бегло посмотрел на ее список функций... все в стиле древного си... и где я собственно должен ужаснуться?

www_linux_org_ru ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.