Bug fixed
1st the need glEnableVertexAttribArray(vertexAtributeIndex)
vertexAtributeIndex is read from the shader, I hard code here one can use the following code:
======================================================================================================================
from http://www.opengpu.org/forum.php?mod=viewthread&tid=4301
然后再应用程序中：
glBindBuffer(GL_ARRAY_BUFFER, m_vboID[0]);
int pos = glGetAttribLocation(hReturn, "in_Position");
glBufferData(GL_ARRAY_BUFFER, 3*sizeof(VertexPosition), vertices, GL_STATIC_DRAW);
glVertexAttribPointer(pos, 3, GL_FLOAT, GL_FALSE, 0, 0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glEnableVertexAttribArray(pos);   //pos = 1

glBindBuffer(GL_ARRAY_BUFFER, m_vboID[1]);
pos = glGetAttribLocation(hReturn, "in_Color");
glBufferData(GL_ARRAY_BUFFER, 3*sizeof(VertexColor), color, GL_STATIC_DRAW);
glVertexAttribPointer(pos, 3, GL_FLOAT, GL_FALSE, 0, 0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glEnableVertexAttribArray(pos);  //pos = 0

And he settle this bug by

我现在的做法是，在GL创建context的时候创建一个stupid buffer，绑在GL_ARRAY_BUFFER上，然后送个NULL进去。然后每产生一个新的VAO，先立刻把这个stupid buffer用 glVertexAttribPointer设置到0号位，之后如果有某个attribute又被设置在0号位，那自然就冲掉了stupid buffer。如果没有，那之前stupid buffer也设置到0号位了，后面就没问题了
======================================================================================================================

2nd I foget to set the this->shader_programme = shaderlog->GetProgrammeIdx(); programme back!!!