intravenous
diff src/geom.cc @ 3:94d4c60af435
some progress
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sun, 22 Apr 2012 03:35:18 +0300 |
parents | 3ea290d35984 |
children |
line diff
1.1 --- a/src/geom.cc Sat Apr 21 23:03:36 2012 +0300 1.2 +++ b/src/geom.cc Sun Apr 22 03:35:18 2012 +0300 1.3 @@ -7,7 +7,7 @@ 1.4 #define ELEM_TYPE GL_DOUBLE 1.5 #endif 1.6 1.7 -void draw_mesh(unsigned int prim, int num_verts, const Vertex *vbuf, const unsigned int *ibuf) 1.8 +void draw_mesh(unsigned int prim, int num_verts, const Vertex *vbuf, const unsigned int *ibuf, int attr_tang_loc) 1.9 { 1.10 glEnableClientState(GL_VERTEX_ARRAY); 1.11 glVertexPointer(3, ELEM_TYPE, sizeof *vbuf, &vbuf->pos); 1.12 @@ -18,6 +18,11 @@ 1.13 glEnableClientState(GL_TEXTURE_COORD_ARRAY); 1.14 glTexCoordPointer(2, ELEM_TYPE, sizeof *vbuf, &vbuf->tc); 1.15 1.16 + if(attr_tang_loc >= 0) { 1.17 + glEnableVertexAttribArrayARB(attr_tang_loc); 1.18 + glVertexAttribPointerARB(attr_tang_loc, 3, ELEM_TYPE, GL_FALSE, sizeof *vbuf, &vbuf->tang); 1.19 + } 1.20 + 1.21 if(ibuf) { 1.22 glDrawElements(prim, num_verts, GL_UNSIGNED_INT, ibuf); 1.23 } else { 1.24 @@ -27,6 +32,10 @@ 1.25 glDisableClientState(GL_VERTEX_ARRAY); 1.26 glDisableClientState(GL_NORMAL_ARRAY); 1.27 glDisableClientState(GL_TEXTURE_COORD_ARRAY); 1.28 + 1.29 + if(attr_tang_loc >= 0) { 1.30 + glDisableVertexAttribArrayARB(attr_tang_loc); 1.31 + } 1.32 #if 0 1.33 glBegin(GL_QUADS); 1.34 for(int i=0; i<count; i++) {