Bonjour,
Pour les programmes Windows avec des lib comme SDL et FMOD, j'utilise un fichier de ressource .rc (dans le but d'inclure un maximum de fichiers dans l'exécutable).
J'ai réalisé une fonction (voir code ci-dessous) pour charger une surface SDL à partir d'une ressource fichier image.
Je voudrais pouvoir le faire aussi pour les ressources audio.
Je cherche à faire une fonction qui me donne un pointeur de data à partir de la ressource afin par exemple de l'utiliser dans la fonction FMOD :
FSOUND_STREAM *FSOUND_Stream_Open(pData, FSOUND_LOADMEMORY, 0, 0);
Je n'ai pas réussi et je recherche des indications, merci.
Voici la fonction pour SDL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 SDL_Surface *Rsc2surf(LPCTSTR hID) // retourne une surface à partir d'une ressource { SDL_Surface *surface; SDL_Surface *temp; HMODULE hExe; HRSRC hResInfo; DWORD taille = 0; HGLOBAL hMem; void *pData; SDL_RWops *rw; hExe = GetModuleHandle(NULL); hResInfo = FindResource(hExe, hID, "RT_RCDATA"); taille = SizeofResource(hExe, hResInfo); hMem = LoadResource(hExe, hResInfo); pData = LockResource(hMem); rw = SDL_RWFromMem(pData, taille); temp = SDL_LoadBMP_RW(rw,0); SDL_FreeRW(rw); surface = SDL_DisplayFormat(temp); SDL_FreeSurface(temp); return surface; }
Partager