# Informação do &kappname;

Thomas Luebking thomas.luebking@web.de
Marcus Gama

    marcus.gama@gmail.com

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 ele faz, como funciona e quais as suas limitações do que propriamente como usá-lo (uma vez que ele funciona automaticamente em segundo plano).

KDE kwin motor de desenho

## Introdução

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

Um gerenciador de composição captura o resultado das janelas do X e desenha-as como se fosse uma única imagem que será apresentada na tela. A vantagem de fazer isto é que você poderá fazer praticamente tudo com o conteúdo das janelas, incluindo a mistura de todas elas (translucidez) ou a associação de sombras. Você poderá também pintá-las com uma determinada cor, adicionar uma publicidade irritante à janela, encolhê-las, fracioná-las, adicionar linhas de varredura ou tudo o que possa imaginar, limitado apenas pelo seu 'hardware'.

## Xorg

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

### Configuração

Você precisa de ativar explicitamente a extensão Composite. Adicione uma nova seção ao seu arquivo de configuração do X.org:

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

Se for suportado pelo seu GPU (o complexo 'chip' que dá poder a uma placa gráfica moderna), ative 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 você pode ajustar, qual o seu resultado visual e o seu impacto na performance.

### Translucidez

Um objeto translúcido é um que permite passar a luz através dele. Em termos das janelas da sua tela, 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 visão tridimensional da sua tela, manter um registro das janelas cobertas ou simplesmente deixar sua tela mais bonita. O preço é que a mistura das imagens em conjunto custa alguma carga ao sistema.

Você poderá configurar de forma independente a translucidez para os seguintes itens:

Janelas ativas

  Sugere-se que desative a transparência para a janela ativa. 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 que se esforçar para ignorar a informação irritante que aparece por trás, o que se torna cansativo.

Janelas inativas

  Se tornar as janelas inativas translúcidas, as janelas ativas ficarão realçadas e mais fáceis de colocar em primeiro plano. Contudo, se escolher um valor baixo, você poderá ter problemas para encontrar uma janela inativa. Se escolher valores mesmo muito baixos (< 20%) poderá não conseguir distinguir as janelas empilhadas, como tal poderá clicar sem querer no botão OK de uma janela quando apenas queria ativar uma janela. Os valores ótimos ficam entre 60% e 80%.

Janelas em movimento

  Ainda que seja um efeito bonito ter janelas altamente translúcidas (opacidade < 20%) ao mover as janelas, existe um preço bem pesado a pagar em performance, especialmente se não desativar 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 sendo redimensionadas.

Janelas acopladas

  Uma vez 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á afetar de forma determinante a performance do seu sistema.

Tratar as janelas "manter acima" como ativas

  Se você 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.

Desativar as janelas ARGB

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

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

### Sombras

Porque alguém poderia querer as suas janelas mostrando sombras? Bem, talvez apenas por parecer bonito, ou porque cria uma melhor separação entre janelas ou... simplesmente porque parece bonito!

Usar sombreados

  Uma vez que as sombras custam alguma ocupação adicional do CPU/GPU, elas poderão ser desativadas, mantendo ainda uma capacidade para canais 'alfa' geral.

Tamanho da janela ativa
Tamanho da janela inativa
Tamanho da janela acoplada

  Você poderá selecionar diferentes tamanhos das sombras para os vários tipos/estados das janelas. Os valores não são absolutos mas serão aplicados à sua resolução do tela.

  Em princípio, você poderá definir os valores que quiser (se editar o arquivo 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 padrão, a janela iria projetar uma sombra igual a toda a volta, o que implicaria uma fonte de luz frontal. Os usuários familiarizados com o &MacOS; poderiam querer um deslocamento vertical, enquanto os usuários do &Windows; poderão preferir um deslocamento mais sutil para sudeste. Experimente os valores até que fique satisfeito.

Cor do sombreado

  Normalmente as sombras, na ausência de luz, aparecem em tons de cinza (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á desejar 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 redimensionar

  É uma boa idéia assinalar este item quer esteja usando 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 redimensionar 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, você poderá desejar que ela apareça gradualmente. Embora isso cause boa impressão, também causa impacto na performance e é difícil de interagir em condições com as janelas que estão aparecendo ou desaparecendo.

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 legais e uma sensação de suavidade, assim como provoca pouca latência antes da informação aparecer.

## Problemas

A extensão Composite propriamente dita é bastante recente. Ela poderá causar vários problemas e até estourar o X, como tal recomenda-se mesmo que nem sequer ative 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 legal ter algum colírio para os olhos no sistema.

No caso de sentir alguma instabilidade, 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

Você terá que ativar explicitamente a extensão Composite, adicionando para tal uma nova seçã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 ativou a aceleração Render

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

Se continuar ainda lento, você poderá tentar ajustar a sua utilização de memória. Tanto poderá reduzir a profundidade de cor da sua tela (⪚ de 24 para 16) ou reduzir a sua resolução (⪚ de 1280x1024 para 1024x768).

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

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

Para evitrar alguns problemas, a NVIDIA desativou o suporte de GLX quando o suporte do Composite está ativo. A reativaçã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á ativo, tudo o que vejo é uma sombra!

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

Solução alternativa:

    Em vez de invocar diretamente 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 rodar após iniciar a extensão Composite.

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

A aplicação ZZZ parece estranha após ativar o gerenciador de composição.

A extensão Composite é ainda experimental.

Solução alternativa:

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

As aplicações conhecidas por causarem problemas:

- Todas as aplicações do GTK+ 1 (⪚ gmplayer, xmms, gaim) - estourando na inicialização, aparecerem estranhas ou inúteis ou estouram o X

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

- &Qt; Designer - estoura o X

- &kopete; - estoura o X

- &kolf; - estoura o X

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

Está usando o xv como infra-estrutura de vídeo. Este é o modo de sobreposição, onde o conteúdo do vídeo é escrito diretamente na memória do vídeo, não passando pelo X. Assim, a janela parece estar estática (fundo colorido) e não é atualizada pela extensão 'damage'.

Espera-se que exista uma correção para isto no futuro. Atualmente, eu tenho obtido melhores resultados usando 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;