# Информация о &kappname;

Thomas Luebking thomas.luebking@web.de
Иван Петров

     pis00593@udmglzs.udmene.ru

Перевод на русский
2005 Thomas Luebking
&FDLNotice;
2005-01-15
2.0.1

&kappname; - это движок комбинированной отрисовки (composite rendering), используемый &kwin;.

Этот документ в большей степени содержит общие объяснения того что это такое, как это работает, и какие существуют ограничения, а не документацию по использованию (так как оно работает автоматически в фоновом режиме)

KDE kwin движок отрисовки

## Введение

&kappname; основывается на xcompmgr, расширении X.org, написанном Кейтом Паккардом (Keith Packard), которое реализует особый способ отрисовки элементов экрана.

Менеджер комбинирования перехватывает вывод окон и составляет из этого одно изображение, которое и отображается на экране. Преимущество такого метода в том, что в сущности, с содержимым окон можно делать практически всё, включая смешивание их вместе (прозрачность), присоединение тени. Кроме того можно подсвечивать их, добавлять навязчивую рекламу в любом окне, сжимать их, добавлять растровые строки или всё что можно вообразить, ограниченное только возможностями вашей аппаратуры.

## Xorg

Для того чтобы &kappname; работал вам обязательно нужен X.org 6.8 или более поздний. X.org 6.7 и старше или XFree86 работать не будут.

### Настройка

Нужно явно включить это расширение. Добавьте новую секцию в конфигурационный файл X.org:

    Section "Extensions"
        Option "Composite" "Enable"
    EndSection

Если ваш GPU (сложный чип, который является основой современной графической карты) поддерживает ускорение отрисовки, включите её. Лучше всего это поддерживает NVIDIA, меньше карты от ATI.

    Section "Device"
    ....
    ....
        Option     "RenderAccel" "true"
    ....
    ....
    EndSection

&kappname; теперь должен быть доступен. Для получения большей информации, смотрите FAQ.

## Настройки

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

### Прозрачность

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

Прозрачность позволяет выделять особые окна, иметь трёхмерный взгляд на рабочий стол, отслеживать перекрывающиеся окна и, наконец, просто выглядит привлекательно. Ценой смешивания всего вместе является производительность системы.

Вы можете независимо настраивать прозрачность следующих элементов:

Активные окна

  Мы рекомендуем отключить прозрачность активного окна. Основной причиной этому является производительность, а второй - то, что просмотр содержимого прозрачного окна заставляет ваши мозги отделять раздражающую просвечивающую информацию, что утомительно.

Неактивные окна

  Если вы установите прозрачность неактивных окон, то активные окна будут выделяться и их легче будет определить. Тем не менее, если вы выберете меньшее значение, вам возможно будет труднее найти неактивное окно. Если вы выберете очень низкое значение (< 20%) вы возможно не сможете определить порядок окон, так что случайно сможете нажать кнопку Ok диалога, хотя вы просто хотели активировать окно. Оптимальными значениями являются 60%..80%.

Перемещаемые окна

  Хотя увеличение прозрачности окон (непрозрачность <20%) при перемещении - очень красивый эффект, это может сильно сказаться на производительности, особенно если вы не выключили тени (см. ниже). Попробуйте и, если почувствуете что ваша система работает очень медленно, оставьте передвигаемые окна непрозрачными. Это также применяется для окон, у которых изменяется размер.

Специальные окна

  Так как панели, такие как kicker, редко или вообще не перемещаются и обычно ограничены по размеру, это отлично смотрится и не сильно скажется на производительности системы.

Считать окна со включенным "Всегда наверху" как активные

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

Отключить ARGB-окна

  XRender поддерживает окна с альфа маской, т.е. прозрачными секциями. На сегодняшний день нет или есть очень немного приложений, в которых можно использовать эту возможность, поскольку это не имеет смысла без использования менеджера комбинирования. Со временем это может измениться.

  С другой стороны, большинство приложений gtk 1.x (⪚ xmms устанавливают такую альфа маску, так что окна становится невозможно использовать (по крайней мере, если окна под ними не чёрные), так что для приложений gtk можно отключить поддержку ARGB-окон. Мы надеемся, что в ближайшем будущем это будет исправлено в gtk.

### Тени

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

Использовать тени

  Так как тени расходуют дополнительные ресурсы cpu/gpu, их можно отключить, сохраняя общие возможности альфа канала.

Размер для активного окна
Размер для неактивного окна:
Размер для специального окна

  Вы можете выбрать различный размер тени для различных состояний/типов окна. Эти значения не абсолютные, а зависят от разрешения экрана.

  В принципе, вы можете установить любые значения (если вручную править файл конфигурации), но большие тени требуют больше ресурсов cpu/gpu.

Вертикальное смещение
Горизонтальное смещение

  По умолчанию, окно отбрасывает одинаковые со всех сторон тени, предполагающие фронтальный источник света. Пользователям, привыкшим к &MacOS;, может понравиться вертикальное смещение, а пользователям &Windows; - лёгкое смещение вправо и вниз. Поэкспериментируйте со значениями и оставьте понравившиеся.

Цвет тени

  Обычно тени, как результат неравномерного распределения света, являются градациями серого (таким образом максимальный цвет тени - это чёрный, или полное отсутствие света). Но это же виртуальный мир, и если кто-то захочет розовые тени, то почему бы и нет?

Убирать тень при перемещении

  Установите эту опцию если вам нужна большая производительность (особенно если вы используете прозрачные передвигаемые окна)

Убирать тень при изменении размера

  Мы рекомендуем включить эту опцию вне зависимости от того, используется прозрачность при изменении размеров окна (передвижении) или нет. Изображение теней окон должно постоянно пересоздаваться при изменении размера, что значительно влияет на производительность системы.

### Эффекты

Плавное появление окон
Плавное изменение прозрачности

  Вы можете захотеть, чтобы окна, вместо того чтобы просто появляться медленно проявлялись. Насколько это выглядит впечатляюще, настолько же впечатляюще это влияет на производительность, и с окнами которые находятся в процессе появления труднее взаимодействовать.

Скорость появления
Скорость исчезания

  По соображениям удобства, упомянутым в Плавное появление окон, наиболее практично использовать большую скорость появления и (для большей привлекательности) маленькую скорость исчезновения. Это обеспечит вам приятные эффекты и приемлемую производительность системы, а также маленькую задержку перед появлением информации.

## Проблемы

Используемое расширение очень ново. Оно может вызвать некоторые проблемы и даже вызвать отказ X, так что весьма рекомендуется даже не включать Композитные расширения в Xorg.conf на критически важных производственных системах. Тем не менее, если вы хотите рискнуть и сделать систему чуть менее стабильной, то конечно хорошо иметь приятное для глаза окружение.

В этом случае вы можете заметить некоторые проблемы. Ниже приведены некоторые часто встречающиеся и пути их решения:

У меня X.org 6.8.x, но &kappname; не запускается

Вы должны явно включить соответствующее расширение, для этого надо добавить новую секцию в /etc/X11/XorgConfig:

    Section "Extensions"
       Option "Composite" "Enable"
    EndSection

Хорошо, &kappname; работает, но невыносимо медленно

Если это поддерживается вашим GPU (большинство карт NVIDIA и некоторые карты от ATI), включите ускорение отрисовки

    Section "Device"
    ....
    ....
    Option     "RenderAccel" "true"
    ....
    ....
    EndSection

Если всё равно работает медленно, то можно попытаться отрегулировать использование памяти. Можно уменьшить глубину цвета экрана (⪚ с 24 до 16) или уменьшить разрешение (⪚ с 1280x1024 до 1024x768).

Обратите внимание на то, что в настоящее время ограничивающим фактором для расширения является размер кэша CPU

После включения расширения я больше не могу запустить никакие GLX-приложения. У меня стоит карта от NVIDIA

Из-за некоторых проблем NVIDIA отключает поддержку GLX когда включено комбинирование. Включение возможно, но может вызвать проблемы на некоторых сочетаниях ядра/драйвера/GPU.

    Section "Device"
    ....
    ....
    Option  "AllowGLXWithComposite" "true"
    ....
    ....
    EndSection

Я хочу поиграть в игру, использующую SDL (но не GL), вызываю, например, scummvm, но когда compmgr активен, я вижу только тень!

Это проблема с PictType, возвращаемым SDL.

Решение:

    Вместо прямого вызова scummvm, вызывайте SDL_VIDEO_X11_VISUALID=0x24 scummvm Это заставит SDL использовать поддерживаемый формат и вы сможете играть также как и раньше.

Приложение ХХХ не запускается после включения расширения.

Приложение YYY вызывает сбой X после включения расширения.

Приложение ZZZ выглядит странно после активации менеджера комбинирования.

Расширение всё ещё экспериментально.

Решение:

Вместо прямого вызова `appName`, вызывайте `XLIB_SKIP_ARGB_VISUALS=1 appName`

Известные приложения, которые вызывают проблемы:

- Все приложения gtk1 (gmplayer, xmms, gaim - не запускаются, выглядят странно или приводят к сбою X

- &kuickshow; - отображает только чёрную рамку

- &Qt; Designer - приводит к сбою X

- &kopete; - приводит к сбою X

- &kolf; - приводит к сбою X

Я пытаюсь посмотреть фильм, но в окне видео вижу только артефакты.

Скорей всего, вы используете видео драйвер xv. Он использует режим перекрытия, когда содержимое видео записывается напрямую в память видеокарты, минуя X. Поэтому окно считается статическим (цветной фон) и не обновляется соответствующим расширением.

Будем надеяться на решение этой проблемы в будущем. В настоящее время лучшие результаты показывает Xine, но просмотр прозрачного видео всё равно не быстр.

## Авторские права и лицензирование

### Авторы

Томас Любкинг (Thomas Luebking) baghira-style@gmx.net - Редактор

&underFDL; &underGPL;