./58: Je lis les doc.
Folco (./61) :
n'y a-t-il pas moyen de coller des images dont le format gère nativement la transparence (png dans mon cas) ? La surface n'a-t-elle pas directement cet attribut si l'on ouvre un tel fichier, en utilisant SDL image ?
Folco (./63) :
Ah Jyaif, tu faisais référence à ça en me parlant d'une grande image qui en contient plusieurs ?
int SDL_BlitSurface(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect);
Suffit après de sélectionner le rectangle qui va bien dans l'image source pour l'afficher, et ça permet de grouper plein d'images en effet.
Folco (./66) :
Han mais c'est plus qu'énorme, pour un sprite animé par exemple, c'est juste un décalage de coordonnées, rien à charger/checker en mémoire !
Et pour un curseur qui varie, juste un décalage d'abcisses/ordonnées dans un sprite, encore une fois aucun accès disque/mémoire. Enorme !
GoldenCrystal (./68) :
Windows comprend parfaitement les / contrairement à Linux qui va merder sévère si tu mets des \. Mais rien ne t'interdit de tester quand même, pour être sûr.
GoldenCrystal (./68) :
En revanche, tu devrais faire un truc pour t'assurer que ton application est bien positionnée sur le bon répertoire de travail au démarrage, sinon elle trouvera pas les images.
Godzil (./69) :
Ce n'est pas si simple, mais c'est dans l'idée
Folco (./70) :Il faut que tu trouves un API qui te donne le chemin d'accès à ton éxécutable (en cours d'éxécution), mais malheureusement il n'y a rien de portable pour ça. Ensuite, changer le répertoire de travail n'est pas très compliquéGoldenCrystal (./68) :
En revanche, tu devrais faire un truc pour t'assurer que ton application est bien positionnée sur le bon répertoire de travail au démarrage, sinon elle trouvera pas les images.
Ah ben figure-toi que j'en ai parlé cet aprèm' sur IRC à Flanker et Zerosquare, et ils ont pas trop sur quoi me répondre. Comment faire ? J'ai essayé SetCurFold(GetCurFold()), mais il trouve pas tios.hEt de manière portable qui plus est, je ne sais pas du tout m'y prendre, je n'ai pas touché à grand chose sur PC, et surtout pas au filesystem. Mais effectivement, j'aurais besoin de savoir faire ça !
Hmm je ne suis pas certain que ce soit à ça que Godzil fasse référence, mais en gros, le curseur (matériel), n'est pas géré vraiment pareil qu'un sprite.Godzil (./69) :
Ce n'est pas si simple, mais c'est dans l'idée
J'imagine qu'avec la mémoire vidéo toussa c'est pas aussi simple en effet ? Pas grave, niveau code et vérifications à (ne pas) faire, c'est déjà le pied !
GoldenCrystal (./71) :C'est ce que je disais à Folco, on peut simplement utiliser argv[0] et virer le nom de l'exécutable à la fin, mais le parsing n'est pas portable à cause des / et des \ (et ça pourrait être potentiellement n'importe quoi d'autre).
Il faut que tu trouves un API qui te donne le chemin d'accès à ton éxécutable (en cours d'éxécution)
Folco (./73) :Beurk
Faire un system("cd ") au pire.
char *sep; if ((sep = strrchr(argv[0], '/')) || (sep = strrchr(argv[0], '\'))) *sep = 0; printf("Path is %s\n", argv[0]);
Zerosquare (./81) :
Ça devrait fonctionner, même si niveau lisibilité on a déjà vu mieux ^^
(faudrait voir si argv est toujours accessible en écriture, par contre)
Folco (./86) :
J'aime bien que les programmes puissent tourner à partir de leur répertoire courant, sans installation, comme ça ça ne fait pas chier ceux qui veulent essayer (pas de pourrissage), ça peut se ballader sur une clé usb etc...
Folco (./88) :
C'est comme ça tous les softs, ils sont releasés avec des leaks dans tous les sens mais c'est pas grave, on verra rien ?