PDA

Voir la version complète : Bitmap to Tiles


thoduv
01/04/2006, 16h35
Salut !

Voilà 3 jours que j'essaie de faire marcher cette fonction et je sens que je vais bientot sauter par la fenetre parce qu'il se trouve que ca marche toujours pas correctement...

J'explique à quoi ca doit servir :
On a une image bitmap -pointée par "bitmap"- en 256 couleurs dont on connait la taille : c'est un multiple de 8.
On veut afficher cette image sur un fond en tiles, pointé par "tiles".
En gros la fonction transforme le bitmap en tiles de 8*8

Visiblement la fonction marche, mais pas parfaitement, à savoir qu'il y a des décalages, et que la fonction recopie plus que la taille demandée ...


void bitmap_to_tiles_8(u8 *tiles, const u8 *bitmap, u16 size_x, u16 size_y)
{
u8 *ptiles = tiles;
const u8 *pbitmap = bitmap;
int i;
int t = 0;

for(t = 0; t < ((size_y * size_x) >> 6); t++)
{
for(i = 0; i < 8; i++)
{
zdsMem_dma3Copy(ptiles, pbitmap, 8); /* Copie DMA de 8 bits de pbitmap vers ptiles */
ptiles += 8;
pbitmap += size_x;
}
if((t % (size_x >> 3)) == 0) pbitmap -= size_x;
else pbitmap -= (size_x << 3);
pbitmap += 8;
//t++;
}
}


Si vous arrivez à la faire marcher parfaitement ou si vous en avez une autre qui marche ... :(

Help ! :(

Nesgba
15/04/2006, 20h55
je te fait ca desuite, c'est pour afficher sur du mode tiles ou du mode 4 ? dans tout les cas tu devra storer tes pixels et les plotter.

Pyroh
15/04/2006, 21h01
tu devra storer tes pixels et les plotter.
Je suis un pixel, je suis un pixel !! :w00t: :w00t: :p

J'ai honte mais t4ils la fera pas :-'

MIKEGBA
18/04/2006, 10h46
je te fait ca desuite, c'est pour afficher sur du mode tiles ou du mode 4 ? dans tout les cas tu devra storer tes pixels et les plotter.


il a une image en bitmap qu'il veut afficher sur du mode tile !

pourkoi tu veux storer tes pixels avant de les plotter ? tu peux tout faire à la volée !