Bonjour, je souhaiterais copié les éléments d'une SDL_Surface dans une autre, dans le cadre d'un réalloc.
Voici comment j'ai fait le problème c'est que je trouve ça super lourd :
Ma struct Sprites :
La déclaration de mon tableau de Sprites dans le Sprites.h :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 typedef struct { SDL_Rect Ref; SDL_Surface *Gfx; SDL_Surface *Mask; }Sprites;
Ma fonction Sprites_Create :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Sprites* sprites;
Ma fonction Réalloc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 inline Sprites* Sprites_Create() { Sprites* S=(Sprites*)malloc(sizeof*S*NB_SPR_MAX); return S; }
y a t-il une solution alternative et plus rapide que de faire ça ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 inline Sprites* Sprites_Realloc() { u32 i; Sprites* S=(Sprites*)malloc(sizeof*S*(NbSprMax*=2)); /*NbSprMax est déclarer dans mon fichier Sprites.c*/ for(i=0;i<NbSpr;i++) { S[i].Ref.x=sprites[i].Ref.x; S[i].Ref.y=sprites[i].Ref.y; S[i].Ref.w=sprites[i].Ref.w; S[i].Ref.h=sprites[i].Ref.h; S[i].Gfx->flags=sprites[i].Gfx->flags; S[i].Gfx->format=sprites[i].Gfx->format; S[i].Gfx->w=sprites[i].Gfx->w; S[i].Gfx->h=sprites[i].Gfx->h; S[i].Gfx->pitch=sprites[i].Gfx->pitch; S[i].Gfx->pixels=sprites[i].Gfx->pixels; S[i].Gfx->clip_rect=sprites[i].Gfx->clip_rect; S[i].Gfx->refcount=sprites[i].Gfx->refcount; S[i].Mask->flags=sprites[i].Mask->flags; S[i].Mask->format=sprites[i].Mask->format; S[i].Mask->w=sprites[i].Mask->w; S[i].Mask->h=sprites[i].Mask->h; S[i].Mask->pitch=sprites[i].Mask->pitch; S[i].Mask->pixels=sprites[i].Mask->pixels; S[i].Mask->clip_rect=sprites[i].Mask->clip_rect; S[i].Mask->refcount=sprites[i].Mask->refcount; } return S; }
Merci par avance pour vos réponse.
Partager