Salut a tous.
Je voudrez savoir pourquoi mon va plus vite au TEMP 2 qu'au TEMP 1
#include <SDL/SDL.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
/* surface qui sert à l'affichage dans la mémoire vidéo */
SDL_Surface *ecran = NULL;
//On crée une surface dans la mémoire système
SDL_Surface *Virtuel = NULL;
Uint16 color[1024*768];
int main(int argc, char **argv)
{
/* SDL_INIT_VIDEO si besoin de seulement la vidéo */
if (SDL_Init(SDL_INIT_EVERYTHING) == -1)
{
printf("Error: %s\n", SDL_GetError());
return 1;
}
ecran = SDL_SetVideoMode(1024, 768, 16, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_HWACCEL | SDL_FULLSCREEN);
if (ecran == NULL)
{
printf("Error: %s\n", SDL_GetError());
return 1;
}
int i;
int j;
int k;
int l;
int co1;
int co2;
int co3;
//TEMP 1
for (k = 0; k < 80; k++)
{
co1 = rand() % 255;
co2 = rand() % 255;
co3 = rand() % 255;
Uint16 rgb = SDL_MapRGB(ecran->format, co1, co2, co3);
for (i=0; i<1024 ; i++)
{
for (j=0; j<768 ; j++)
{
l = j*1024 + i;
color[l] = rgb;
}
}
memcpy((Uint16*)(ecran->pixels),color,1024*768*2);
SDL_Flip(ecran);
}
//TEMP 2
for (k = 0; k < 80; k++)
{
co1 = rand() % 255;
co2 = rand() % 255;
co3 = rand() % 255;
Uint16 rgb = SDL_MapRGB(ecran->format, co1, co2, co3);
for (i=0; i<1024*768 ; i++) color[i] = rgb;
memcpy((Uint16*)(ecran->pixels),color,1024*768*2);
SDL_Flip(ecran);
}
}
@++