1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
#include <SDL/SDL.h>
#include <stdio.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;
void dot(int x, int y, char rouge, char gaune, char bleu)
{
*((Uint16*)(Virtuel->pixels) + x + y * Virtuel->w) = SDL_MapRGB(Virtuel->format, rouge, gaune, bleu);
}
void attendreTouche(void)
{
SDL_Event event;
do
SDL_WaitEvent(&event);
while (event.type != SDL_QUIT && event.type != SDL_KEYDOWN);
}
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_FULLSCREEN );
Virtuel = SDL_CreateRGBSurface(SDL_SWSURFACE, ecran->w, ecran->h, 16, 0, 0, 0, 0);
if (ecran == NULL)
{
printf("Error: %s\n", SDL_GetError());
return 1;
}
if (Virtuel == NULL)
{
printf("Error: %s\n", SDL_GetError());
return 1;
}
int i;
int j;
int k;
int co1;
int co2;
int co3;
for (j = 0; j < 80; j++)
{
co1 = rand() % 255;
co2 = rand() % 255;
co3 = rand() % 255;
for (i = 0; i < 1024; i++)
{
for (k = 0; k < 768; k++) dot(i, k, co1, co2 ,co3);
{
dot(i,j,co1,co2,co3);
}
}
SDL_BlitSurface(Virtuel, NULL, ecran, NULL);
SDL_Flip(ecran);
}
attendreTouche();
} |
Partager