351Fermer353
nullLe 17/02/2004 à 18:22
void PutBitmap(short x, short y,unsigned char *pic,unsigned char *video_plane)
{
	
  short i=0,j=0;
  short nb_l=*(unsigned short *)(pic+0);
  short nb_c=*(unsigned short *)(pic+2);
  pic=pic+4;
  for(j=0;j<nb_l;j++)
  {
       
       short x_ = x;
       short i=0;
       unsigned char *pointeur = (video_plane+(((y<<8)-(y<<4)+x)>>3));
       /*                                    (256y-16y+x)/8       */
       for(i=0;i<nb_c;i=i+8)
       {
  	     
  	     short mask = x_&7;
  	     if(mask)
  	     *(pointeur+1) |=*(pic)<<(8-mask);
  	     *(pointeur++) |=(*pic++)>>(mask);
  	     x_=x_+8;
      
       }
       y++;
  }
  

}

Je pense que là ça va déjà mieux. smile ... parce-qu'en même temps que je teste la routine je fait un bench et là j'en suis à 550-560 contre 209 pour l'AMS... il faudra que je vois après clipping aussi. Mais c'est bien possible de faire deux fois plus vite que l'AMS en C, non ?