gokernel
(usa Linux Mint)
Enviado em 07/05/2019 - 18:56h
Olá pessoal !
Atualizei o projeto e fiz um test de FPS(Frames Por Segundos) ...
No meu Note Core i3 ficou assim os resultados:
-----------------------------------------------------------------
1: Com a implementação antiga de ( sgBlit32() ), o FPS ficou em media:
137 FPS.
2: Com a implementação melhorada de ( sgBlit32() ), o FPS ficou em media:
550 FPS.
-----------------------------------------------------------------
Exemplo função main:
int main (void) {
int color;
BMP *b = NULL;
printf ("Sizeof sg_fix_screeninfo = %d\n", (int)sizeof(struct sg_fix_screeninfo));
printf ("Sizeof sg_var_screeninfo = %d\n", (int)sizeof(struct sg_var_screeninfo));
if (sgInit()) {
if ((b = sgNewBmp32(800,600))) {
printf ("BITMAP CRIADO 800 X 600\n");
}
if (FB.bpp == 16)
color = makecol16(255,130,30); // orange
if (FB.bpp == 32)
color = makecol32(255,130,30);
if (FB.bpp == 32 && b) {
sprintf (buf, "%s", "FPS: %d", fps);
hlineBMP32 (b, 50, 50, 450, color); // -
hlineBMP32 (b, 50, 150, 450, color); // -
vlineBMP32 (b, 50, 50, 150, color); // |
vlineBMP32 (b, 450, 50, 150, color); // |
DrawText (b, "Please Wait 15 SECONDS: ...", 100, 75, color);
DrawText (b, buf, 100, 100, color);
for (;;) {
//
// each SECOND:
//
long t = time (NULL);
if (t != now) {
now = t;
if (count < 0)
break;
sprintf (buf, "FPS: %d | Wait %d", fps, count--);
fps = 0;
// bg: FPS test
//---------------------------------------
hlineBMP32 (b, 100, 100, 300, 0); // -
hlineBMP32 (b, 100, 101, 300, 0); // -
hlineBMP32 (b, 100, 102, 300, 0); // -
hlineBMP32 (b, 100, 103, 300, 0); // -
hlineBMP32 (b, 100, 104, 300, 0); // -
hlineBMP32 (b, 100, 105, 300, 0); // -
hlineBMP32 (b, 100, 106, 300, 0); // -
hlineBMP32 (b, 100, 107, 300, 0); // -
hlineBMP32 (b, 100, 108, 300, 0); // -
hlineBMP32 (b, 100, 109, 300, 0); // -
hlineBMP32 (b, 100, 110, 300, 0); // -
hlineBMP32 (b, 100, 111, 300, 0); // -
hlineBMP32 (b, 100, 112, 300, 0); // -
hlineBMP32 (b, 100, 113, 300, 0); // -
hlineBMP32 (b, 100, 114, 300, 0); // -
//---------------------------------------
DrawText (b, buf, 100, 100, color);
}// if (t != now)
fps++;
//
// Update/display the BMP
//
sgBlit32 (b);
}// for (;;)
}// if (FB.bpp == 32 && b)
sgQuit();
}
printf ("Exiting With Sucess:\n");
return 0;
}
O objetivo é melhorar a implementação para ganhar mais 50% de performance ... !!!
OBS: O programa sai do loop depois de 15 segundos ...