sdevilcry
28/06/2008, 20h59
Salut tout le monde, voila avec mon groupe de projet on a toujours de gros probleme avec la vram ... bref je vais vous expliquer pourquoi.
Au début, on charger en ram des images de 16xx*12xx (me souviens plus exactement combien) et on créer une map avec ça, on arriver a afficher la map mais des qu'on voulais afficher un sprite en plus, bah c'était fini..
J'ai donc eu l'idée de réduire la map et le sprite, on est donc passer a une image de 512 * 512 et d'un sprite de 16*16 au lieu de 32*32. Comme tout est en puissance de 2 ça allège le total :)
Ce qui bloque :
J'ai créer une image qui me prendra tout l'écran tu haut afin de m'en servir en tant qu'inventaire, le problème, si je blite en même temps l'image dans l'ecran du bas l'image de 512 * 512, l'une des deux ne s'affichera pas ...
L'idee :
C'est de charger en ram l'image de 512*512, et de creer une image simple de 256*191 en vram, avec laquelle je vais faire une copie en memoire d'un pointeur sur l'autre, donc utiliser un memcpy :)
Le soucis est qu'on a du mal a comprendre comment brunni a stocker l'image en ram et comment on pourrai récupérer les donner nécessaire que l'on veut copier sur notre pointeur temporaire afin d'afficher une partie d'image désirer :)
exemple :
var->toscale = ulLoadImageFilePNG("map.png", 0, UL_IN_RAM, UL_PF_PAL8);
var->bg = ulCreateImage(256, 191, UL_IN_VRAM, UL_PF_PAL8, 8);
memcpy(var->bg, var->toscale, 256*191);
var->inv.bg = ulLoadImageFilePNG("inventaire.png", 0, UL_IN_VRAM, UL_PF_PAL8);
Mais ceci ne marche pas :'(
J'espère que j'ai été compréhensible :)
merci de votre soutiens
Au début, on charger en ram des images de 16xx*12xx (me souviens plus exactement combien) et on créer une map avec ça, on arriver a afficher la map mais des qu'on voulais afficher un sprite en plus, bah c'était fini..
J'ai donc eu l'idée de réduire la map et le sprite, on est donc passer a une image de 512 * 512 et d'un sprite de 16*16 au lieu de 32*32. Comme tout est en puissance de 2 ça allège le total :)
Ce qui bloque :
J'ai créer une image qui me prendra tout l'écran tu haut afin de m'en servir en tant qu'inventaire, le problème, si je blite en même temps l'image dans l'ecran du bas l'image de 512 * 512, l'une des deux ne s'affichera pas ...
L'idee :
C'est de charger en ram l'image de 512*512, et de creer une image simple de 256*191 en vram, avec laquelle je vais faire une copie en memoire d'un pointeur sur l'autre, donc utiliser un memcpy :)
Le soucis est qu'on a du mal a comprendre comment brunni a stocker l'image en ram et comment on pourrai récupérer les donner nécessaire que l'on veut copier sur notre pointeur temporaire afin d'afficher une partie d'image désirer :)
exemple :
var->toscale = ulLoadImageFilePNG("map.png", 0, UL_IN_RAM, UL_PF_PAL8);
var->bg = ulCreateImage(256, 191, UL_IN_VRAM, UL_PF_PAL8, 8);
memcpy(var->bg, var->toscale, 256*191);
var->inv.bg = ulLoadImageFilePNG("inventaire.png", 0, UL_IN_VRAM, UL_PF_PAL8);
Mais ceci ne marche pas :'(
J'espère que j'ai été compréhensible :)
merci de votre soutiens