petit probleme avec Devil
Bonjour, je réalise un petit projet en opengl et avec devil, qui a pour une partie le but d’afficher une carte (de France par exemple), et j’aimerais lorsque l’on click sur un point de la carte que le groupe de pixels, se trouvant au niveau du point, change de couleurs, afin de le visualiser.
La carte est appliquée à l’aide d’une texture.
Et c’est là que j’ai besoin de votre aide, pour modifier la texture.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
/// pour dire sur quelle image on travaille
ilBindImage(ImgId2);
ILubyte *data;
data=(ILubyte *)malloc(640*472*3*sizeof(ILubyte));
///////Récupérer les données de image
ilCopyPixels(0, 0, 0, 640, 472, 1, IL_RGB, IL_UNSIGNED_BYTE, data);
for (long i=0;i<6;i++)
{//printf("%i\n",data[i]); controle du changement
data[i]=0;}
///Spécifier les données d'une image
ilSetPixels(0,0,0,640,472,1,IL_RGB,IL_UNSIGNED_BYTE,data);
// ilTexImage(640, 472, 0, 3, IL_RGB,IL_UNSIGNED_BYTE,data);
//Génère et lie une texture à partir de l'image courante et renvoie un nom de texture utilisable par OpenGL.
TexID2 = ilutGLBindTexImage(); |
je lit les données de l'image que je met dans data
je modifie data
je specifie les nouvelles donnée
je genere la texture
et rien ne se passe, ou meme lorsque je fait parcourir la boucle for afin de modifier toute l'image, là elle devient partiellement noire.
je n'arrive pas à voir si j'ai oublié quelque chose , ou tout simplement si le code ne va pas.
je vous remercie d'avance de m'aider si vous avez une idée