La première routine trouvé etait:
//------------------------------------------------------------------------------ // (dest_x,dest_y) ... position in screen memory where the strip should be drawn // texture_x ... column number of texture which should be used as input // dest_height ... destination height (1..64) NOTE: 0 is an invalid height //------------------------------------------------------------------------------ void RenderStrip(short dest_height,short dest_x,short dest_y,short texture_x) { double delta_y = 64.0/dest_height; double texture_y = 0.0; COLOR color; short actheight; for (actheight=0; actheight < dest_height; actheight++) { color = GetTexturePixel(texture_x,(short)texture_y); texture_y += delta_y; SetDestinationPixel(dest_x,dest_y+actheight,color); } }
cette routine utilise des doubles... et cela ralentit donc notre chere ti

je me demande à quoi ca sert d'utiliser des nombres a virgules, alors qu'une routine comme cela serai plus rapide et aussi éfficace:
void RenderStrip(short dest_height,short dest_x,short dest_y,short texture_y) { char color; short actheight; for (actheight=0; actheight < dest_height; actheight++) { color = XGPxlTest((actheight<<7)/dest_height,texture_y); XGPxlPut(dest_x+actheight,dest_y,color); XGPxlPut(dest_x+actheight,dest_y+1,color); } }
Le resultat est strictement identique, il me semble non

Dans cette routine, le seul probleme étant le divu que l'on ne peut pas optimisé

Est ce que qqn a une autre idée d'optimisation.. excepté de passer la routine en asm et de faire un tableau des pxls a tester (ce qui prend un max de ram) ou alors de chager les fonctions de pxl...
NB: une idée serait d'incrémenter par: dest_height, ce qui rendrai automatiquement le bon résultat.. vous avez mieux?