< SDL2.x
Un renderer permet de rendre des primitives de manière optimale grace à la nouvelle API apparue dans la version 2 de la SDL.
La fonction SDL_CreateWindowAndRenderer()
permet d'ouvrir une fenêtre et d'initialiser un renderer associé:
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <SDL2/SDL.h>
4
5 int main (int argc , char *argv[])
6 {
7 SDL_Window *window;
8 SDL_Renderer *renderer;
9
10 // initalisation
11 SDL_Init(SDL_INIT_VIDEO);
12
13 // création d'une fenêtre et d'un renderer
14 SDL_CreateWindowAndRenderer(
15 320, 240,
16 SDL_WINDOW_RESIZABLE,
17 &window, &renderer);
18
19 // attendre 3 secondes
20 SDL_Delay(3000);
21
22 return 0;
23 }
Utilisons maintenant la fonction SDL_RenderDrawLine()
pour dessiner une série de lignes aléatoires:
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <time.h>
4 #include <SDL2/SDL.h>
5
6 #define WIDTH 640
7 #define HEIGHT 480
8
9 int main (int argc , char *argv[])
10 {
11 SDL_Window *window;
12 SDL_Renderer *renderer;
13 int i, j;
14 Uint8 r, g, b, a;
15 int pax, pay, pbx, pby;
16
17 // initalisation
18 SDL_Init(SDL_INIT_VIDEO);
19
20 // Utilisons le temps actuel pour initialiser
21 // le générateur de nombre aléatoire
22 srand(time(0));
23
24 // création d'une fenêtre et d'un renderer
25 SDL_CreateWindowAndRenderer(
26 WIDTH, HEIGHT,
27 SDL_WINDOW_RESIZABLE,
28 &window, &renderer);
29
30 for (i = 0; i < 36; i++) {
31 // définir une couleur aléatoire
32 r = rand() % 255;
33 g = rand() % 255;
34 b = rand() % 255;
35
36 SDL_SetRenderDrawColor(
37 renderer, r, g, b, 255);
38
39 for (j = 0; j < 22; j++) {
40 // définir 2 points aléatoires
41 pax = rand() % WIDTH;
42 pay = rand() % HEIGHT;
43 pbx = rand() % WIDTH;
44 pby = rand() % HEIGHT;
45
46 // dessiner une ligne
47 SDL_RenderDrawLine(
48 renderer,
49 pax, pay,
50 pbx, pby);
51 }
52 SDL_RenderPresent(renderer);
53 SDL_Delay(160);
54 }
55 return 0;
56 }
Aller lire la documentation de l’API du module renderer.
Cet article est issu de Wikiversity. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.