chargement des fichier e3d
Publié : 31 juil. 2008, 19:09
en étudiant le code du client je suis tombé sur ça dans le fichier io/e3d_io.c :
a la ligne 269 :
je pense que cela devrait etre :
la taille des indicies etant alors codé sur un short
comme d'après des constatations rapides et un minimum de logique, je pense qu'actuellement le client n'utilise pas de fichiers e3d avec des listes d'indices sur 16 bits je doute que le probleme soit visible mais bon ...
Code : Tout sélectionner
if (indicies_size == 2)
{
short_list = (unsigned short*)cur_object->indicies;
for (i = 0; i < cur_object->index_no; i++)
short_list[i] = SDL_SwapLE32(index_buffer[i]);
}
else
{
if (indicies_size == 4)
{
int_list = (unsigned int*)cur_object->indicies;
for (i = 0; i < cur_object->index_no; i++)
int_list[i] = SDL_SwapLE32(index_buffer[i]);
}
else
{
LOG_ERROR("This should never happen!");
free_e3d_pointer(cur_object);
#ifdef ZLIB
gzclose(file);
#else //ZLIB
fclose(file);
#endif //ZLIB
return NULL;
}
}
Code : Tout sélectionner
short_list[i] = SDL_SwapLE32(index_buffer[i]);
Code : Tout sélectionner
short_list[i] = SDL_SwapLE16(index_buffer[i]);
comme d'après des constatations rapides et un minimum de logique, je pense qu'actuellement le client n'utilise pas de fichiers e3d avec des listes d'indices sur 16 bits je doute que le probleme soit visible mais bon ...