camelot-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Camelot-discuss] Bindings librsvg


From: Olivier Andrieu
Subject: Re: [Camelot-discuss] Bindings librsvg
Date: Tue, 11 Feb 2003 14:03:26 +0100

 Sven Luther [Tuesday 11 February 2003] :
 >
 > On Mon, Feb 10, 2003 at 08:51:33PM +0100, Olivier Andrieu wrote:
 > Content-Description: message body and .signature
 > > Salut à tous,
 > > 
 > > voilà j'ai modifié les bindings de sven pour librsvg, ça marche avec
 > > ocamlsdl maintenant (il faut la version CVS). La gestion mémoire (GC
 > 
 > Mmm, pourquoi faut-il la version CVS ? J'imagine qu'il faut que
 > j'installe la version CVS egalement, non ? ou du moins les stublibs ?

il faut la version CVS à cause des histoires de gestion mémoire :
comme la surface SDL et le pixbuf partagent le même pixel buffer, il
faut que le pixbuf reste en vie tant qu'on utilise la surface SDL et
il faut détruire le pixbuf quand la surface n'est plus utilisée. J'ai
rajouté dans la version CVS la possibilité d'appeler une fonction C
quand la surface SDL est finalisée.

 > BTW, comment compile-t-on la version CVS ?
en tapant `make' : ça devrait refaire le configure.

 > Si je supprime cette ligne, 
ben non faut pas

 > > caml et reference counting des GdkPixbuf) a l'air OK.
 > > 
 > > Avec la version installé sur mon système (2.0.1), ça marche pas trés
 > > bien (les dessins sont tronqués), j'essaierai avec une version plus
 > > récente (2.2.x).
 > 
 > Mmm, pourquoi as tu summprimer les appels a set_dpi ? est-ce qu'il est
 > possible que ceci soit la cause des problemes ?

Il ne sont pas dans la version 2.0.x de librsvg. 

 > De plus, j'avais pas penser binder les rsvg_pixbuf_from_file, vu qu'on
 > peut tres bien les faires nous meme en ocaml, apres tout il ne s'agit
 > que de d'appels aux autres fonctions avec des size_callbacks
 > specifiques.

tout à fait. En fait j'ai commencé par ceux-là car ils sont plus faciles à
interfacer mais finalement j'ai fait la version générale avec le
callback. Donc oui, on peut les remplacer par une version caml.
En fait on peut presque laisser une unique fonction :

,----
| val render : string -> ?gz:bool -> ?dpi:float -> machin_bidule ->
| Sdlvideo.surface
| 
| type machin_didule = 
|   | DEFAULT
|   | AT_SIZE of int * int
|   | AT_ZOOM of float * float
|   | AT_MAX_SIZE of int * int
|   | AT_ZOOM_WITH_MAX of float * float * int * int
|   | CALLBACK of (int -> int -> int * int)
`----
(je sais pas trop comment appeler machinbidule)

 > Sinon, moi j'ai 2.2.3 installe, mais a comme j'ai pas reussi a
 > compiler la version CVS de ocamlsdl, je peut pas en dire plus.

je l'ai finalement installé, ça marche bien (les sprites ne sont plus
coupés).

Pour Luc : j'ai utilisé garnome <http://www.gnome.org/~jdub/garnome/>
pour avoir la nouvelle version de librsvg. Ça télécharge et installe
tout seul les dépendances pour compiler librsvg (c'est assez gros
puisqu'il y a gobj/glib/gtk+, libxml2, ...)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]