X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=laserbrain_demo;a=blobdiff_plain;f=src%2Fmesh.cc;h=e17b909a0226fb02715ab59149f8112abe6146be;hp=beb5b4940a7bd6ecafb58cc3081ab92b38cada79;hb=8137121400748ee8afb1608253aae15323c5e3a2;hpb=516e9be0443cfd7f844feb9b8299f909075b7c3c diff --git a/src/mesh.cc b/src/mesh.cc index beb5b49..e17b909 100644 --- a/src/mesh.cc +++ b/src/mesh.cc @@ -9,15 +9,7 @@ #define USE_OLDGL bool Mesh::use_custom_sdr_attr = true; -int Mesh::global_sdr_loc[NUM_MESH_ATTR] = { 0, 1, 2, 3, 4, 5, 6 }; -/* - (int)SDR_ATTR_VERTEX, - (int)SDR_ATTR_NORMAL, - (int)SDR_ATTR_TANGENT, - (int)SDR_ATTR_TEXCOORD, - (int)SDR_ATTR_COLOR, - -1, -1}; -*/ +int Mesh::global_sdr_loc[NUM_MESH_ATTR] = { 0, 1, 2, 3, 4, 5, 6, 7 }; unsigned int Mesh::intersect_mode = ISECT_DEFAULT; float Mesh::vertex_sel_dist = 0.01; float Mesh::vis_vecsize = 1.0; @@ -680,6 +672,13 @@ bool Mesh::pre_draw() const glColorPointer(vattr[MESH_ATTR_COLOR].nelem, GL_FLOAT, 0, 0); glEnableClientState(GL_COLOR_ARRAY); } + if(vattr[MESH_ATTR_TEXCOORD2].vbo_valid) { + glClientActiveTexture(GL_TEXTURE1); + glBindBuffer(GL_ARRAY_BUFFER, vattr[MESH_ATTR_TEXCOORD2].vbo); + glTexCoordPointer(vattr[MESH_ATTR_TEXCOORD2].nelem, GL_FLOAT, 0, 0); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glClientActiveTexture(GL_TEXTURE0); + } #endif } glBindBuffer(GL_ARRAY_BUFFER, 0); @@ -725,6 +724,11 @@ void Mesh::post_draw() const if(vattr[MESH_ATTR_COLOR].vbo_valid) { glDisableClientState(GL_COLOR_ARRAY); } + if(vattr[MESH_ATTR_TEXCOORD2].vbo_valid) { + glClientActiveTexture(GL_TEXTURE1); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); + glClientActiveTexture(GL_TEXTURE0); + } #endif } } @@ -1087,7 +1091,7 @@ bool Mesh::dump(FILE *fp) const } fprintf(fp, "VERTEX ATTRIBUTES\n"); - static const char *label[] = { "pos", "nor", "tan", "tex", "col", "bw", "bid" }; + static const char *label[] = { "pos", "nor", "tan", "tex", "col", "bw", "bid", "tex2" }; static const char *elemfmt[] = { 0, " %s(%g)", " %s(%g, %g)", " %s(%g, %g, %g)", " %s(%g, %g, %g, %g)", 0 }; for(int i=0; i<(int)nverts; i++) {