camelot-discuss
[Top][All Lists]
Advanced

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

Re: [Camelot-discuss] Bindings librsvg


From: Sven Luther
Subject: Re: [Camelot-discuss] Bindings librsvg
Date: Thu, 13 Feb 2003 17:25:31 +0100
User-agent: Mutt/1.5.3i

On Thu, Feb 13, 2003 at 04:57:54PM +0100, Olivier Andrieu wrote:
>  Sven Luther [Thursday 13 February 2003] :
>  >
>  > On Thu, Feb 13, 2003 at 04:10:52PM +0100, Luc Mazardo wrote:
>  > > Je suis d'accord pour utiliser camlzip, mais je pense qu'il
>  > > faudrait arriver a l'utiliser dans le meme cadre que la lib
>  > > suivante:
>  > > 
>  > > http://zziplib.sourceforge.net/zzip-index.html
>  > 
>  > Oui, et il parlent meme du probleme de brevet, apparement on peut
>  > utiliser une partie de la compression zip, et c'est ce qui est fait au
>  > niveau de zzip et aussi de libz, que camlzip utilise.
> 
> Ah oui ? j'ai pas vu où ils en parlent.

3eme phrase :

The implementation is based only on the (free) subset of compression
with the  zlib algorithm which is actually used by the zip/unzip tools.

>  > > En effet, cette derniere utilise des functions peu documentées de
>  > > la SDL les SDL_rwops fonctions. Ces fonctions permettent de
>  > > brancher un module de lecture de fichiers de ressources sur les
>  > > operations de lecture/ecriture de la SDL.
> 
> Oui. En gros, un struct SDL_RWops est un object avec des méthodes
> seek, read, write et close. L'API SDL comporte un SDL_RWFromFile, un
> SDL_RWFromFP et un SDL_RWFromMem qui prennent respectivement, un nom
> de fichier un FILE*, un void* en argument. 

C'est donc un wrapper par dessus les operations courrantes d'acces de
fichier ou memoire.

BTW, est-ce que cela inclus aussi de pouvoir mmaper un fichier ? 

Et est-ce que de toute facon, mmaper un fichier apporte un plus par
rapport a l'ouvrir et le lire de facon normale ?

>  > > C'est peut etre un peu off topic mais olivier je pense que l'on
>  > > devrait ajouter les bindings de ce genre et y plugger camlzip ?
> 
> On pourrait implémenter l'équivalent de SDL_RWFromFP et SDL_RWFromMem,
> qui utiliseraient des in_channel et des string. C'est pas trivial, il
> faut aller se battre avec le GC et les channels caml.  Mais on va sans
> doute en avoir besoin car actuellement, les fonctions de Sdlloader
> (SDL_image) ne prennent en argument qu'un nom de fichier; or avec une
> archive (zip ou autre) on va se retrouver avec un buffer en mémoire et
> il faudra bien le passer à SDL_image. En revanche, l'API de camlzip ne
> permet pas ça directement, donc là pareil, il faudrait aller jeter un
> coup d'?il au source de camlzip.

Oui, c'est ce qu'il m'avais sembler, bien que la partie de camlzip qui
est dans zlib.ml permet peut-etre de faire des choses similaires, je ne
sais pas, c'est pas une API particulierement limpide. Personellement,
pour aller lire les fichiers de donnees de baldur's gate, j'avais
ajouter un binding pour : uncompress de la zlib, mais cette fonction
n'est pas directement accessible, mais j'avais l'impression que l'on
pouvait quand meme l'utiliser avec zlib.ml.

> En résumé:
> SDL_RW_FromFile -> c'est la seule API dispo actuellement pour ocamlsdl
> SDL_RWFromMem   -> c'est nécessaire, je vais le faire (pas trés dur).

C'est suffisant pour l'instant, car on peut toujours lire le fichier
compresse, et le stocker en memoire. cela utilise plus de memoire
cependant. Noter cependant que l'API de librsvg permet d'ecrire les
donnes dans le handle par bloc, et pas forcement en une seule fois, ce
qui est utile je pense si on lit sur des sockets, ou si on a un tres
gros fichier.

BTW, pourquoi as-tu appeler le type des handle Rsvg.t et non Rsvg.handle ?

Amicalement,

Sven Luther




reply via email to

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