Compiz - Conhecendo a fundo II

Quando voltamos ao assunto de programação para Desktop, uma das melhores soluções no mundo de código aberto são as linguagens Python e C, pois ambas possibilitam uma grande integração com o Sistema Operacional, o qual o mesmo é desenvolvido.

[ Hits: 15.689 ]

Por: José Cleydson Ferreira da Silva em 26/08/2008


Uma leve introdução à linguagem de desenvolvimento



O amadurecimento das linguagens de programação orientadas a objeto proporcionou uma vasta integração da plataforma e aplicativos. Excelentes linguagens como C, C++, Python, Java etc são constantemente usadas neste tipo de desenvolvimento, se destacando sem sombra de dúvida aquelas que possuem uma melhor performance e agilidade para o caso específico.

Quando voltamos ao assunto de programação para Desktop, uma das melhores soluções no mundo de código aberto são as linguagens Python e C, pois ambas possibilitam uma grande integridade com o Sistema Operacional, o qual o mesmo é desenvolvido.

O Compiz trabalha com facilidade e domina o gerenciamento de janelas, sem que possam ter algum tipo de conflito com os demais gerenciadores. Desenvolvido inicialmente pela Novell, empresa de software, hoje seu desenvolvimento é movido por grandes contribuidores do mundo inteiro.

Qualquer software que se preze deve possuir um codificação limpa e bem definida para que possam ser facilmente interpretadas por outros desenvolvedores. Por este motivo todos os desenvolvedores devem seguir o mesmo estilo de programação.

Estilo básico do algorítimo

Exemplo simples:

static void
defaultMinimizeAnimInit (CompScreen * s, CompWindow * w)
{
    ANIM_SCREEN(s);
    ANIM_WINDOW(w);
    if (animZoomToIcon(as, aw))
    {
        aw->animTotalTime /= ZOOM_PERCEIVED_T;
        aw->animRemainingTime = aw->animTotalTime;
        aw->usingTransform = TRUE;
     }
     defaultAnimInit(s, w);
}

Como estamos falando de código aberto, os colaboradores usam editores de textos simples para trabalhar. Ambos recomendam o editor Vim.

Estrutura dos plugins

Virtualmente todos os plugins precisam armazenar dados de alguma forma, e na maioria das vezes tem que ser unida a uma estrutura central, um bom exemplo seria o armazenamento de dados do processo de uma animação ou a opacidade de uma janela em desvanecimento do plugin.

Para se obter esses acessos os plugins precisam de acesso à base privates em um CompDisplay e um em um CompScreen e em um CompWindow. O displayPrivateIndex é armazenado em um espaço dos plugin, geralmente visível na parte superior de um código. O initDisplay pedirá () este índice e alocará a memória para a estrutura, a seguir une a estrutura a d->base.privates [displayPrivateIndex] (que é uma união, assim d->base.privates [displayPrivateIndex] .ptr).

Para os outros índices aplica-se o mesmo processo, a não ser que o screenPrivateIndex seja armazenado geralmente na estrutura de encaixe da exposição, e o windowPrivateIndex na estrutura de encaixe da tela.

A maioria dos plugins setup para alcançar estas funções, chamadas geralmente PLUGINNAME_DISPLAY (o *d) CompDisplay, por exemplo, que conduziria a um *pd de PluginnameDisplay; variável, onde o p é a inicial do plugin.

Plugin cubo igualmente ganhou a capacidade para alcançar as estruturas de cada um, que outros encaixes (plugins) podem usar demasiadamente. Isto é conseguido por uma função do núcleo que permita que plugin peça um displayPrivateIndex de outro plugin; o descanso é uma matéria de compartilhar um encabeçamento, ou seja, são as libs (bibliotecas compartilhada) que estão em jogo.

    Próxima página

Páginas do artigo
   1. Uma leve introdução à linguagem de desenvolvimento
   2. Relacionamento com ambiente gráfico X
Outros artigos deste autor

Bioinformática - Clustalw-MPI: Análise Filogenética utilizando computação paralela e distribuída

Cairo-Dock - Seu desktop Linux com cara de MAC

Compiz - Janelas à 360 graus no Linux

Implementando servidor de aplicações PHP utilizando Zend Framework

Cadê o cubo?

Leitura recomendada

Instalar o Composer - Framework para o Ginga - NCL

Terminator - Multiterminais em Janela Única

Software livre na educação de crianças

Blender - Iniciante (parte 1)

Seu Slackware atualizado com SWARET

  
Comentários
[1] Comentário enviado por albfneto em 27/08/2008 - 10:12h

Aproveitando, um link interessante...
Como usar Compiz, Metisse e Beryl, no Mandriva Spring:

http://technocrat.net/d/2007/7/10/22919

[2] Comentário enviado por cleysinhonv em 27/08/2008 - 10:21h

Olá albfneto

Boa a sua indicação no link citado acima, obrigado.

valeu

[3] Comentário enviado por enricolo4 em 28/08/2008 - 00:26h

Gostaria de saber como faço para ativar o compiz-fusion no fluxbox?

[4] Comentário enviado por cleysinhonv em 10/09/2008 - 09:40h

Olha eu nunca usei o fluxbox, ao receber o email acompanhamento de comentário, procurei pesquisar, mas poucas informações eu encontrei. A respeito do caso especifico.

Obrigado pela pergunta.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts