LINUX.ORG.RU

Графика без Xorg


0

0

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

Приложение должно быть с графическим интерфейсом, и при этом оно должно работать без Xorg/Xfree86. Это ограничение вызвано тем, что Xorg/Xfree - достаточно требовательные штуковины, и весьма объемные. Система, из-под которой будет запускаться приложение, будет загружаться с компакт-диска. Сложность интерфейса приложения - где-то как у инсталлятора Fedora или Ubuntu (в принципе, это и будет в некотором роде инсталлятор). Также весьма важна эстетичность внешнего вида элементов управления. Необходимое условие - выбранные средства разработки не должны обязывать распространять приложение под лицензией GPL.

Проблема заключается в наличии подходящих для этого библиотек. Пока посмотрел DirectFB (v1.2.3) - собрал GTK2 с его поддержкой, получил неправильно выставленный режим экрана. Собрал GTK с более старой версией DirectFB 1.0.0 - получилось лучше, gtk-demo работает, но наличествуют артефакты при отрисовке некоторых элементов.

Появились вот такие варианты и соответственно вопросы:

- XDirectFB - можно ли в нем запускать программы, собранные для работы в X11? Сколько ресурсов это дело потребляет?

- Какой-нибудь другой "легкий" X-сервер?

- wxDFB - на офсайте пишут, что работает. После прочтения аннотации выяснилось, что темы оформления оно не поддерживает - т.е. будет выглядеть угрёбищно?

- Может быть, есть способы избавиться от артефактов в GTK-DFB?

- Что-нибудь ещё?

Вот такие дела, прошу совета и комментариев по делу.


> выбранные средства разработки не должны обязывать распространять приложение под лицензией GPL.

Иди отседова в БЗДешном гомне копаться, пока сцаными тряпками не прогнали.

anonymous
()

собирал как-то дистрибутив с помощью openembeded, нвсколько я помню xfbdev кушал 3 мегабайта. конечно это зависит еще и от разрешения и бит на пиксел, поверх xfbdev норамально работали и gtk и qt для X11

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

> Есть ещё Nano-X. На него, вроде, тоже GTK портировали.

О, спасибо. Их сайт мрачноват, но посмотрю подробнее.

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

> А ещё есть svgalib.

Это больно уж низкий уровень, нужен GUI Toolkit.

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

> qtopia?

Это отличная штука, сам бы выбрал именно её. Но это повлечет GPL, чего не хотят заказчики.

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

> Иди отседова в БЗДешном гомне копаться, пока сцаными тряпками не прогнали.

Ну почему же сразу БЗД. LGPL, MPL - тоже вполне годятся.

А вообще извини, что задел твою тонкую душевную организацию.

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

> нвсколько я помню xfbdev кушал 3 мегабайта. конечно это зависит еще и от разрешения и бит на пиксел, поверх xfbdev норамально работали и gtk и qt для X11

Спасибо, посмотрю. Звучит неплохо, было бы очень удобно использовать (почти что) нормальный X-сервер.

ccoder
() автор топика

как уже сказали, nano-X. Если нужно совсем просто, то к ним в комплект входит microwindows - GUI позаимствованый из wine, но он убогий и неудобный (самое что бесит - отсутствие event propagation). Далее есть flnx. Это патченный fltk1 для работы с microwindows, на sf.net где-то его можно слить, не помню. Далее Qtopia, наверно самое простое но и требовательное к ресурсам.

Я бы взял flnx. У меня он крутился на ARMе, нареканий не было. Работает через обычный fb.

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

> cairo2 , gtk2 работают на directfb

Это я первым делом попробовал. Наблюдаются артефакты отрисовки в некоторых элементах. Мешают в общем то только эти артефакты, а в остальном - прекрасно.

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

> Далее Qtopia, наверно самое простое но и требовательное к ресурсам.

Qtopia мне годится вообще по всем пунктам, кроме одного - заказчик против GPL.

> Я бы взял flnx. У меня он крутился на ARMе, нареканий не было. Работает через обычный fb.

Спасибо, посмотрю.

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

> проф. версия стоит от 1500 убитых енотов, вроде бы

1. Дорого (да, такой я нищеброд)

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

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

> Это отличная штука, сам бы выбрал именно её. Но это повлечет GPL, чего не хотят заказчики.

почему сразу GPL? берете коммерческую версию и все дела.

// wbr

klalafuda ★☆☆
()

вообще "не очень сложное приложение" можно и напрямую в фреймбуффере написать. Что, никогда не делал свою GUI-библиотеку?

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

>Это я первым делом попробовал. Наблюдаются артефакты отрисовки в некоторых элементах. Мешают в общем то только эти артефакты, а в остальном - прекрасно.

Я лично за связку gtk2 + directfb! Кстати, если не ошибаюсь, графический инсталлятор Дебиана использует именно её. Могу предложить по поводу артефактов обратиться на список рассылки, т.к. говорите, что это единственное, что смущает. Ведь даже ГИМП должен работать (http://www.directfb.org/wiki/index.php/Projects:GTK_on_DirectFB). Так что надеюсь, что замеченные артефакты просто временные проблемы разных версий. Да и ещё, уверен, куча всего работает.

anonymous
()

xvesa

x86 only насколько я понимаю

dimon555 ★★★★★
()

Спасибо всем за советы!

Пересмотрел многое, в итоге решил добиться нормальной работы GTK2 на DirectFB. Если не получится, буду думать о покупке лицензии на Qt/Embedded.

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

> Сложность интерфейса приложения - где-то как у инсталлятора

может взять какой-нибудь web-engine,
который работает без Xов (для embedded), типа WebKit.
ведь инсталлятор просто набор форм (wizard widget),
а использвать HTMP/CSS/JavaScript для генерации форм -
наиболее простой способ.
Да и "весит" он легче, чем полноценная GUI библиотека.

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

> Если не получится, буду думать о покупке лицензии на Qt/Embedded.

См. мои ответ выше.
Для программы типа инстолятора - это, как из пушки по воробьям.

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

> может взять какой-нибудь web-engine,

Рассматривал я такую мысль. Подойдет, если подойдет, только WebKit, остальное - или примитивное, или тяжелое (Gecko).

Да и в WebKit'e поддержка фреймбуффера/SDL только зачаточная, там ее еще пилить и пилить.

Совсем мысль отбрасывать, конечно, не стоит, но приоритет у этого варианта невысокий =)

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

btw, посмотрел на список
http://en.wikipedia.org/wiki/List_of_layout_engines
отличная задачка написать движок на основе
http://en.wikipedia.org/wiki/Tkhtml (выбросив от туда tcl/tk)
с отрисовкой в памяти (можно взять cairo, gd, ASImage, gtkbuf, etc.) ..

только кто заплатит? :(

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

> остальное - или примитивное

tkhtml - весьма провинутая вешч, проходит ACID2 test,
то чего не преодолел IE6, FF2, и "весит" очень-очень мало.

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

>Получилось неплохо. Есть мелкие незначительные артефакты, появление которых можно обойти.

Радует!

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

> tkhtml - весьма провинутая вешч, проходит ACID2 test

только там (hv3) нету DOM и JavaScript в зачаточном состоянии

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