glColorPointer(3, GL_FLOAT, sizeof(cSMPVertex), &(Vertices[0].TSLight));
//...
glTrackMatrixNV( GL_VERTEX_PROGRAM_NV, 0, GL_MODELVIEW_PROJECTION_NV, GL_IDENTITY_NV );
glBindProgramNV( GL_VERTEX_PROGRAM_NV, g_vertexProgramID );
//...
cVector3 Temp (1 / (Light->brightness * 2.0f), 1 / (Light->brightness * 2.0f), 1 / (Light->brightness * 2.0f));
glProgramParameter4fNV( GL_VERTEX_PROGRAM_NV, 3, 0.5f, 0.5f, 0.5f, 0.0f );
glProgramParameter4fNV( GL_VERTEX_PROGRAM_NV, 4, Temp.X, Temp.Y, Temp.Z, 0.0f );
glEnable( GL_VERTEX_PROGRAM_NV );
//...
//render with vertex arrays
//Here is the vertex program and what it is supposed to do:
!!VP1.1
DP4 o[HPOS].x, c[0], v[OPOS]; # Transform the x component of the per-vertex position into clip-space
DP4 o[HPOS].y, c[1], v[OPOS]; # Transform the y component of the per-vertex position into clip-space
DP4 o[HPOS].z, c[2], v[OPOS]; # Transform the z component of the per-vertex position into clip-space
DP4 o[HPOS].w, c[3], v[OPOS]; # Transform the w component of the per-vertex position into clip-space
MAD o[COL0], v[COL0], c[4], c[3]; #cVector3 TexCoord = TSLight / (brightness * 2.0f) + 0.5f;
#glColor3fv((float*)&TexCoord);
MAD o[COL1], v[COL0], c[3], c[3]; #cVector3 SecondaryColor = TSLight * 0.5f + 0.5f;
#glSecondaryColor3fvEXT((float*)&SecondaryColor);
MOV o[TEX0], o[COL0]; #glMultiTexCoord2fvARB(GL_TEXTURE0_ARB, (float*)&TexCoord);
# glVertex3fv((float*)&Vertex);
END