1

quel est le moyen le plus rapide de taper dans la mémoire écran ?
est ce qu'il y a plus rapide qu'un simple *draw.o_buffer[index] (un canal dma ou un blitter) ?
y a t'il des piéges qui font perdre de la vitesse ?
Au niveau vitesse, est'il plus efficace d'écrire dans la ram écran avec des bytes, des word, ou des dword ?

2

un récap sur ARM et la GP32:

// registers a surface
int GpSurfaceCreate (GPDRAWSURFACE* ptgpds, int gdflag) {
__asm {
//r0=pointer to surface
mov r1, 0 // surface number
mov r2, 1 // sub function
swi 8, {r0-r2}, {r0}
}
}

// turns lcd on
void gpLcdEnable() {
__asm {
mov r2, #3 // sub function
swi 0x8, {r2}
}
}

// reports keypad status
int GpKeyGet() {
__asm {
mov r0, 1 // sub function
swi 0x10, {r0}, {r0}
}
}


// gets entry point to gpSurfaceSet
void Init() {
__asm {
mov r0, 0 // sub functiom
swi 0xb
mov gpSurfaceSet, r0
}
}
*/
__inline void DrawPad(int x, int y, int color) {
int* buffer=(int*)(surface.ptbuffer+x*GPC_LCD_HEIGHT+y);
for (i=0; i<PAD_SIZE; i+=4) *(int*)(++buffer)=color;
}

__inline void DrawBall(int x, int y, int color) {
for (i=0; i<BALL_SIZE; i++) *(unsigned int*)(surface.ptbuffer+(x+i)*GPC_LCD_HEIGHT+y)=color;
}

__inline void DrawNet() {
int* buffer=(int*)(surface.ptbuffer+160*GPC_LCD_HEIGHT);
for (i=0; i<GPC_LCD_HEIGHT/2; i+=2) *(unsigned short*)(buffer+i)=(255<<8)+255;
}

Bonne chance .
avatar
:*)