:: PlayerAdvance.org ::  

Précédent   :: PlayerAdvance.org :: > :: Forums Hébergés :: > OldSchool Library > Aide au développement

Aide au développement Aide sur l'utilisation d'OSLib

Publicité

Réponse
 
Outils de la discussion Modes d'affichage
Vieux 02/04/2008, 16h05   #1
daaa57150
Membre confirmé
 
Date d'inscription: 16/05/2007
Messages: 411
Voir l'identifiant PSN
Par défaut construction OSL_IMAGE et OSL_SOUND

Brunni, j'espère que tu passeras par ici j'ai besoin de ton aide:

j'aimerai construire des OSL_IMAGE et OSL_SOUND à partir de données binaires (que j'aurais préalablement extraites d'une archive style rar ou iso avec des fread).
comment faire? évidamment je n'ai pas envie de passer par un fichier temporaire ca va de soi.

merci à qui pourra m'aider...
__________________
Essayez mon dernier jeu sur iPhone:

daaa57150 est déconnecté   Réponse avec citation

Publicité

Vieux 02/04/2008, 17h40   #2
Yodajr
Administrateur
 
Date d'inscription: 09/11/2005
Messages: 3 750
Par défaut

J'ai surement pas bien compris, mais les virtualfiles d'oslib ne t'aident pas ?
Yodajr est déconnecté   Réponse avec citation
Vieux 02/04/2008, 20h08   #3
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 963
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

nan, je pense qu'il veut "déarchiver" à la volée et stocker directement le contenu dans les données de l'OSL_IMAGE
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Vieux 02/04/2008, 20h26   #4
Yodajr
Administrateur
 
Date d'inscription: 09/11/2005
Messages: 3 750
Par défaut

Stocker où ? car "déarchiver" à la volée, je le fait dans manga2psp
Yodajr est déconnecté   Réponse avec citation
Vieux 02/04/2008, 21h40   #5
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 963
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

bah il veut déarchiver direct en mémoire sans passer par un fichier
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Vieux 02/04/2008, 21h59   #6
Yodajr
Administrateur
 
Date d'inscription: 09/11/2005
Messages: 3 750
Par défaut

Mais qu'appelle tu "passer par un fichier" ?

Désolé daaa57150 de pourrir ton topic, mais j'aime pas ne pas comprendre
Yodajr est déconnecté   Réponse avec citation
Vieux 02/04/2008, 22h43   #7
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 963
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

bon c'est pas exactement ce qu'il veut faire mais pour l'exemple :
t'as un zip avec un fichier toto.png
il veut extraire le toto.png direct dans un OSL_IMAGE et pas extraire le fichier sur la MS et ensuite charger le fichier dans un OSL_IMAGE
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Vieux 02/04/2008, 22h54   #8
Yodajr
Administrateur
 
Date d'inscription: 09/11/2005
Messages: 3 750
Par défaut

Bon ben dans ce cas précis (qui n'est peut être pas ce dont parle daaa57150) c'est possible avec les virtualfiles, c'est ce que je fait dans manga2psp, je lit direct dans le zip, pas de décompression sur la MS dans l'opération, que en ram, et que sur le fichier voulu
Yodajr est déconnecté   Réponse avec citation
Vieux 07/04/2008, 11h49   #9
daaa57150
Membre confirmé
 
Date d'inscription: 16/05/2007
Messages: 411
Voir l'identifiant PSN
Par défaut

Citation:
Envoyé par Yodajr Voir le message
Mais qu'appelle tu "passer par un fichier" ?

Désolé daaa57150 de pourrir ton topic, mais j'aime pas ne pas comprendre
Non non tu pourris rien du tout, ca a bien fait avancé le topic durant mon absence

Citation:
Envoyé par Dr.Vince Voir le message
bon c'est pas exactement ce qu'il veut faire mais pour l'exemple :
t'as un zip avec un fichier toto.png
il veut extraire le toto.png direct dans un OSL_IMAGE et pas extraire le fichier sur la MS et ensuite charger le fichier dans un OSL_IMAGE
C'est exactement ca (avec un fichier d'un autre format que zip mais le principe est le même)

Citation:
Envoyé par Yodajr Voir le message
Bon ben dans ce cas précis (qui n'est peut être pas ce dont parle daaa57150) c'est possible avec les virtualfiles, c'est ce que je fait dans manga2psp, je lit direct dans le zip, pas de décompression sur la MS dans l'opération, que en ram, et que sur le fichier voulu
Dans ce cas je vais télécharger de ce pas manga2psp en espérant y trouver les codes sources.

merci a vous 2
__________________
Essayez mon dernier jeu sur iPhone:

daaa57150 est déconnecté   Réponse avec citation
Vieux 07/04/2008, 20h45   #10
Yodajr
Administrateur
 
Date d'inscription: 09/11/2005
Messages: 3 750
Par défaut

Citation:
Envoyé par daaa57150 Voir le message
Dans ce cas je vais télécharger de ce pas manga2psp en espérant y trouver les codes sources.
Tout en bas du premier post, comme je fait d'habitude quand je finit un projet
J'ai tout pompé dans les sources de MasterBoy de Brunni, peut être qu'elles te seront plus lisibles que les miennes
Mais bon, si t'as des questions, hésite pas.
Yodajr est déconnecté   Réponse avec citation
Vieux 08/04/2008, 09h16   #11
daaa57150
Membre confirmé
 
Date d'inscription: 16/05/2007
Messages: 411
Voir l'identifiant PSN
Par défaut

Citation:
Envoyé par Yodajr Voir le message
Tout en bas du premier post, comme je fait d'habitude quand je finit un projet
J'ai tout pompé dans les sources de MasterBoy de Brunni, peut être qu'elles te seront plus lisibles que les miennes
Mais bon, si t'as des questions, hésite pas.
Merci! J'ai parcouru tes sources vite fait, c'est super lisible, beau travail. Je pense pas que j'aurais de questions on verra
__________________
Essayez mon dernier jeu sur iPhone:

daaa57150 est déconnecté   Réponse avec citation
Vieux 08/04/2008, 10h06   #12
Dr.Vince
Administrateur
 
Date d'inscription: 10/11/2005
Messages: 4 963
Voir les codes amis Nintendo DS Voir les codes amis Wii
Par défaut

si tu pouvais poster le bout de code qui fait ce que tu voulais, histoire que le prochain qui se pose la question n'ai pas à chercher ce serait cool
__________________
Projets Abandonnés: [Arcomage Advance] [Puzznic] [PA Card Games] [Blob Runner]
Projet en cours: [Ne plus abandonner de projet...]
Dr.Vince est déconnecté   Réponse avec citation
Vieux 08/04/2008, 14h16   #13
daaa57150
Membre confirmé
 
Date d'inscription: 16/05/2007
Messages: 411
Voir l'identifiant PSN
Par défaut

Citation:
Envoyé par Dr.Vince Voir le message
si tu pouvais poster le bout de code qui fait ce que tu voulais, histoire que le prochain qui se pose la question n'ai pas à chercher ce serait cool
C'était bien mon intention, il me fallait juste le temps de tester!
Donc voilà, moi je lis dans une archive genre .iso où je peux connaître la liste des fichiers présents, leur taille et leur offset dans l'archive:
Code PHP:
//retourne NULL en cas d'erreur
//filename: nom du fichier dans l'archive
//location et pixelformat: comme la fonction oslLoadImageFilePNG(...)
OSL_IMAGE *MyArchiveClass::readPngFile(string filenameint locationint pixelFormat)
{
    
//archiveName est une string contenant l'emplacement de l'archive, 
    //c'est initialisé dans le constructeur de MyArchiveClass
    //ouverture de l'archive
    
FILE *archive=fopen (archiveName.c_str(), "rb");
    if(
archive==NULL)
        return 
NULL;
    
    
//verifier ici que le fichier existe bien dans l'archive, sinon return NULL;
    
    //récupération de l'offset du fichier dans l'archive :
    
unsigned long offset=.... 
    
//on se positionne au début du fichier :
    
fseek(archiveoffsetSEEK_SET); 
    
    
//récupération de la taille du fichier dans l'archive:
    
unsigned long size=....  
    
//buffer temporaire qui va contenir les données du fichier:
    
char *data=(char*)malloc(size);
    
//on rempli le buffer :
    
fread(data1sizearchive); 
    
    
//on ferme l'archive :
    
fclose(archive);

    
//ecriture dans le fichier temporaire en RAM :
    
oslSetTempFileData(data,  size, &VF_MEMORY); 

    
//lecture de l'image :
    
OSL_IMAGE *res=oslLoadImageFilePNG(oslGetTempFileName(), locationpixelFormat); 

    
//on libère le buffer temporaire
    
free(data);
    
    
//on renvoit notre image :)
    
return res;

Pour un OSL_SOUND je suppose que c'est pareil, j'ai pas testé encore.

Merci Yodajr pour tes sources
et merci Brunni d'avoir pensé à ca!
__________________
Essayez mon dernier jeu sur iPhone:


Dernière modification par daaa57150 ; 09/04/2008 à 15h37.
daaa57150 est déconnecté   Réponse avec citation
Vieux 09/04/2008, 15h33   #14
daaa57150
Membre confirmé
 
Date d'inscription: 16/05/2007
Messages: 411
Voir l'identifiant PSN
Par défaut

Bon pour les OSL_SOUND ca marche aussi pareil.
Par contre j'ai changé un bout de code parce que ca faisait déborder la pile pour les fichiers un peu trop gros (je suppose), donc je suis passé d'une allocation statique à une allocation dynamique, c'est corrigé dans le code précédent.
Tout fonctionne
__________________
Essayez mon dernier jeu sur iPhone:

daaa57150 est déconnecté   Réponse avec citation
Réponse

Liens sociaux

Publicité



Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 
Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h56.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Tous droits réservés.
Version française #16 par l'association vBulletin francophone
Design par Ass-Itch, DJP et Dr.Vince