PDA

Voir la version complète : [µLibrary][Aide] UL_IMAGE et utilisation de pointeurs


JeeWee
27/06/2008, 22h48
Hello !

Je bute depuis quelques temps sur un petit souci avec UL_IMAGE....

Je cherche à charger des images dynamiquement pour éviter d'avoir à me retaper 200 fois la ligne de chargement. Problème, quand je crée un pointeur vers UL_IMAGE et que j'utilise ce pointeur dans une fonction qui charge l'image, aucune erreur de compil mais l'image n'apparait pas...

Quelqu'un aurait-il la solution à ce problème pour le moins embêtant ? ^^

Merci d'avance ! :)


edit: Je vais vous coller un bout de code, ça sera plus clair ;)



#include <ulib/ulib.h>
#include "test.h"

void chargerFond (UL_IMAGE* img);

int main()
{
UL_IMAGE *imgTest;

ulInit(UL_INIT_ALL);
ulInitGfx();
ulInitText();

ulSetMainLcd(0);


//Chargement de l'image via la fonction

chargerFond (imgTest);

while(1)
{
//Read keys
ulReadKeys(0);

//Start our drawing
ulStartDrawing2D();

//Draw

ulDrawImage(imgTest);

//End the drawing
ulEndDrawing();


//Wait the VBlank (synchronize at 60 fps)
ulSyncFrame();
}

//Program end - should never get there
return 0;
}

void chargerFond (UL_IMAGE* img)
{
img = ulLoadImageFilePNG((void*)test, (int)test_size, UL_IN_VRAM, UL_PF_PAL8);
}

JeeWee
28/06/2008, 18h32
Désolé pour le double post, mais pour le coup c'est une interrogation annexe, comme je cherche activement une solution à mon problème ^^

Est-il possible avec PAlib ou µlib, de créer un projet propre et efficace, à savoir intégrant une gestion des ressources dynamiques ? (histoire de pas avoir à tout intégrer à la main, mon projet nécessitant une quantité de ressources assez importante) ou ai-je plutôt intérêt à lorgner du côté de la libnds ? (qui je l'avoue me fait un peu peur, n'êtant pas vraiment calé question hardware)

Autre solution, certains d'entre vous ont ils cherché du côté de SDL pour DS, histoire de voir ce que ça vaut ? La SDL n'est pas un terrain inconnu loin de là, mais la version DS vaut-elle sa grande soeur ?

J'espère que certains d'entre vous pourront éclairer ma lanterne ^^

Michoko
28/06/2008, 23h46
Je n'ai malheureusement pas de réponse définitive à ta question. Lorsque moi-même je demande des infos sur la SDL, j'entends toujours plus ou moins le même réponse : ce n'est pas adapté à la DS.

Même si je peux comprendre cette réaction, je me demande quand-même si tous les gens qui disent ça l'ont vraiment essayé par eux-mêmes, ou si c'est juste un lieu commun... <_<

Pour te faire une idée de ce que peut donner la SDL sur DS, tu peux voir le portage de Tyrian (un shoot'em up très classe) ici : http://vespenegas.com/tyrian.html

L'auteur maintient même une version améliorée de la SDL pour DS, également disponible sur son site. Quand on voit le jeu tourner, on se dit que ça n'est pas mal du tout ! Bon par contre, ça ne doit gérer qu'un écran, l'autre étant toujours mis à jour avec la libnds ou une autre lib. J'aimerais vraiment avoir un avis moi aussi sur le mélange SDL + PAlib par exemple, mais il semble que peu de gens aient tenté l'expérience (en fait personne à ma connaissance :hmm:).

Pourtant il est clair que pour la portabilité, faire son projet directement en SDL est quand même un sacré avantage. Et dans les fait, l'approche n'est pas foncièrement différente de la µlib (même si je doute que l'implémentation de la SDL sur DS utilise le GPU 3D et toutes les optimisations de l'ami Brunni :))

A+
Michoko

JeeWee
29/06/2008, 00h37
Ben l'idée de l'utilisation de la SDL, c'était une alternative, mais c'est vrai qu'à priori c'est pas la lib la plus adaptée pour la DS.

Mais si en effet PAlib et µlib ne permettent pas d'utiliser les pointeurs pour faire le genre de chose que j'ai voulu faire au début de ce topic, c'est assez rebutant, car ça implique qu'il est difficile d'organiser le projet de manière efficace. En fait, je n'arrive pas vraiment à comprendre pourquoi ça ne marche pas, il n'y a pas vraiment de raison.

Donc peut-être qu'il y a une astuce pour contourner le truc, mais je trouverai étonnant que le simple fait d'utiliser les pointeurs soit impossible pour ce genre d'utilisation avec µlib.

Bref, je suis dans la panade totale ^^

J'espère qu'une bonne âme arrivera à mettre le doigt sur le problème (msieur Brunni ? :D)

JeeWee
02/07/2008, 20h10
Personne n'a une petite idée ? :(