[C] Problèmes de surfaces dans des structures.
Bonjour !
Je rencontre un problème quand je veux "encapsuler" mes surfaces (comme la surface de la fenêtre) dans des structures.
J'ai deux structures :
Code:
1 2 3 4 5 6 7 8 9 10
| typedef struct
{
SDL_Surface *Perso, *Ennemi;
} Exemple2;
typedef struct
{
SDL_Surface *Ecran;
Exemple2 *Ex2;
} Exemple1; |
Le code complet (exemple) :
Code:
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 35 36 37
| #include <SDL/SDL.h>
typedef struct
{
SDL_Surface *Perso, *Ennemi;
} Exemple2;
typedef struct
{
SDL_Surface *Ecran;
Exemple2 *Ex2;
} Exemple1;
void Exemple1_InitialiserFenetre(Exemple1 *this)
{
this->Ecran = SDL_SetVideoMode(640,480,32, SDL_HWSURFACE);
}
void Exemple2_InitialiserChamps(Exemple1 *this)
{
this->Ex2->Perso = SDL_CreateRGBSurface(SDL_HWSURFACE, 25, 25, 32, 0,0,0,0);
this->Ex2->Ennemi = SDL_CreateRGBSurface(SDL_HWSURFACE, 25, 25, 32, 0,0,0,0);
}
int main(int argc, char *argv[])
{
SDL_Init(SDL_INIT_VIDEO);
Exemple1 *p = NULL;
Exemple1_InitialiserFenetre(p);
Exemple2_InitialiserChamps(p);
SDL_Quit();
return 0;
} |
Ce code ne marche pas.
Je sais qu'il faut modifier un pointeur sur SDL_Surface donc il me faut un pointeur sur le pointeur de la SDL_Surface. Mais quand c'est imbriqué dans une structure (voir plusieurs), j'en ai aucune idée.
J'ai déjà essayé beaucoup de choses, mais je vois pas. :/
Merci pour votre aide.
Kr00pS
PS: Obligé de coder en C, en C++ j'aurais pu utiliser une référence, ce qui aurait simplifier la chose mais bon.