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

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

     pis00593@udmglzs.udmene.ru

Перевод на русский язык
Виктор Ерёмин

     ErV2005@rambler.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 ранних версий или 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, их можно отключить, сохраняя общие возможности альфа-канала.

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

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

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

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

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

Цвет тени

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

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

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

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

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

### Эффекты

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

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

Скорость плавного показа
Скорость плавного скрытия

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

## Проблемы

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

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

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

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

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

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

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

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

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

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

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

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

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

Я хочу поиграть в игру, использующую SDL (но не OpenGL), вызываю, например, 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;