Группа разработчиков из Портлендского университета представила (http://wiki.x.org/wiki/Events/XDC2012/Proceedings#XCWM_and_X... на конференции разработчиков X.Org библиотеку libXCWM (http://cgit.freedesktop.org/xorg/lib/libxcwm/tree/) (X11 Compositing Window Manager Library) и оконный менеджер XtoQ (http://cgit.freedesktop.org/xorg/lib/libxcwm/tree/src/xtoq) (X.org Rootless Compositing Window Manager), нацеленные на обеспечение прямого запуска X-клиентов на не X Window системах, таких как Wayland, Mac OS X и Microsoft Windows.
Библиотека libXCWM выступает в роли прослойки между XCB (http://en.wikipedia.org/wiki/XCB) и специфичной для каждой платформы оконной системы, что позволяет работать с X-приложениями в окнах, функционирующих с использованием нативных оконных систем текущих платформ, без привлечения дополнительных надстроек, подобных XQuartz или XWin. XtoQ представляет собой построенный с использованием библиотеки XCWM прототип оконного менеджера для платформы Mac OS X, дающий возможность работать с X-приложениями в стандартных окнах Mac OS X без запуска X-сервера XQuartz (http://xquartz.macosforge.org).
<center><iframe width="640" height="480" src="http://www.youtube.com/embed/XC3Y63PhcR4?rel=0" frameborder="0" allowfullscreen></iframe></center>URL: http://www.phoronix.com/scan.php?page=news_item&px=MTE5MDA
Новость: http://www.opennet.me/opennews/art.shtml?num=34918
"без привлечения дополнительных надстроек, подобных XQuartz или XWin"
так он же сам такая же надстройка...
Здесь будет библиотека вместо сервера.
И в чём преимущество данного подхода? Ну прямые вызовы вместо пересылки сообщений. Но ведь скорость-то что вызовов, что пересылки сообщений совершенно незаметна на современных машинах. А управляющие компоненты в любом случае неродные, то есть, программы выглядят неестественно.
Нечитатель не умничай.
> совершенно незаметна на современных машинахНеужели. То-то unity (точнее compiz) так проц грузят. Иногда все просто замирает и не реагирует на нажатия. И это с драйвером nvidia.
уверены, что виноват компиз, а не таже нвидиа?
а то тут взаимосвязь проследить не всегда очевидно.вот стоит генту, на компиз+xfce - всё летает и на интел, и на нвидиа.
а с учётом того, что компиз отлично летал ещё лет 5-7 назад на древнючих картах...
в общем был у меня как-то баг с интелом (не помню с какой версией драйверов), сходный по симптомам - всё замирало, потом отмирало. в dmesg появлялась запись вида:
[ 242.493640] [drm:i915_hangcheck_hung] *ERROR* Hangcheck timer elapsed... GPU hung
т.е. банально видео-карта не отвечала.
тоже самое было и с нвидией (а с ней вообще нашумевшая история, когда с выпуском висты она висла и перегружались дрова - http://www.google.ru/search?q=nvidia+hung+vista&ie=utf-8&oe=... )
и периодически происходит.
зыж
и вообще,
[ 1.670263] i915 0000:00:02.0: irq 41 for MSI/MSI-X
http://en.wikipedia.org/wiki/Message_Signaled_Interrupts
на некоторых моделях та ещё хрень реализована
> Неужели. То-то unity (точнее compiz) так проц грузят. Иногда все просто замирает
> и не реагирует на нажатия. И это с драйвером nvidia.Вы думаете, что если механизм посылки/обработки сообщений заменить на прямой вызов процедур, это сильно ускорит Unity/compiz? Сдаётся мне, что всё сажается совершенно не в нём. А, скорее, в XRender - когда все фигуры переводятся в трапеции.
плюсую. х11 на маках уныло медленно работает
А это вообще хоть кому-нибудь надо? :)
Мне нужно
Мне не нужно.
Мне нужны сырцы
Все это очень нужно и важно.
Есть только пара вопросов: XCB не может работать с GLX, а Xlib не поддерживается. Значит opengl не будет? Если так, то это связано с дальнейшей перспективой избавиться от GLX в пользу EGL, или с чем?
OpenGL будет работать не через XCB, а напрямую, как и обычно. Очевидно же.
Жду портирования на Android и DirectFB.
запихали икс-сервер в библиотеку. только зачем?если программа написана без использования тулкитов, для «чистых» иксов — они в итоге должны переписать практически все иксы и часто используемые расширения. и всё равно программу надо отдельно с этой ерундой линковать.
а если программа написана на каком-либо популярном кроссплатформенном тулките, то и тем более эмулятор не нужен.
в общем, типичный студенческий проект «для тренировки», практического смысла не имеет.
> и всё равно программу надо отдельно с этой ерундой линковать.Ну вообще-то…
>> Библиотека libXCWM выступает в роли прослойки между XCB и специфичной для каждой платформы оконной системыИными словами, программы, линкованные с XCB, будут работать и с этим.
> Иными словами, программы, линкованные с XCB, будут работать и с этим.Таких программ (чтобы их тулкит был не кроссплатформен) очень немного.
> программу надо отдельно с этой ерундой линковать.ты в своём стиле, слышу звон - не знаю где он
>> программу надо отдельно с этой ерундой линковать.
> ты в своём стиле, слышу звон - не знаю где онто есть, линковать не надо? ок, напиши, как и почему.
> запихали икс-сервер в библиотеку. только зачем?Да, непонятно. Казалось бы, изменения лишь в механизме вызова процедур отрисовки - посылка сообщений (дополнительная к посылке сообщений в MacOSX/Win32) или непосредственный вызов.
> если программа написана без использования тулкитов, для «чистых» иксов — они в итоге должны переписать практически все иксы и часто используемые расширения. и всё равно программу надо отдельно с этой ерундой линковать.
Насколько я понимаю, не для "чистых Х" (тогда используется Xlib), а для XCB. Однако, на XCB написано очень мало программ и тулкитов. То есть, применимость хоть и есть - не надо таскать доп. Хсервер, но она очень ограничена.
Нужно, чтобы:
а) Программа была написана на XCB или использовала тулкит, поддерживающий XCB (не Xlib).
б) Не использовала кросс-платформенный тулкит.
в) Не нужны приемущества использования Х (сетевая прозрачность).
> Насколько я понимаю, не для «чистых Х» (тогда используется Xlib), а для XCB.XCB — это даже более «чистый» икс-протокол, чем Xlib. посмотри на реализацию: XCB — это практически pure x-proto.
> XCB — это даже более «чистый» икс-протокол, чем Xlib. посмотри на реализацию: XCB — это практически pure x-proto.Ок. Но это терминологические тонкости. :-)
Хорошая идея. Портирование некоторых приложений с помощью этой либы можно очень упростить.
> Хорошая идея. Портирование некоторых приложений с помощью этой либы можно очень упростить.можно примеры приложений? нет, действительно интересно.