Ликбез. Шпаргалка по графической системе
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Ликбез. Шпаргалка по графической системе - 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 вставляется, непонятно. Ну, это мои пьяные домыслы, а как на самом деле? Схемка была бы очень кстати.
|
|
|
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'а у меня просто руки не дошли. У меня есть определённые соображения, но сильно туманные. Поэтому я лучше не буду путать окружающих этими туманами.
|
|
|
RE: Ликбез. Шпаргалка по графической системе - 2008-02-22 07:29:04.310000
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
quote:
ORIGINAL: Jasmin А как WM рисует декораторы? Если они вне окна а рисовать можно только в окне я думаю к каждому окну приложения создают ещё одно побольше, в котором и рисуют всё.
|
|
|
|
|