Bonjour,
je me demandais si il y avais une librairie connue qui permetterait de mettre plein de fichiers dans un seul, a la maniere des .mpq de blizzard.
Et aussi si il y aurait moyen grace a cette libraire de faire un img_load a partir d'un endroit dans ce fichier
ou bien simplement une fonction en SDL (SDL_Image?) qui permet de loader a partir d'un char*.
fait toi ton propre format
tu te fais, par exemple, un petit projet de "compilation" si j'ose dire, auquel tu donnes toutes tes images a charger, qui les charge, et les stocke, par exemple, dans un tableau de SDL_Surface* associé a leur nom,
puis tu fais une fonction de sauvegarde générale, qui te genere ton .mpq par exemple, en sauvant les SDL_Surface*, dans l'ordre de données que tu souhaites, et tu te refais une fonction de lecture associée qui refait la meme chose a l'envers :
Ainsi, dans ton projet final, tu te servira de cette fonction de chargement personnalisée, a laquelle tu donneras ton fichier MPQ, et qui te reconstruira en RAM tout ton tableau de SDL_Surface*
Un SDL_Surface, est un tableau de nombres qui décrit ta surface. Ce que Fvirtmann te propose, c'est d'enregistrer ce tableau de nombres dans un fichier afin de pouvoir le relire par la suite.
Tu peux aussi imaginer écrire toutes tes SDL_Surface dans un seul fichier en les séparant par des caractères spéciaux.
Comme ça on ne pourra pas ouvrir les images depuis l'extérieur et en plus le chargement pourrait être plus rapide (peut-être) que en si tu dois convertir de .bmp vers SDL_Surface.
C'est pas une bonne idée de stocker la images sous le format de la SDL car d'une part cela fait dépendre ton application d'une structure interne de la SDL et d'autre part tu ne compresses pas l'image. Le mieux reste quand même de charger des images PNG ou JPEG.
Ensuite si tu veux charger tout depuis un seul fichier, tu peux tout stocker dans un ZIP et utiliser zlib pour tout dézipper en mémoire et ensuite charger depuis là.
C'est qu'une idée parmi d'autres.
Mettre tout les fichier en un
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html