Pular para o conteúdo

Cairo + Vala

sexta-feira, 9 novembro 2007

Resolvi gastar 1 das minhas 5 horas de sono diárias para dar uma mexida no binding Vala pra biblioteca de gráficos vetoriais Cairo.

Minha idéia era portar algo pronto em outra linguagem, então peguei um exemplo interessante do binding Python PyCairo. Com as anotações do PyCairo informando quais tipos eram passados como parâmetro, ficou mais fácil que mastigar água de cabeça pra baixo. Em alguns momentos eu só acrescentei ponto-e-vírgula ao fim das linhas de código Python.

Cairo Vala Demo
Cairo desenhando sobre uma Gtk.DrawingArea
(Dublin ao fundo)

Faz um bom tempo que estou no regime Python & C, e estava perdendo o traquejo de como programar numa linguagem orientada a objetos com tipagem estática, por isso Vala está sendo algo bastante útil, além de divertido.

Uma das coisas que eu não estava sabendo fazer era passar um array de double como parâmetro para esta função da classe Context do módulo Cairo:

public void set_dash (double[] dashes, int num_dashes, double offset);

A solução:

ctx.set_dash (new double[] {SIZE / 4.0, SIZE / 4.0}, 2, 0);

E a forma a qual eu estava (mal ;) ) acostumado em Python:

ctx.set_dash([SIZE/4.0, SIZE/4.0], 0)

Coloquei como exemplo na wiki do Vala, e o arquivo pode ser baixado aqui: cairo-demo.vala.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.