cdrman
10/12/2005, 07:54
Holas, acabo de empezar a programar para gp32. La verdad es que voy un poco perdido con el tema del double buffering, he hecho algo, va bien, pero no acabo de entender porque.
while(1)
{
// Borramos pantalla
GpRectFill(NULL,&gpDraw[nflip],0,0,gpDraw[nflip].buf_w,gpDraw
[nflip].buf_h,0x0);
// Pintamos
GpRectFill(NULL,&gpDraw[nflip],i,j,25,25,210);
ReadControls();
if (UP)
j-=5;
if (DOWN)
j+=5;
if (LEFT)
i-=5;
if (RIGHT)
i+=5;
// cambiamos de pantalla
nflip=!nflip;
GpSurfaceFlip(&gpDraw[nflip]);
}
Funciona bien, va fino, almenos en el emu, pero es que no entiendo el sentido de mi codigo, es decir, lo que hago aki es modificar el buffer 0, ke es el que se ve en la pantalla, luego cambio al buffer 1 y lo pinto y vuevlo a cambiar al 0. No tendria ke estar alguna cosa al reves¿?
Si alguien puede explicarme bien como va el double buffering, o el triple, o lo ke sea, .. porke no lo veo nada claro.
Gracias!!!
while(1)
{
// Borramos pantalla
GpRectFill(NULL,&gpDraw[nflip],0,0,gpDraw[nflip].buf_w,gpDraw
[nflip].buf_h,0x0);
// Pintamos
GpRectFill(NULL,&gpDraw[nflip],i,j,25,25,210);
ReadControls();
if (UP)
j-=5;
if (DOWN)
j+=5;
if (LEFT)
i-=5;
if (RIGHT)
i+=5;
// cambiamos de pantalla
nflip=!nflip;
GpSurfaceFlip(&gpDraw[nflip]);
}
Funciona bien, va fino, almenos en el emu, pero es que no entiendo el sentido de mi codigo, es decir, lo que hago aki es modificar el buffer 0, ke es el que se ve en la pantalla, luego cambio al buffer 1 y lo pinto y vuevlo a cambiar al 0. No tendria ke estar alguna cosa al reves¿?
Si alguien puede explicarme bien como va el double buffering, o el triple, o lo ke sea, .. porke no lo veo nada claro.
Gracias!!!