Пример #1
0
void OpenGLRenderer::drawIndexed(Primitive primitive, const TexturedVertex * vertices, size_t nvertices, unsigned short * indices, size_t nindices) {
	
	beforeDraw<TexturedVertex>();
	
	if(useVertexArrays && shader) {
		
		glBindBuffer(GL_ARRAY_BUFFER, GL_NONE);
		
		setVertexArray(vertices, vertices);
		
		glDrawRangeElements(arxToGlPrimitiveType[primitive], 0, nvertices - 1, nindices, GL_UNSIGNED_SHORT, indices);
		
	} else {
		
		glBegin(arxToGlPrimitiveType[primitive]);
		
		for(size_t i = 0; i < nindices; i++) {
			renderVertex(vertices[indices[i]]);
		}
		
		glEnd();
		
	}
	
	CHECK_GL;
}
void KVFModel::renderOverlay(double scale) const
{
	glPushAttrib(GL_ENABLE_BIT|GL_CURRENT_BIT|GL_LINE_BIT);
	glLineWidth(1.5);
	glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
	glColor3f(1,1,0);
	for (auto it = pinnedVertexes.begin(); it != pinnedVertexes.end(); it++)
		renderVertex(*it, scale);
    glPopAttrib();
}