With the folowing rout, i can copy the upper part of a screen to the lower without any problem, but when i want to copy the left side 1/2 screen to the right side, it' doesn't work !
Why ? Is it a problem with struct + 10 ? How does really work this part ?
If ST low and 4 planes, 2 o the plane, 1st colour of plane are 1,2,4,8 backround color... always 0 ?
Is it always the same longword for ST low ? Thanks you 4 ypur help again.
We can do a great deal of effects with this instruction well used.
- Code: Tout sélectionner
DIM linea_params&(40)
struct%=V:linea_params&(0)
CARD{struct%}=160 ! larg pix bloc a copier
CARD{struct%+2}=200 ! haut "
CARD{struct%+4}=4 ! nbre de plans (monochrome : 1 ; 4 couleurs : 2 ; 16 couleurs : 4 ; 256 couleurs : 8)
CARD{struct%+6}=1 ! coul 1er plan
CARD{struct%+8}=0 ! coul fond
LONG{struct%+10}=&H3030303 ! Tableau de 4 octets contenant le mode graphique utiliser en fonction des bits de la couleur source et destination
' Pour chaque plan de couleur, index = (bit de la couleur de premier plan * 2) + (bit de la couleur de fond)
CARD{struct%+14}=0 !Coordonnes x du coin en haut gauche, dans la surface source, du bloc copier
CARD{struct%+16}=0 !Coordonnes y du coin en haut gauche, dans la surface source, du bloc copier
LONG{struct%+18}=a% ! Adresse de la surface source
CARD{struct%+22}=8 !Offset en octets entre deux mots du mme plan de couleur ' En gnral, CARD{struct%+22} = 2 * Nombre de plan de couleur de la surface source
CARD{struct%+24}=160 !Incrment en octets entre le dbut d'une ligne et la suivante ' Pour une zone mmoire continue, ce sera la largeur en pixel * le nombre de plan de couleur *
CARD{struct%+26}=2 !Incrment en octets pour passer au plan suivant
CARD{struct%+28}=100 !Coordonnes x du coin en haut gauche, dans la surface cible, du bloc copier
CARD{struct%+30}=0 !Coordonnes y du coin en haut gauche, dans la surface cible, du bloc copier
LONG{struct%+32}=xb% !Adresse de la surface cible
CARD{struct%+36}=8 !Incrmenten octets entre deux mots du mme plan de couleur
' En gnral, CARD{struct%+36} = 2 * Nombre de plan de couleur de la surface cible
CARD{struct%+38}=160 !INCREMENT EN OCTETS ENTRE LE DBUT D'UNE LIGNE ET LA SUIVANTE ' POUR UNE ZONE MMOIRE CONTINUE, CE SERA LA LARGEUR EN PIXEL * LE NOMBRE DE PLAN DE COULEUR *
CARD{struct%+40}=2 !INCRMENT EN OCTETS POUR PASSER AU PLAN SUIVANT ' EN GNRAL, CE SERA 2
LONG{struct%+42}=0 !ADRESSE DU MOTIF DE DEMI-TEINTE
' L'ADRESSE DOIT TRE NON NULLE POUR UTILISER CETTE FONCTIONNALIT
CARD{struct%+46}=0 !TAILLE EN OCTETS D'UNE LIGNE DE MOTIF DE DEMI-TEINTE
CARD{struct%+48}=2 !TAILLE EN OCTETS D'UN PLAN D'UNE LIGNE DE MOTIF ' SI LE MOTIF EST SUR UN SEUL PLAN, ON MET 0
CARD{struct%+50}=0 !TAILLE DU MOTIF EN OCTETS - 1
BITBLT struct%