/* [DESTRUCTOR] Destruction de la surface =========================================================*/ xSprite::~xSprite(){ SDL_DestroyTexture( _texture ); _manager = NULL; } /* [CONSTRUCTOR] Construction de la surface vide =========================================================*/ xSprite::xSprite(xManager *m){ _manager = m; _texture = NULL; } /* [CONSTRUCTOR] Construction de la surface avec couleur =========================================================*/ xSprite::xSprite(xManager *m, const int rgb[]){ _manager = m; _texture = NULL; cout << "a: [" << (sizeof(rgb)/sizeof(*rgb)) << "]" << endl; SDL_Surface *surf = SDL_CreateRGBSurface(0, 0, 0, 32, 0, 0, 0, rgb[3]); // On recupere la couleur Uint32 color = SDL_MapRGBA( surf->format, rgb[0], rgb[1], rgb[2], rgb[3]); // On cree la texture a partir de la surface _texture = SDL_CreateTextureFromSurface(_manager->renderer(), surf); // On libere la surface inutile maintenant SDL_FreeSurface( surf ); surf = NULL; } /* [CONSTRUCTOR] Construction de la surface avec image =========================================================*/ xSprite::xSprite(xManager *m, const char *url){ _manager = m; _texture = NULL; /* (1) On cree la texture directement */ _texture = IMG_LoadTexture(_manager->renderer(), url); /* (1bis) On cree la surface puis on la copie dans la texture */ // SDL_Surface *surf = IMG_Load( url ); // _texture = SDL_CreateTextureFromSurface(_manager->renderer(), surf); // SDL_FreeSurface(surf); // surf = NULL; // Gestion erreur if( _texture == NULL ) return; } /* [DIMENSIONS] Definition des dimensions par defaut =========================================================*/ void xSprite::dimensions(){ cout <<"A"<push(_texture, &_src, &_dst); } /* [PULL] Retire une sprite du rendu =========================================================*/ void xSprite::pull(){ _manager->pull( _texture ); } /* [UPDATE] Mise a jour du rendu =========================================================*/ void xSprite::update(){ _manager->update(); } /* [TEXTURE] Retourne la texture =========================================================*/ SDL_Texture *xSprite::texture(){ return _texture; } /* [MANAGER] Retourne le manager =========================================================*/ xManager *xSprite::manager(){ return _manager; }