CHARGEMENT DES TEXTURES EN OPENGL

Messages postés
231
Date d'inscription
dimanche 14 septembre 2003
Statut
Membre
Dernière intervention
20 août 2014
- - Dernière réponse : shenron666
Messages postés
231
Date d'inscription
dimanche 14 septembre 2003
Statut
Membre
Dernière intervention
20 août 2014
- 25 janv. 2010 à 22:43
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51139-chargement-des-textures-en-opengl

Afficher la suite 
shenron666
Messages postés
231
Date d'inscription
dimanche 14 septembre 2003
Statut
Membre
Dernière intervention
20 août 2014
-
une application qui plante ? 0/10
tester la présence d'un fichier c'est pas possible ?
l'échec de l'ouverture ?
ou tout simplement savoir qu'une chaine est vide ?
je ne vais pas noter pour pas paraitre méchant ^^

concernant la taille maximale de texture, un petit "glGetIntegeri" avec pname=GL_MAX_TEXTURE_SIZE et tu connaitras la taille maximale de texture que tu peux générer
par contre ça ne devrai pas planter, tester l'échec de création de la texture c'est aussi possible
Jackyzgood
Messages postés
26
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
6 mars 2010
-
L'application fonctionne très bien, en l'exécutant en mode console vous pourrez voir ou se situe le problème. J'ai placé pas mal de printf pour connaitre l'avancement des différentes étapes.

En temps normal, la console doit vous renvoyer le message suivant :

nombre de textures : 3
rouge.jpeg texture chargée
bleu.jpeg texture chargée
vert.jpeg texture chargée
largeur totale arrondie : 256.000000
hauteur max : 64.000000 resultat : 64.000000
hauteur totale arrondie : 64.000000

Vous avez donc le nombre de lignes dans le fichier, les noms des images et si le chargement s'est bien déroulé, et la taille de l'image d'accueil, qui ne pose pas de problème tant qu'elle ne dépasse pas 8192 x 8192

***************************************************************

En cas de problème la console vous renvoie la chose suivante :

nombre de textures : 4
rouge.jpeg texture chargée
bleu.jpeg texture chargée
vert.jpeg texture chargée
problème de chargement de texture
Erreur de segmentation

On voit très bien que la fonction va chercher à lire 4 textures, or il n'y a que 3 noms dans le fichier, la dernière image ne pouvant être chargé (car aucune image ne porte ce nom là) elle produit une erreur de segmentation et le programme s'arrête.

Je vous rappel ceci :

-La seule contrainte sur le fichier .txt est qu'il ne doit pas contenir de ligne vierge, même pas à la fin du fichier, car sinon il la lira et ne trouvera pas de fichier correspondant => plantage.
Jackyzgood
Messages postés
26
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
6 mars 2010
-
Si jamais les messages d'erreurs affichés ne sont pas ceux que j'ai cité je veux bien un copie.
shenron666
Messages postés
231
Date d'inscription
dimanche 14 septembre 2003
Statut
Membre
Dernière intervention
20 août 2014
-
je ne dois pas bien parler français alors je me répète autrement : une application NE DOIT PAS PLANTER
il faut GERER les erreurs, pas laisser des erreurs de segmentation en disant c'est normal il y a une contrainte à respecter
Jackyzgood
Messages postés
26
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
6 mars 2010
-
Si je te suis alors ce n'est pas normal que ce code plante :

int a = 0;
images[i] = IMG_Load( a );

??

La fonction que j'ai codé est un outil, ce n'est de loin pas une application finale, et comme tout outils il y a une notice d'utilisation. Ne pas mettre de tournevis dans une prise électrique, ne pas mettre de chat dans le micro onde...

Je ne suis pas un professionnel en programmation, je le reconnais (c'est d'ailleurs pour ça que ce code se trouve en section débutant), mais je vais faire en sorte que cet outil soit le plus pratique possible.