Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Ликбез. Шпаргалка по графической системе

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [*nix/Linux] >> Ликбез. Шпаргалка по графической системе
Имя
Сообщение << Старые топики   Новые топики >>
Ликбез. Шпаргалка по графической системе - 2008-02-21 19:33:51.256666   
Jasmin

Сообщений: 2320
Оценки: 0
Присоединился: 2007-05-03 23:08:53.390000
Сейчас ботанить буду, кому не нравиться, не читайте. rgo, welcome. Кто нить может обьяснить как оно фсе воркает? Интересна целая картина а не фрагменты.

X.org - это как я понимаю тупой фреймворк для видеодрайверов. Выставить разрешение, предоставить функции OpenGL…
оконные манагеры - рисует панельки с часами чтобы пользователю не было страшно
Gtk, Qt - к ним можно обратиться с просьбой нарисовать кнопку и они вернут битмап.
куда здесь compiz вставляется, непонятно.

Ну, это мои пьяные домыслы, а как на самом деле? Схемка была бы очень кстати.
Post #: 1
RE: Ликбез. Шпаргалка по графической системе - 2008-02-22 00:51:45.656666   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
Итак.
Архитектура графики в *nix вкратце.

Есть X-сервер, который заведует таким системными ресурсами как видеокарта, клавиатура, мышь и сопутствующими. X-сервер – это просто приложение. Есть X-клиенты – это тоже приложения, но они уже ничем не заведуют, они просто коннектятся через сокет к X-серверу, и просят его выделить им окошко, или сменить размеры этого окошка, а сервер им взамен присылает сообщения с информацией о нажатиях клавиш, изменениях размера окна и пр. X-клиенты могут работать на другом хосте – это не возбраняется, но дефолтовые настройки X-сервера позволяют только локальные коннекты, хотя если туннелировать X-трафик в ssh, то ssh-клиент умеет его впихивать в X-сервер пользуясь локальным коннектом, то есть это не мешает.
Общение между клиентом и сервером происходит по специальному протоколу, под названием X-протокол. Кстати очень уязвимый к снифанию, и поэтому его обычно туннелируют через ssh. Чтобы все кодерам не париться с этим протоколом, есть Xlib – библиотека созданная специально для X-клиентов. Но эта библиотека не сильно выше уровнем чем X-протокол. Только что вместо записи в сокет, надо вызывать функции с красивыми именами – это конечно удобнее, но геморроя там ещё килограммы. Для OpenGL приложения, которое всё равно менюшки вручную рисует большего и не надо, но это OpenGL приложение будет работать не столько с Xlib, сколько с opengl, то есть эти приложения в расчёт можно не брать. А для всех других приложений к Xlib сверху понаворочено всяких библиотек, которые ещё упрощают работу прикладного программиста. В частности такими библиотеками являются AthenaWidgets, Motif, gtk, qt и кучка других.
X-сервер, довольно-таки неинтерактивен, то есть если под голыми X-ами запустить программку, то первая проблема которая будет – это изменить размеры окна этого приложения. Поэтому есть wm – это такие специальные X-клиенты, которые вокруг всех окошек рисуют границы, приделывают к ним заголовки, кнопочки свернуть/закрыть и всё остальное что они к ним приделывают. В частности, wm позволяют изменять размеры окон, переключаться между ними мышкой или Alt-Tab'ом и проч. Они просто перехватывают весь пользовательский ввод, вычленяют из него специальные вещи, типа Alt-TAB, и интерпретируют согласно своей природе рассылая владельцам окошек всякие сообщения, типа "твой новый размер теперь такой-то".

Что же есть compiz я, к стыду своему, не знаю :)
Хоть я и поставил Xorg 7.x, сразу как только он вышел, но до compiz'а и beryl'а у меня просто руки не дошли. У меня есть определённые соображения, но сильно туманные. Поэтому я лучше не буду путать окружающих этими туманами.
Post #: 2
RE: Ликбез. Шпаргалка по графической системе - 2008-02-22 01:51:44.716666   
Jasmin

Сообщений: 2320
Оценки: 0
Присоединился: 2007-05-03 23:08:53.390000
Тоесть схемка получаецца такая? А как WM рисует декораторы? Если они вне окна а рисовать можно только в окне

Post #: 3
RE: Ликбез. Шпаргалка по графической системе - 2008-02-22 07:29:04.310000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: Jasmin
А как WM рисует декораторы? Если они вне окна а рисовать можно только в окне

я думаю к каждому окну приложения создают ещё одно побольше, в котором и рисуют всё.
Post #: 4
Страниц:  [1]
Все форумы >> [*nix/Linux] >> Ликбез. Шпаргалка по графической системе







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.