ликбез по Х ( .... или кто такие окна?)

Настройка графического интерфейса, Иксов, десктопов, оконных менеджеров и иксовых терминалов

Модератор: Модераторы разделов

Salekh
Сообщения: 171

ликбез по Х

Сообщение Salekh »

Всем привет!
Недавно поставил себе GnuStep и обнаружил интересную вещь:

[WM: KWin, OpenBox, Metacity или др.]
Если у меня есть окно (например Konqueror, Nautilus, OO-Writer или любое другое) и я по этому окну (поверх) провожу другим окном, то на нижнем окне остается мусор, окно перерисовывается, мусор пропадает, но процесс перерисовки заметный.
Если я провожу окном поверх GnuStep-окна, то на GnuStep-окне мусора не остается, оно всегда полностью отрисовано.

[WM: Enlightenment]
Провожу любым окном по любому, мусора нет! Но окна двигаются немного медленно.


Вопросы:
Почему так происходит?
Где можно почитать об окнах и Х'ах на русском?
Как заставить не GnuStep окна работать без мусора?

-----------------------------------
Буду оч. рад Вашим ответам!
-----------------------------------
Спасибо сказали:
nick-23
Сообщения: 227
Статус: UNIX`оид
ОС: Linux/*BSD

Re: ликбез по Х

Сообщение nick-23 »

Salekh писал(а):
24.09.2006 13:26
Всем привет!
Недавно поставил себе GnuStep и обнаружил интересную вещь:

[WM: KWin, OpenBox, Metacity или др.]
Если у меня есть окно (например Konqueror, Nautilus, OO-Writer или любое другое) и я по этому окну (поверх) провожу другим окном, то на нижнем окне остается мусор, окно перерисовывается, мусор пропадает, но процесс перерисовки заметный.
Если я провожу окном поверх GnuStep-окна, то на GnuStep-окне мусора не остается, оно всегда полностью отрисовано.

[WM: Enlightenment]
Провожу любым окном по любому, мусора нет! Но окна двигаются немного медленно.


Вопросы:
Почему так происходит?
Где можно почитать об окнах и Х'ах на русском?
Как заставить не GnuStep окна работать без мусора?

-----------------------------------
Буду оч. рад Вашим ответам!
-----------------------------------

Драйвера? Видеокарта? В студию
MaxSelect Mission AWD/Sempron 2600+/ATi Xpress 200M/1G DDR/80G HDD/CRUX 2.5
EeE PC 900/20G/Archlinux/FreeBSD 7.2-RELEASE
Why UNIX? - Just For Fun
Спасибо сказали:
Salekh
Сообщения: 171

Re: ликбез по Х

Сообщение Salekh »

video: Trident CyberBlade
driver: Trident

============
Кстати еще наблюдение:
Если Х не Xorg, а XiG Accelerated X, то мусор есть с любым WM, но отрисовка быстрее и на окнах enlightenment нет мусора
Спасибо сказали:
Salekh
Сообщения: 171

Re: ликбез по Х

Сообщение Salekh »

Вот скриншоты моего рабочего стола

KDE окна - "пачкаются" другими
GnuStep окна - нет

А вот картинки на KDE окнах не портятсь (4й скриншот) Почему?

KDE окна - "пачкаются" другими
GnuStep окна - нет

А вот картинки на KDE окнах не портятсь (4й скриншот) Почему?

KDE окна - "пачкаются" другими
GnuStep окна - нет

А вот картинки на KDE окнах не портятсь (4й скриншот) Почему?
Спасибо сказали:
Salekh
Сообщения: 171

Re: ликбез по Х

Сообщение Salekh »

Опять размышляю ночами: "А почему оно так сделано?"...... :)

Как показывают дольнейшие исследования:

>1< Xorg/Xfree/Xaccel + WM (kwin,metacity..... , не Enlightenment*) + Приложения KDE/GNOME (ниж. окно)
Если одно окно накрывает другое и приложению нижнего окна сделать STOP (kill -s SIGSTOP) (или просто тормоза). Затем убрать верхнее окно, то на том, что ниже остается мусор (но может не на всем окне). Из чего у меня получился вывод, что Х не хранит у себя картинку окна (композит не в счет), и когда содержимое окна надо восстановить, то Х сообщает ою этом приложению. Но это может быть не для всего окна, например на окне свойств рабочего стола KDE остается картинка (предпросмотр обоев).
На мой взгляд сие является странным т.к. Х - изначально сетевая система и каждый раз гонять по сети (особенно плохой) содержимое всего окна наверное не прикольно (хотя не проверял); к тому же в какойто статье (программерский ман) прочитал, что для уменьшения затрат на отрисовку окна его можно 1 раз нарисовать и спрятать, а затем показывать когда нужно (не рисуя заново), что както не совсем вяжется с вышеописанным. :blink:

>2< Xorg/Xfree/Xaccel + WM (kwin,metacity.... и любой Enlightenment) + Приложения GnuStep (ниж. окно)
Если одно окно накрывает другое и приложению нижнего окна сделать STOP (kill -s SIGSTOP) (или просто тормоза). Затем убрать верхнее окно, то......!!!!! Все ОК, окно в норме! Кнопки, конечно не нажимаются, но мусора нет

>3< Xorg/Xfree + WM Enlightenment* + Приложения ЛЮБЫЕ (ниж. окно)
Если одно окно накрывает другое и просто тормоза (STOP не проверял, но мусора вообще ни капли)....... То тоже все ОК. НО! только если Х - Xorg/Xfree, но не Xaccel.

* - Enlightenment E16 определенной версии (не помню) Другие Е16/17 ведут себя как все прочие WM

Из всего выше написанного получается вывод что либо есть какойто атрибут окна (что более вероятно учитывая >3<), определяющий надо или нет Х хранить у себя образ окна, либо разные способы рисования...... и как быть с некоторыми частями окна, которые всегда остаютя?


Кто что знает об устройсте Х?
Почему оно так?
Почему бы всем окнам не делать как GnuStep или всем WM как E16
Спасибо сказали: