Merge: roberto -> main
This commit is contained in:
25
src/mesh.c
25
src/mesh.c
@@ -4,28 +4,34 @@
|
||||
|
||||
struct obj
|
||||
{
|
||||
unsigned int vertex, vao, vbo;
|
||||
unsigned int vertex, vao, n_vbo, d_vbo;
|
||||
};
|
||||
|
||||
mesh_t create_mesh( narray_float_t mesh )
|
||||
mesh_t create_mesh( float * d, float * n )
|
||||
{
|
||||
struct obj * p;
|
||||
|
||||
p=malloc(sizeof(struct obj));
|
||||
|
||||
p->vertex=(*mesh)/3;
|
||||
p->vertex=(*d)/3;
|
||||
|
||||
glGenVertexArrays( 1, &p->vao );
|
||||
glGenBuffers( 1, &p->vbo );
|
||||
|
||||
glGenBuffers( 1, &p->d_vbo );
|
||||
glBindVertexArray( p->vao );
|
||||
glBindBuffer( GL_ARRAY_BUFFER, p->vbo );
|
||||
glBufferData( GL_ARRAY_BUFFER, (p->vertex*3)*sizeof(int), mesh+1,
|
||||
glBindBuffer( GL_ARRAY_BUFFER, p->d_vbo );
|
||||
glBufferData( GL_ARRAY_BUFFER, p->vertex*3*sizeof(float), d+1,
|
||||
GL_STATIC_DRAW );
|
||||
|
||||
glVertexAttribPointer( 0,3,GL_FLOAT, 0, 3*sizeof(int), NULL );
|
||||
glVertexAttribPointer( 0,3,GL_FLOAT, 0, 3*sizeof(float), NULL );
|
||||
glEnableVertexAttribArray(0);
|
||||
|
||||
glGenBuffers( 1, &p->n_vbo );
|
||||
glBindBuffer( GL_ARRAY_BUFFER, p->n_vbo );
|
||||
glBufferData( GL_ARRAY_BUFFER, p->vertex*3*sizeof(float), n+1,
|
||||
GL_STATIC_DRAW );
|
||||
glVertexAttribPointer( 1,3,GL_FLOAT, 0, 3*sizeof(float), NULL );
|
||||
glEnableVertexAttribArray(1);
|
||||
|
||||
return p;
|
||||
}
|
||||
|
||||
@@ -34,7 +40,8 @@ void destroy_mesh( mesh_t p )
|
||||
struct obj * obj ;
|
||||
obj = p;
|
||||
glDeleteVertexArrays( 1, &obj->vao );
|
||||
glDeleteBuffers( 1, &obj->vbo );
|
||||
glDeleteBuffers( 1, &obj->d_vbo );
|
||||
glDeleteBuffers( 1, &obj->n_vbo );
|
||||
free( p );
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user