by pierrotdu18 » 01 Jun 2014, 10:37
Bon, j'ai fait ça :
- Code: Select all
void flipBuffer(ScreenBuffer* buf)
{
ScreenBuffer* oldBuf = *((volatile unsigned**)0xC0000010);
*((volatile unsigned**)0xC0000010) = buf;
buf = oldBuf;
}
void quitDoubleBuffering(ScreenBuffer* buf)
{
if (buf != ((volatile unsigned*)(0xA4000100)))
{
free(buf);
}
else
{
buf = *((volatile unsigned**)0xC0000010);
*((volatile unsigned**)0xC0000010) = ((volatile unsigned*)(0xA4000100));
free(buf);
}
}
int main()
{
ScreenBuffer* buf = newBuffer();
fillBg(buf, 0x3807);
wait_key_pressed();
flipBuffer(buf);
wait_key_pressed();
quitDoubleBuffering(buf);
return 0;
}
Ça a l'air de marcher, par contre, une fois que le programme est fini, j'ai bien l'affichage de mes classeurs, mais rien ne bouge... (par contre elle ne se met pas en mode debug).
Ça m'étonne parce que dans ma fonction quit, j'ai bien remis le SCREEN_BASE_ADDRESS à la valeur par défaut...
Avez vous une idée?

Bonjour