Beh logicamente prima leggo la struttura values e poi tutto il resto.
Comunque non penso basterebbe fare così in quanto img è un puntatore!
codice:
GLuint *img;
//una volta che si conosce il numero delle texture..
img = new GLuint[values.n_textures_img];
//è scritto così perchè il codice si trova all'interno della classe e la struttura
values è presente per ogni oggetto
Si può fare lo stesso? Comunque è giusto salvarle così le immagini? Ora posto la funzione che uso per caricarle.
codice:
AUX_RGBImageRec *LoadBMP(char *filename){
FILE *file=NULL;
if(!filename){
return NULL;
}
file=fopen(filename,"r");
if(file){
fclose(file);
return auxDIBImageLoad(filename);
}
return NULL;
}
int LoadGLTextures(char *bmp, GLuint texture[], int id){
int status=FALSE;
AUX_RGBImageRec *textureImage[1];
memset(textureImage,0,sizeof(void *)*1);
if(textureImage[0]=LoadBMP(bmp)){
status=TRUE;
glGenTextures(3,&texture[id]);
glBindTexture(GL_TEXTURE_2D, texture[id]);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, 3, textureImage[0]->sizeX, textureImage[0]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, textureImage[0]->data);
}
if(textureImage[0]){
if(textureImage[0]->data){
free(textureImage[0]->data);
}
free(textureImage[0]);
}
return status;
}
La funzione che viene richiamata è LoadGLTextures con parametri il nome del file, l'array img e la locazione in cui salvarci la texture.