Les différentes données..
-----

typedef struct {
  int32 * buf;
  int32 width;
  int32 height;
  int32 size;

  int32 * realstart;
} Surface;
-----

>> taille du buffer de zoom
guint32 mmx_zoom_size;
-----

>> les buffers bruts contiennent les px et py de chaque point
>> => brutS[0] = px0, brutS[1] = py0, brutS[2] = px1, [...]

signed int *brutS = 0, *freebrutS = 0; // source
signed int *brutD = 0, *freebrutD = 0; // dest
signed int *brutT = 0, *freebrutT = 0; // temp (en cours de génération)

>> pointeur vers p1
guint32 *expix1 = 0;
>> pointeur vers p2
guint32 *expix2 = 0;

>> largeur d'une ligne = prevX
guint32 zoom_width;

>> largeur et hauteur des differents buffers.
int prevX=0,prevY=0;
-----

>> buffratio est un fixpoint : 16,16
>> valeur normalement comprise entre 0 et 1,
>> soit 0<=buffratio<=BUFFPOINTMASK

int buffratio = 0;

#define BUFFPOINTNB 16
#define BUFFPOINTMASK 0xffff
#define BUFFINCR 0xff
-----

#define sqrtperte 16
>> faire : a % sqrtperte <=> a & pertemask
#define PERTEMASK 0xf
>> faire : a / sqrtperte <=> a >> PERTEDEC
#define PERTEDEC 4
-----

int precalCoef[16][16];
