void triangle(void)
{
   gl_UniformMatrix4fv (fgProjectionMatrixIndex, 1, GL_FALSE, projectionMatrix);

   gl_BindBuffer (GL_ARRAY_BUFFER, vertexBufferName);
   gl_VertexAttribPointer (fgColorIndex, numColorComponents, GL_FLOAT, GL_FALSE,
                           stride, bufferObjectPtr (0));
   gl_VertexAttribPointer (fgVertexIndex, numVertexComponents, GL_FLOAT, GL_FALSE,
                           stride, bufferObjectPtr (sizeof(GLfloat) * numColorComponents));
   glDrawArrays(GL_TRIANGLES, 0, numElements);
   checkError ("triangle");
}
Exemple #2
0
void setAttribPointers(void) {
    glEnableVertexAttribArray(shader_map1["vNorm"]);
    //glEnableVertexAttribArray(shader_map1["vColor"]);
    //glEnableVertexAttribArray(shader_map1["vTex"]);
    glEnableVertexAttribArray(shader_map1["vPos"]);

    // bind the desired VertBufObj
    glBindBuffer(GL_ARRAY_BUFFER, vertBufObj);
    // tell OpenGL organization of vertArray and connect to GLSL variable
    glVertexAttribPointer(shader_map1["vNorm"], numNormalComponents,
                          GL_FLOAT, GL_FALSE, stride, bufferObjectPtr(0));
    glVertexAttribPointer(shader_map1["vPos"], numVertexComponents,
                          GL_FLOAT, GL_FALSE, stride,
                          bufferObjectPtr(sizeof(GLfloat) * numNormalComponents));

    checkError("setAttribPointers");
}
void triangle(void) {
    const GLvoid * i = bufferObjectPtr(0);

    glUniformMatrix4fv(fgProjectionMatrixIndex, 1, GL_FALSE, 
    		&projectionMatrix[0][0]);
    glUniformMatrix4fv(fgModelViewMatrixIndex, 1, GL_FALSE, 
    		&modelviewMatrix[0][0]);
    glUniform4fv(fgLightPositionIndex, 1, &lightPosition[0]);

    glBindBuffer(GL_ARRAY_BUFFER, vertexBufferName);
    glVertexAttribPointer(fgNormalIndex, numNormalComponents, GL_FLOAT, 
    		GL_FALSE, stride, bufferObjectPtr(0));
    glVertexAttribPointer(fgVertexIndex, numVertexComponents, GL_FLOAT, 
    		GL_FALSE, stride, 
    		bufferObjectPtr(sizeof (GLfloat) * numNormalComponents));
    glDrawArrays(GL_TRIANGLES, 0, numElements);
    checkError("triangle");
}
void MeshObj::setAttribPointers(void) {
	glEnableVertexAttribArray((*shader)["vNorm"]);
	glBindBuffer(GL_ARRAY_BUFFER, normBufObj);
	glVertexAttribPointer((*shader)["vNorm"], DIM3, GL_FLOAT, GL_FALSE, 
	    sizeof(glm::vec3), bufferObjectPtr(0));
#if 1
	if (0 != texArrObj.size()) {
		glEnableVertexAttribArray((*shader)["vTex"]);
		glBindBuffer(GL_ARRAY_BUFFER, texBufObj);
		glVertexAttribPointer((*shader)["vTex"], DIM2, GL_FLOAT, GL_FALSE, 
			sizeof(glm::vec2), bufferObjectPtr(0));
	}
#endif
    glEnableVertexAttribArray((*shader)["vPos"]);
	glBindBuffer(GL_ARRAY_BUFFER, vertBufObj);
	glVertexAttribPointer((*shader)["vPos"], DIM3, GL_FLOAT, GL_FALSE, 
	    sizeof(glm::vec3), bufferObjectPtr(0));

	checkError("MeshObj::setAttribPointers");
} // end setAttribPointers
void MeshObj::render(GLenum mode) {
	setAttribPointers();
	glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, idxBufObj);

    // render the vertices to screen as triangles
    // glDrawArrays(mode, first, count);
    //glDrawArrays(mode, 0, vertArrObj.size());
    
    // glDrawElements(mode, count, type, idxPtr);
    glDrawElements(mode, idxArrObj.size(), GL_UNSIGNED_INT, 
        bufferObjectPtr(0));
    
    disableBufObjs();
    
    checkError("MeshObj::render");
} // end render