gKit2 light
Loading...
Searching...
No Matches
tuto2.cpp File Reference

utilisation de mesh pour decrire les sommets d'un ou plusieurs triangles et les dessiner. More...

#include <stdio.h>
#include "window.h"
#include "mesh.h"
#include "draw.h"

Go to the source code of this file.

Functions

int init ()
int draw ()
int quit ()
int main (int argc, char **argv)

Variables

Mesh triangle

Detailed Description

utilisation de mesh pour decrire les sommets d'un ou plusieurs triangles et les dessiner.

Definition in file tuto2.cpp.

Function Documentation

◆ init()

int init ( )

Definition at line 15 of file tuto2.cpp.

16{
17 // etape 1 : decrire le triangle, les coordonnees des 3 sommets.
18
19 // creer un mesh pour stocker les coordonnees des sommets du triangle
20 triangle= Mesh(GL_TRIANGLES);
21
22 // choisir une couleur pour les sommets, rouge + vert = jaune
23 triangle.color(Color(1, 1, 0));
24
25 // donner les positions des 3 sommets, entre -1 1 sur x, y, z
26 triangle.vertex(-0.5, -0.5, 0);
27 triangle.vertex( 0.5, 0.5, 0);
28 triangle.vertex(-0.5, 0.5, 0);
29
30 return 0; // ras, pas d'erreur
31
32// on peut aussi donner des couleurs differentes aux sommets du triangle :
33/*
34 triangle.color(Color(1, 0, 0));
35 triangle.vertex(-0.5, -0.5, 0);
36
37 triangle.color(Color(0, 1, 0));
38 triangle.vertex(0.5, 0.5, 0);
39
40 triangle.color(Color(0, 0, 1));
41 triangle.vertex(-0.5, 0.5, 0);
42
43 return 0; // ras, pas d'erreur
44 */
45}
representation d'un objet / maillage.
Definition mesh.h:121
representation d'une couleur (rgba) transparente ou opaque.
Definition color.h:14

◆ draw()

int draw ( void )

Definition at line 47 of file tuto2.cpp.

48{
49 // etape 2 : dessiner l'objet avec opengl
50
51 // on commence par effacer la fenetre avant de dessiner quelquechose
52 glClear(GL_COLOR_BUFFER_BIT);
53
54 // on dessine le triangle sans changer les transformations.
55 draw(triangle, Identity(), Identity(), Identity());
56
57 return 1; // on continue, renvoyer 0 pour sortir de l'application
58}
Transform Identity()
construit la transformation identite.
Definition mat.cpp:187

◆ quit()

int quit ( )

Definition at line 60 of file tuto2.cpp.

61{
62 // etape 3 : detruire la description du triangle
63 triangle.release();
64 return 0; // ras, pas d'erreur
65}

◆ main()

int main ( int argc,
char ** argv )

Definition at line 68 of file tuto2.cpp.

69{
70 // etape 1 : creer la fenetre
71 Window window= create_window(1024, 640);
72 if(window == NULL)
73 return 1; // erreur lors de la creation de la fenetre ou de l'init de sdl2
74
75 // etape 2 : creer un contexte opengl pour pouvoir dessiner
76 Context context= create_context(window);
77 if(context == NULL)
78 return 1; // erreur lors de la creation du contexte opengl
79
80 // etape 3 : creation des objets
81 if(init() < 0)
82 {
83 printf("[error] init failed.\n");
84 return 1;
85 }
86
87 // etape 4 : affichage de l'application, tant que la fenetre n'est pas fermee. ou que draw() ne renvoie pas 0
88 run(window, draw);
89
90 // etape 5 : nettoyage
91 quit();
92 release_context(context);
93 release_window(window);
94 return 0;
95}
Context create_context(Window window)
cree et configure un contexte opengl
Definition window.cpp:358
void release_window(Window window)
destruction de la fenetre.
Definition window.cpp:328
int run(Window window, int(*draw)())
boucle de gestion des evenements de l'application.
Definition window.cpp:158
void printf(Text &text, const int px, const int py, const char *format,...)
affiche un texte a la position x, y. meme utilisation que printf().
Definition text.cpp:140
Window create_window(const int w, const int h, const int major, const int minor)
creation d'une fenetre pour l'application.
Definition window.cpp:262
void release_context(Context context)
detruit le contexte openGL.
Definition window.cpp:439
int init(std::vector< const char * > &options)

Variable Documentation

◆ triangle

Mesh triangle

Definition at line 12 of file tuto2.cpp.