Buggée... je pense plutot que c'est pas compatible avec le format dll.. parce que sinon je vois pas d'ou ca vient..
Une routine de sprite 16x16 ne prend que 3Kcycles il me semble...
void _main(void) { short i, j, x, y; unsigned long count ; void * GPLAN = NULL; unsigned long Gen[100]; unsigned long X[100]; DlgMessage ("X vs Gen", "Attention le bench rique de prendre qqs minutes", BT_NONE, BT_NONE); XOn(); GPLAN = XNewGPlan(); XGPlanc(GPLAN); XIniDrawStr(F_4x6,GLOW); count = 0; XTimer5 = 0; for (y=0; y<1000; y++) { count++; XClrGPlan(); } X[0]=19*count/XTimer5; count = 0; XTimer5 = 0; for (x=-16; x<=256; x++) for (y=-16; y<=128+16; y++) { count++; XGTWSprite(x,y,aze); } X[1]=19*count/XTimer5; do{ XClrGPlan(); XPrintf(0,0,"- X XClrGPlan %d",(int)X[0]); XPrintf(0,8,"- X XGTWSprite2 %d",(int)X[1]); XCpyGPlanToLCD(); XJoyPad(); } while(!Press.Enter); XDestrFont(); XDestrGPlan(GPLAN); XOff(); //Init GENLIB PUSH_DSCREEN(DSCREEN *Scr); // DScreen + Adress of the DScreen gl_init(); gl_set_dscreen_function(Scr); gl_set_dscreen_int(Scr); gl_cls(); // Bench Clear Screen // GenLib count = 0; gl_timer = 0; for (y=0;y<1000;y++) { count++; gl_cls(); } Gen[0]=90*count/gl_timer; // Gen count = 0; gl_timer = 0; for (x=-16; x<=256; x++) for (y=-16; y<=128+16; y++) { count++; gl_put_sprite_16(x,y,1); } Gen[1]=90*count/gl_timer; gl_cls(); glaux_text(0,0,C_BLACK,T_SMALL,"Gen gl_cls: %ld Spr/s", Gen[0]); glaux_text(0,20,C_BLACK,T_SMALL,"Gen gl_put_sprite_16: %ld Spr/s", Gen[1]); gl_wait_a_key(); gl_quit(); }