33 GLint location= glGetUniformLocation(program,
"positions");
41 glGenVertexArrays(1, &vao);
44 glClearColor(0.2, 0.2, 0.2, 1);
48 glEnable(GL_DEPTH_TEST);
56 glDeleteVertexArrays(1, &vao);
65 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
68 glBindVertexArray(vao);
71 glUseProgram(program);
75 location= glGetUniformLocation(program,
"color");
76 glUniform4f(location, 1, 0.5, 0, 1);
90 glDrawArrays(GL_TRIANGLES, 0, 36);
96 int main(
int argc,
char **argv )
111 printf(
"[error] init failed.\n");
Context create_context(Window window, const int major, const int minor)
cree et configure un contexte opengl
const float * vertex_buffer() const
renvoie l'adresse de la position du premier sommet. permet de construire les vertex buffers openGL...
representation d'un objet / maillage.
void draw(Mesh &m, const Transform &model, const Transform &view, const Transform &projection, const GLuint texture)
applique une texture a la surface de l'objet. ne fonctionne que si les coordonnees de textures sont f...
void release()
detruit les objets openGL.
Window create_window(const int w, const int h)
creation d'une fenetre pour l'application.
GLuint read_program(const char *filename, const char *definitions)
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().
int release_program(const GLuint program)
detruit les shaders et le program.
void release_context(Context context)
detruit le contexte openGL.
int vertex_count() const
renvoie le nombre de sommets.
void release_window(Window window)
destruction de la fenetre.
int run(Window window, int(*draw)(void))
fonction principale. gestion des evenements et appel de la fonction draw de l'application.
Mesh read_mesh(const char *filename)
charge un fichier wavefront .obj et renvoie un mesh compose de triangles non indexes. utiliser glDrawArrays pour l'afficher. a detruire avec Mesh::release( ).