[RESOLU] SDL-Wrapper une structure

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

[RESOLU] SDL-Wrapper une structure

Message par Progi1984 »

Voilà, j'ai un peu de mal à wrapper cette structure vers le purebasic :

Doc : http://fearyourself.developpez.com/tuto ... rwops/#LII

Code : Tout sélectionner

typedef struct SDL_RWops {
         int (*seek)(struct SDL_RWops *context, int offset, int whence);
         int (*read)(struct SDL_RWops *context, void *ptr, int size, int maxnum);
         int (*write)(struct SDL_RWops *context, const void *ptr, int size, int num);
         int (*close)(struct SDL_RWops *context);
 
         Uint32 type;
         union {
             struct {
                 int autoclose;
                 FILE *fp;
             } stdio;
             struct {
                 Uint8 *base;
                 Uint8 *here;
                 Uint8 *stop;
             } mem;
             struct {
                 void *data1;
             } unknown;
         } hidden;
 } SDL_RWops;
Dernière modification par Progi1984 le mer. 09/mai/2007 16:07, modifié 1 fois.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Je ne connais pratiquement rien en C, mais en ragardant la structure je propose ça, sachant que c'est peut-être faut :roll:

Code : Tout sélectionner

 Structure SDL_RWops
    *seek
    *Read
    *write
    *close
 
    StructureUnion
       autoclose.l
       *base  ; Uint8
       *data1 ; sans type
    EnstructureUnion
    StructureUnion 
       *fp    ; sur un file
       *here  ;Uint8
    EnstructureUnion
    *stop  ; Uint8
EndStructure
Ca serait bien qu'un codeurs nous donne la valeur sizeof() de SDL_RWops en C pour la comparer en PB
erix14
Messages : 480
Inscription : sam. 27/mars/2004 16:44
Contact :

Message par erix14 »

Je verrai plutôt un truc comme ça :

Code : Tout sélectionner

Prototype PSeek(*This, offset, whence)
Prototype PRead(*This, *ptr, Size, maxnum)
Prototype PWrite(*This, *ptr, Size, Num)
Prototype PClose(*This)

Structure FILE
	_ptr.s
	_cnt.l
	_base.s
	_flag.l
	_file.l
	_charbuf.l
	_bufsiz.l
	_tmpfname.s
EndStructure
Structure stdio
	autoclose.l
	*fp.FILE
EndStructure
Structure mem
	*base.c
	*here.c
	*stop.c
EndStructure
Structure unknown
	*data1.l
EndStructure

Structure SDL_RWops
	Seek.PSeek
	Read.PRead
	Write.PWrite
	Close.PClose
	StructureUnion
		hidden1.stdio
		hidden2.mem
		hidden3.unknown
	EndStructureUnion
EndStructure 
minirop
Messages : 321
Inscription : mer. 02/août/2006 21:06

Message par minirop »

Denis a écrit :sachant que c'est peut-être faut :roll:
çà aussi c'est faux :p

voilà mon essai :

Code : Tout sélectionner

Structure SDL_RWops
	*seek
	*read
	*write
	*close
	
	type.l ; technique "&255"
	StructureUnion hidden
		Structure stdio
			autoclose.l
			fp.l
		EndStructure
		Structure stdio
			*base
			*here
			*stop
		EndStructure
		Structure unknown
			*data
		EndStructure
	EndStructureUnion
EndStructure
faut peut être déclarer read,seek,... avec des prototypes mais comme chacun à besoin de l'autre pour être déclaré, çà n'a pas de sens
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Salut Erix14,
tu as peut-être raison, car il est dit que l'on crée une structure qui semble être différente en fonction de la fonction appelée. C'est ce que je ne comprenais pas bien dans sur le site donné en lien.

D'ailleurs, si Progi1984 arrive à faire marcher le truc, ça semble intéressant comme gestion des ressources.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Pour informations, la structure d'Erix14 fonctionne nickel !
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Donnes-nous une exemple qui marche :D
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Dés que j'ai fini mon wrapper pour SDL, il vous sera fini un exemple !
Répondre