1

je voudrai savoir sil é possible de créé d ecran virtuel d'une taille de 300(row)*160(col) par exemple, é utilisé les fonction graphik kom dab, c a dir demander de tracer un sprite au coordonné: 50,200 san kil y é aucun pb???

2

un sprite au coordonné 200,50 (pardon wink )

3

je sais pas, je pense que oui, t'as qu'à essayer sous vti ...
*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & sabrina

4

mai dan ce k ca sra koi la taille a mettre avec malloc???
é si c possible comment faire pour copier une parti seulement de cette ecran virtuel (egal a celle de l'ecran) dan le vrai LCD?

5

bah avec malloc tu met 300*160grin
Sinon t'as pas une technique pour stocker +ieurs copie de l'écran dans un malloc?,
pacque chez moi ça plante
the car's on fire and there's no driver at the wheel
and the sewers are all muddied with a thousand lonely suicides
and a dark wind blows

GYBE! Dead Flag Blue

6

tu veu dir koi par +ieurs copie de l'ecran dan un malloc?

é vou savez pa comment copier seulement une partie d'un ecran virtuel dans la mem LCD, en utilisant une methode simple

par exemple avec un ecran virtuel de 300*160
comment copier la partie:
0<x<159 et 100<y<199
sur la mem LCD

7

é o ya personne ki peu me répondre confus

8

300*160 ca marchera pas. tt les routines d'affichage sont calés sur un pas de ligne de 30 octects(240 pixels).
300x240, oui. mais la RAM va en prendre un coup.

9

c pa grav pour la ram yen a suffizamment non???

é pui a par ca comment faire pour copier une partie de cette ecran virtuel (de la taille=LCD_SIZE) dans la LCD_MEM c ca le gro pb pour moi confus
par exemple copier de la zone qui séttende:
0<x<159 et 100<y<199

10

ben, les boucles ca existe en C... a toi de copier les bonnes octets... là, à toi de réfléchir, c pas bien dur, suffit de s'y mettre. Faut pas qu'on te donne tout non plus ! smile
youpi !

11

Attention!!!!
pour les fonctions du tios les fonctions graphiques marcherons, car tu peux preciser la taille de l'ecran!
sinon pour les autres fonction, la taille est definie pas 30 octets de larges (240 pxl) donc ca foirera si c'est pas respecte!

en revanche tu peux refaire tes fonctions..
:
voila comment les modifier:
void DChar(short x,short y,short numero)
{
register unsigned short i,k,l;
LCD= LCD_MEM + (y<<5)-(y+y) + (x>>3);
i=x&7;
k=8-i;
point=type2+(numero-1)*hauteur;
l=hauteur;
while(l--) {
*LCD++ |= ((*point) >> i);
*LCD |= ((*point++) << k);
LCD+=29;
}

}
par exemple pour un sprite de largeur <=8
ca devient:
si tu ne veux pas definir la largeur...
void DChar(short x,short y,short numero,short la)
{
register unsigned short i,k,l,larg=la;
LCD= LCD_MEM + y*larg + (x>>3);
i=x&7;
k=8-i;
point=type2+(numero-1)*hauteur;
l=hauteur;
while(l--) {
*LCD++ |= ((*point) >> i);
*LCD |= ((*point++) << k);
LCD+=larg-1;
}

}


Enfin je pense.. je suis zZz²wink
XLib v1.00 Powerrrrrrrrrrrrrrrrrrrr!

12

voila g tester ske vou mavé di avec un truc tré simple:

void _main(void)
{
void *virtual = malloc (9000); // 9000=(240*300)/8
PortSet (virtual, 239, 299);
clrscr();
DrawLine (10,10,50,50,A_NORMAL);
memmove (LCD_MEM, virtual, LCD_SIZE);
ngetchx();
PortRestore();
free(virtual);
}

c préske parfai et la ligne se trace, le seul pb c ke ya d gribouilli, comme si le clrscr() navai pa fai son boulo!!!

c du a koi tou ca ??? confus

13

é o !!!

14

>pollux: g pa compris ton NB, ca veu dir koi?

et pour memset, ya un truc bizar:
-kan je met: memset (virtual,0,(240*300)/8) TIGCC me done un "warning": integer overflow in expression (cad la valeur de l'int est tro grande) pourtant kan je lance le prog ca marche et ya pa de gribouilli dan l'écran
-met kan je met: memset (virtual,0,9000) ca marche
san warning

pourtant (240*300)/8=9000 !!! pourkoi TIGCC est CON?

15

merci pollux, merci a vou tous smile

16

si tu fais un malloc(), n'oublie pas d'utiliser free()
sinon, mauvaises surprises...
avatar
fabetal_ > Hier, je me suis fait monter par un pote
redangel > et en chevals, ça donne quoi?
Nil> OMG I think I'm gay

17

wi merci smile