USING LINE A BITBLT

Bah, tout est dit non ?

USING LINE A BITBLT

Messagede hylst » Lun 30 Mai 2011 23:32

LINE A BITBLT is so fast for GFA so that we cannot use another copy instructon. But... It's not so easy to make it work...
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%
 
Let's visit my personal website http://hylst.t15.org !
hylst
 
Messages: 184
Inscription: Mer 27 Avr 2011 17:17
Localisation: France Strasbourg

Re: USING LINE A BITBLT

Messagede tomchi » Mar 31 Mai 2011 13:06

Sporniket a fait un super tuto sur bitblt mais j'avoue ne m'en être jamais servi ^^'
Avatar de l’utilisateur
tomchi
Administrateur du site
 
Messages: 342
Inscription: Mer 15 Oct 2008 20:51

Re: USING LINE A BITBLT

Messagede hylst » Mar 31 Mai 2011 16:36

Après test, BITBLT Line A s'avère en fait être bien + rapide que RCCOPY, mais ne semble pas si aisé à exploiter.
Je viens de retrouve le poste de Sporkinet sous le sujet tuto blitter.
Au fait, Larquory sortie, ça me laisse un peu de temps.
Let's visit my personal website http://hylst.t15.org !
hylst
 
Messages: 184
Inscription: Mer 27 Avr 2011 17:17
Localisation: France Strasbourg

Re: USING LINE A BITBLT

Messagede leglod » Mer 1 Juin 2011 10:27

Faut voir aussi en passant en supervisseur et en adressant directement le Blitter a coup de poke ou card, le quel est plus rapide !
Puis rassembler le tout !
Moi j'ai aussi une question est t'il utilise de renseigner tout les parametre au Blitter a chaque appel notamement le Halftone dont je n'ai toujours pas compris l'utiliter meme si on ne s'en sers pas ?
Avatar de l’utilisateur
leglod
 
Messages: 182
Inscription: Jeu 6 Nov 2008 22:33
Localisation: Montpellier (34) sud France

Re: USING LINE A BITBLT

Messagede tomchi » Mer 1 Juin 2011 11:31

non seul ycount et blit sont à renseigner à chaque appel au blitter
Avatar de l’utilisateur
tomchi
Administrateur du site
 
Messages: 342
Inscription: Mer 15 Oct 2008 20:51

Re: USING LINE A BITBLT

Messagede leglod » Mer 1 Juin 2011 15:55

tomchi a écrit:non seul ycount et blit sont à renseigner à chaque appel au blitter


Ok cool, je cherche la motivation pour me relancer a faire des test, genre aussi savoir si le Blitter ralenti si l'adresse et non multiple tout ca !
J'avais du le faire mais bon c’est perdu ou oublier .
Avatar de l’utilisateur
leglod
 
Messages: 182
Inscription: Jeu 6 Nov 2008 22:33
Localisation: Montpellier (34) sud France


Retourner vers Questions/aide

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron