20Mesh make_grid(
const int n= 10 )
26 float w= float(n-1) / 2;
27 for(
int x= 0; x < n; x++)
33 for(
int z= 0; z < n; z++)
68 m_grid.bounds(pmin, pmax);
69 m_camera.lookat(pmin, pmax);
76 glClearColor(0.2f, 0.2f, 0.2f, 1.f);
80 glEnable(GL_DEPTH_TEST);
99 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
103 unsigned int mb= SDL_GetRelativeMouseState(&mx, &my);
106 if(mb & SDL_BUTTON(1))
107 m_camera.rotation(mx, my);
108 else if(mb & SDL_BUTTON(3))
110 else if(mb & SDL_BUTTON(2))
118 m_camera.move(8.f * wheel.y);
125 reload_program(m_program,
"gkit2_tutos/tuto10.glsl");
131 glUseProgram(m_program);
145 program_uniform(m_program,
"mvpMatrix", mvp);
150 m_objet.draw(m_program);
169int main(
int argc,
char **argv )
AppTime(const int width, const int height, const int major=3, const int minor=3, const int samples=0)
constructeur, dimensions de la fenetre et version d'openGL.
int run()
execution de l'application.
representation d'un objet / maillage.
unsigned int vertex(const vec3 &p)
insere un sommet de position p, et ses attributs (s'ils sont definis par color(), texcoord(),...
Mesh & color(const vec4 &c)
definit la couleur du prochain sommet.
representation de la camera, type orbiter, placee sur une sphere autour du centre de l'objet.
int render()
a deriver pour afficher les objets. renvoie 1 pour continuer, 0 pour fermer l'application.
int quit()
a deriver pour detruire les objets openGL. renvoie -1 pour indiquer une erreur, 0 sinon.
int init()
a deriver pour creer les objets openGL. renvoie -1 pour indiquer une erreur, 0 sinon.
int window_height()
renvoie la hauteur de la fenetre de l'application.
void clear_key_state(const SDL_Keycode key)
desactive une touche du clavier.
void clear_wheel_event()
desactive l'evenement.
int key_state(const SDL_Keycode key)
renvoie l'etat d'une touche du clavier. cf la doc SDL2 pour les codes.
SDL_MouseWheelEvent wheel_event()
renvoie le dernier evenement. etat de la molette de la souris / glisser sur le pad.
int window_width()
renvoie la largeur de la fenetre de l'application.
float global_time()
renvoie le temps ecoule depuis le lancement de l'application, en millisecondes.
Color Red()
utilitaire. renvoie une couleur rouge.
Color Blue()
utilitaire. renvoie une couleur bleue.
Color Green()
utilitaire. renvoie une couleur verte.
Color White()
utilitaire. renvoie une couleur blanche.
Transform Identity()
construit la transformation identite.
Transform RotationX(const float a)
renvoie la matrice representation une rotation de angle degree autour de l'axe X.
Mesh read_mesh(const char *filename)
charge un fichier wavefront .obj et renvoie un mesh compose de triangles non indexes....
GLuint read_program(const char *filename, const char *definitions)
int program_print_errors(const GLuint program)
affiche les erreurs de compilation.
int release_program(const GLuint program)
detruit les shaders et le program.
representation d'un point 3d.