# Informação do &kappname;

Thomas
Luebking
thomas.luebking@web.de
José
Pires

    jncp@netcabo.pt

Tradução
2005
Thomas Luebking
&FDLNotice;
2005-01-15
2.0.1

O &kappname; é um motor de desenho composto para ser usado pelo &kwin;.

Este documento é mais uma explicação geral do que faz, como funciona e quais as restrições do que propriamente como o usar (dado que funciona automaticamente em segundo plano).

KDE
kwin
motor de desenho

## Introdução

O &kappname; baseia-se no xcompmgr, a implementação de composição de referência do Keith Packards para usar as novas funcionalidades do X.

Um gestor de composição captura o resultado das janelas do X e desenha-as como se fosse uma única imagem que será apresentada no ecrã. A vantagem de fazer isto é que poderá fazer praticamente tudo com o conteúdo das janelas, incluindo a mistura de todas elas (translucidez) ou a associação de sombras. Poderá também pintá-las com uma dada cor, adicionar uma publicidade irritante à janela, encolhê-las, fracturá-las, adicionar linhas de varrimento ou tudo o que possa imaginar, estando o limite no seu 'hardware'.

## Xorg

É necessário o X.org 6.8 ou posterior para ter o &kappname; a funcionar. O X.org 6.7 ou anteriores ou o XFree86 não irão funcionar.

### Configuração

Necessita de activar explicitamente a extensão Composite. Adicione uma nova secção ao seu ficheiro de configuração do X.org:

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

Se for suportado pelo seu GPU (o 'chip' complexo que dá poder a uma placa gráfica moderna), active a aceleração Render. Esta é melhor suportada pela NVIDIA e não tanto pelas placas da ATI.

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

O &kappname; deverá ficar agora disponível. Para mais informações, veja por favor a FAQ.

## Configuração

Este capítulo descreve os parâmetros que pode mexer, qual o seu resultado visual e o seu impacto na performance.

### Translucidez

Um objecto translúcido é um que permite passar a luz através dele. Em termos das janelas do seu ecrã, significa que o conteúdo das janela pode ser visto através da janela que estiver no topo.

A translucidez permite-lhe realçar as janelas especiais, ter uma vista tridimensional do seu ecrã, manter um registo das janelas cobertas e simplesmente fica bonito. O preço é que a mistura das imagens em conjunto custa alguma carga ao sistema.

Poderá configurar de forma independente a translucidez para os seguintes itens:

Janelas activas

  Sugere-se que active a translucidez de janelas para a janela activa. A razão principal é por causa da performance e, em segundo lugar, porque para analisar o conteúdo de uma janela translúcida significa que o seu cérebro tem de se esforçar para ignorar a informação irritante que aparece por trás, o que se torna cansativo.

Janelas inactivas

  Se tornar as janelas activas translúcidas, as janelas activas ficarão realçadas e mais fáceis de colocar em primeiro plano. Contudo, se escolher um valor baixo, poderá ter problemas a encontrar uma janela inactiva. Se escolher valores mesmo muito baixos (< 20&percnt;) poderá não conseguir distinguir as janelas empilhadas, como tal poderá carregar sem querer no botão OK de uma janela quando apenas queria activar uma janela. Os valores óptimos ficam entre 60&percnt; e 80&percnt;.

Janelas em movimento

  Ainda que seja um efeito bonito ter janelas altamente translúcidas (opacidade < 20&percnt;) ao mover as janelas, existe um preço bem pesado a pagar em performance, especialmente se não desactivar as sombras (ver abaixo). Basta tentar e, se sentir que o seu sistema fica muito lento, tente manter as janelas em movimento opacas. Este valor também se aplica as janelas quando estiverem a ser dimensionadas.

Janelas acopladas

  Dado que as janelas acopladas, como o 'kicker', são raramente (se é que são alguma vez) mudadas de posição e são de tamanho limitado, isto é puramente visual e não irá afectar de forma determinante a performance do seu sistema.

Tratar as janelas "manter acima" como activas

  Se disser a uma janela para ficar acima das outras, normalmente irá querer deixá-la com o foco (em primeiro plano), como tal poderá fazer sentido dar-lhe a mesma ênfase.

Desactivar as janelas ARGB

  O XRender suporta janelas com uma determinada máscara 'alfa', &ie; com secções translúcidas. De momento, existem poucas ou nenhumas aplicações que tirem partido desta funcionalidade, dado que não faz muito sentido sem um gestor de composição. Isto poderá mudar no futuro.

  Por outro lado, a maioria das aplicações de GTK 1.x (&eg;, o xmms) definem esse tipo de máscara, o que resulta em janelas quase inutilizáveis (desde que as janelas subjacentes não sejam pretas), como tal poderá desactivar o suporte para as janelas ARGB aqui, para tirar partido das aplicações do GTK. Espera-se que possa vir a existir uma actualização para o GTK+ no futuro para resolver isto.

### Sombras

Porque é que alguém poderá querer as suas janelas a mostrar sombras? Bem, talvez por parecer bonito, ou porque cria uma melhor separação entre janelas ou... simplesmente porque parece bonito!

Usar sombreados

  Dado que as sombras custam alguma ocupação adicional do CPU/GPU, poderão ser desactivadas, mantendo à mesma uma capacidade para canais 'alfa' geral.

Tamanho da janela activa
Tamanho da janela inactiva
Tamanho da janela acoplada

  Poderá seleccionar diferentes tamanhos das sombras para os vários tipos/estados das janelas. Os valores não são absolutos mas poder-se-ão aplicar à sua resolução do ecrã.

  Em princípio, poderá definir os valores que quiser (se editar o ficheiro de configuração com um editor de texto, muito além do valor 32 que é oferecido), mas as sombras maiores ocupam mais poder de CPU/GPU.

Deslocamento vertical
Deslocamento horizontal

  Por omissão, a janela iria projectar uma sombra igual a toda a volta, o que implicaria uma fonte de luz frontal. Os utilizadores familiarizados com o &MacOS; poderiam querer um deslocamento vertical, enquanto os utilizadores do &Windows; poderão preferir um deslocamento mais subtil para sueste. Experimente os valores até que fique satisfeito.

Cor do sombreado

  Normalmente as sombras, na ausência de luz, aparecem em tons de cinzento (de modo que a cor máxima de sombra é o preto, o que corresponde à ausência completa de luz). Ei, mas isto é um mundo virtual, e você poderá querer até ter sombras cor-de-rosa, porque não?

Retirar sombras ao mover

  Assinale isto se necessitar de mais performance (especialmente ao usar janelas translúcidas em movimento).

Retirar sombras ao mudar tamanho

  É uma boa ideia assinalar este item quer esteja a usar janelas translúcidas em movimento ou a serem dimensionadas quer não. A imagem da sombra das janelas tem de ser criada de novo permanentemente no caso de dimensionar as janelas, o que trará um enorme impacto na performance do sistema.

### Efeitos

Janelas que desvanescem
Desvanescer entre mudanças de opacidade

  Em vez de mostrar simplesmente uma janela nova, poderá querer que ela apareça gradualmente. Embora isso cause boa impressão, também faz impressão na performance e é difícil de interagir em condições com as janelas que estão a aparecer ou a desaparecer.

Velocidade do aparecimento
Velocidade do desaparecimento

  Pelas razões de usabilidade indicadas nas Janelas que desvanescem, é mais prático usar uma velocidade rápida de de aparecimento e (para causar boa impressão) uma velocidade lenta de desaparecimento. Isto irá provocar efeitos giros e uma sensação de suavidade, assim como provoca pouca latência antes de a informação aparecer.

## Problemas

A extensão Composite propriamente dita é bastante recente. Poderá causar vários problemas e até estoirar o X, como tal recomenda-se mesmo que nem sequer active a extensão Composite no Xorg.conf em máquinas de produção críticas. Contudo, se está disposto a arriscar num sistema um pouco mais instável, é certamente giro ter alguma beleza no sistema.

No caso de sentir algumas instabilidades, estão aqui alguns problemas comuns - e as soluções alternativas:

Tenho o X.org 6.8.x, mas o &kappname; recusa-se a iniciar

Terá de activar explicitamente a extensão Composite, adicionando para tal uma nova secção no /etc/X11/XorgConfig:

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

Ok, o &kappname; funciona, mas está horrivelmente lento

Se for suportado pelo seu GPU (principalmente nos NVIDIA e parcialmente nas placas da ATI), certifique-se primeiro que activou a aceleração Render

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

Se continuar à mesma lento, poderá tentar ajustar a sua utilização de memória. Tanto poderá reduzir a profundidade de cor do seu ecrã (&eg; de 24 para 16) ou reduzir a sua resolução (&eg; de 1280x1024 para 1024x768).

Tenha em mente que o factor limitativo da extensão Composite parece ser o tamanho da 'cache' do CPU.

Depois de activar a extensão Composite, não consigo correr mais nenhuma aplicação de GLX. Tenho uma placa da NVIDIA.

Devido a alguns problemas, a NVIDIA desactivou o suporte de GLX quando o suporte do Composite está activo. A reactivação é possível, mas poderá causar problemas com algumas combinações de 'kernel'/controlador/GPU.

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

Eu queria jogar um jogo que usa a SDL (mas não a GL) como, por exemplo, o scummvm, mas quando o 'compmgr' está activo, tudo o que vejo é uma sombra!

Isto é um problema com o PictType que foi indicado pela SDL.

Solução alternativa:

    Em vez de invocar directamente o scummvm, invoque o
    SDL_VIDEO_X11_VISUALID=0x24 scummvm Isto irá dizer à SDL
    para usar um formato suportado, para que assim possa jogar como sempre fez.

A aplicação XXX recusa-se a correr após iniciar a extensão Composite.

A aplicação YYY estoira o X após iniciar a extensão Composite.

A aplicação ZZZ parece estranha após activar o gestor de composição.

A extensão Composite é ainda experimental.

Solução alternativa:

Em vez de invocar o `nomeAplicacao` directamente, invoque o `XLIB_SKIP_ARGB_VISUALS=1 nomeAplicacao`

As aplicações conhecidas por causarem problemas:

- Todas as aplicações do GTK+ 1 (&eg; gmplayer, xmms, gaim) - estoirando no arranque, aparecerem estranhas ou inúteis ou estoirarem mesmo com o X

- &kuickshow; - mostra apenas uma área a preto

- &Qt; Designer - estoira o X

- &kopete; - estoira o X

- &kolf; - estoira o X

Tento ver um vídeo, mas só aparecem coisas estranhas na Janela do Vídeo.

Está a usar o xv como infra-estrutura de vídeo. Este é o modo de sobreposição, onde o conteúdo do vídeo é escrito directamente na memória do vídeo, passando ao lado do X. Como tal, a janela parece estar estática (fundo colorido) e não é actualizada pela extensão 'damage'.

Espera-se que exista uma correcção para isto no futuro. O autor tem obtido melhores resultados a usar o Xine mas a visualização de vídeos translúcidos também não é lá muito rápida de qualquer forma.

## Créditos e Licenças

### Autores

Thomas Luebking baghira-style@gmx.net - Editor

&underFDL; &underGPL;