#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;
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);
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
}
}
}
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++) {