Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre habitué
    Comment libérer une img en mémoire ( opengl /devIL )?
    Bonjour a tous ! Je suis entrain d'essayer de construire une petite classe me permettant de charger des textures. Le chargement ne pose pas( plus ... ) trop de probléme . Par contre je me pose une question : comment libérer de la mémoire une image chargé précédement ( quand je n'en ai plus besoin / quand je veut stocker une autre image a l'id de l'ancienne )

    ex:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ilGenImages(1,&Id[0]); 
    ilBindImage(Id[0]) ;
    Id[0] = ilutGLLoadImage(path);


    pour le chargement d'une image dans Id[0] Ensuite, admetons que je veuille libéré cette image ; j'ai pensé a faire un :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    iluDeleteImage(Id[0]);

    Mais, même aprés ca, Id[0] contient toujours l'image chargé précédement ! ... j'ai encore du loupé quchsoe moi ... et a priori je n'ai pas trouvé d'exemple parlant a ce sujet sur le web ...

  2. #2
    Membre habitué
    Tadam, mi revoili ^^

    Le probléme est a moitié résolu :

    j'ai ajouté une ligne :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    glDeleteTextures(1,&Id[0]);


    et hop le tour est joué :p

    Par contre , meme aprés cela, mon Id[0] a toujours sa valeur obtenue aprés chargement de l'image ( 1 dans mon cas car je ne charge qu'une image ) et non " 0 " comme je l'aimerai ....

    edit: bon, je peut ajouter
    Id[0] = 0 ;
    mais ca me parait un peu radical ....enfin si qqun a une facons plus propre a me proposer pour gerer cet aspect de libération de mémoire ( chose dans laquelle je ne suis pas du tout a l'aise .... ) je suis preneur !

###raw>template_hook.ano_emploi###