[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: fs



On Tue, 16 Oct 2001, Ilya Anfimov wrote:
> 
> > > > АА на маленьких размерах букв в Х может выглядить слишком жирно и размазано.
> > > 
> > > Эта  проблема  --  не такая и пробема. Исходники есть, напишут со
> > > временем.  Если хоть кому-нибудь нужно будет...
> > 
> >  Исходники чего доступны?
> >  По-любому, чтобы легально использовать хинтинг на полную катушку надо будет
> > купить лицензию у патентодержателя на те 2 инструкции - а это может стоить
> > сотни килобаксов.
> 
> Исходники freetype & so on.

 Там ничего этого нет конечно.

> То, что ты сказал, если и имеет место -- внутренние заморочки ttf
> (на котором  свет  клином  не  сошелся)  пополам  с  американским
> законодательством  (на  которое если надо, то тоже плюют все кому
> не лень).

 Те 2 инструкции - хоть их и всего 2 - чрезвычайно важны и хинтинг без их
поддержки практически теряет весь смысл. Ну а про законодательство - по крайне
мере в дистрибьютив с патчами по поддержке тех инструкций freetype положить
будет нельзя. Так что полный облом..
> 
> > 
> > > Собственно, потому и придурки, что придумали этот Xrender.
> > > 
> > > Вместо того, чтобы добавить долгожданный Visual с альфаканалом  в
> > > Core  (ну  не  в  Core кончено, extension отдельный, но чтобы при
> > > этом вся рисовалка осталась из core), ребята добавили  совершенно
> > > новый метод рендеринга. Как будто уже имеющихся недостаточно.
> > 
> >  Я думаю они не такие бараны чтобы такой вариант не рассматривать.
> 
> Я уже не настолько верю в человеческую мудрость.

 Я с ними не общался, так что все-таки дам им шанс..
 
> >  Добавить новый Visual значит перетряхнуть нафиг все структуры данных (в них
> > нет полей для альфаканала), 
> 
> Только те, которые и так зависимы от Visual.

 Или которые содержат маски  RGB компонент.
 
> >colormaps, 
> 
> Забыть,  как страшный сон. То есть место в протоколе оставить, но
> пусть с этим трахаются более другие существа.

 Да, возможно. 

> >расширить протокол on-wire, 
> 
> Для этого и есть механизм Xextensions.

  Не думаю что они настолько гибко подключаемы. В худшем случае придется
изобрести аналоги форматов данных для всех запросов которые работают с цветами
напрямую и для тех формат данных которых изменился, и в зависимости от Visual
использовать их или оригинальные. Придется также дописть XLib и XServer -
короче геморроя со стороны  XFree team немерянно IMO. И все это без каких либо
гарантий на включение их кода в код от  x.org в ближайшие 5 лет..

>определить
> > новые константы под маски, исправить ВСЕ алгоритмы которые использовали
> > битмапы на поддержку альфаканала, 
> >переделать идеологию... Года на 3 работы. А
> 
> Вот  идеологию  пусть  оставят  в  покое.  А все остальное одному
> человеку full-time -- это не 3 года. Особенно учитывая,  что  эти
> алгоритмы и так написаны для всего существующего разнообразия.

 Ну идеологию и аксиомы придется менять - например рисование строки текста
несколько раз подряд в одном и том же месте не эквивалентно рисованию той же
строки в том же месте ровно один раз. Или что все шрифты имеют однобитную
матовость во всех visuals.
 И в алгоритмах поддерживаются всего 3 компоненты цвета, а надо будет
поддерживать 4-ую. То есть перетряхивать все алгоритмы.

> > с XRender - намногого проще - добавляется всего несколько десятков вызовов и
> > все..
> 
> Ага, проще. Взять, написать какой-то грязный хак и долго гордиться,
> что у нас как в винде.

 Они не планировали переделывать вселенную.

> > 
> > > В  резултате,  все,  что  будет рисовать и захочет АА потребуется
> > > переписывать дважды -- один раз под Core, один раз  под  Xrender.
> > > Со всеми вытекающими глюками.
> > 
> >  Зачем переписывать - просто пишешь 2 ф-ии, одна рисует текст через Xft,
> > другая без него (то есть без АА). А можно делать как openoffice - если нет
> 
> Вот это оно самое и есть -- переписывать дважды.

 Ага, лишних 100 (рисование + измерение размеров) строк кода. Очень
геморройно..
 
> > XRender'a - используем freetype для нахождения нецелочисленной матовости
> > глифа, скачиваем фрагмент окошка, рисуем в него образ глифа имитиуруя
> > альфаканал вручную, и рисуем потом тот фрагмент обратно. И работать будет на
> > любой Х, вообще без Xft и Xrender'а..
> 
> Спасибо, лень.

 Так они же LGPL в OO - можно открутить и юзать их код где угодно (хотя не
вырвав большой кусок оттуда это не открутить) если оформить как .so.
 А что, лучше ждать 10 лет пока кто-то прикрутит альфаканал к Х и пока оно
возможно войдет во все Х серверы всех вендоров?

> > 
> > > Кроме  того они естественно сломали (расширили :-)) уже привычную
> > > схему  XLFD  (которая  давно  была,  но  только-только   начинала
> > > работать),  и  тотально  забили  на  network transparency (теперь
> > > вместо инсталляции любимых шрифтов/aliasов на сервере у вас будет
> > > радость ставить их на каждом клиенте).
> > 
> >  Ну, хочешь АА- ставь шрифты на клиенте (или терпи тормоза от симуляции АА
> > "вручную")...
> 
> а)  Не  хочу  я  ставить шрифты на клиенте. Серверный это ресурс.
> Так принято. И менять это -- это много нового геморроя.

 ОК, тогда не вспоминайте про АА и все - в чем проблемы?
 Но такая безкомпромисность не оправдана в этом случае..
 
> >  А вот с XLFD - что они там сломали (я что-то давно об этом слышал, и забыл
> > как оно сломалось)? 
> 
> Да  особенно  ничего.  Просто то, что там требуется -- это уже не
> XLFD.  Как теперь шрифты в ресурсах именовать -- вовсе непонятно.

 Про шрифты в ресурсах - а зачем оно? Ведь тогда надо за уши притянуть все
тулкиты чтобы они Xft поддерживали. Ну а по способу именования - можно в
названии шрифта префикс искать - если есть Xft - то делать АА, если нет - то
не делать.

> Как идеологически правильно рисовать символы из разных charset --
> тем более. Ничего похожего на XFontSet я кстати там не увидел. 

 Нехорошо, но пускай японцы суетятся. Хотя если бы делали Xft пряморукие люди,
такой бы проблемы бы не было. Но возможно виноваты менеджеры из SuSE которые
возможно платили людям, писавшим Xft для XFree - просто приказали не делать
аналог fontsets и вообще чего-то не нужного latin1 юзерам под страхом чего-то
страшного.

 Одно радует - если приспичит очень сильно - все можно поправить самому.

 Best regards,
  -Vlad

Reply to: