a trick that I do to have efficient particle systems with circles is to use an ofMesh with mode set to OF_PRIMITIVE_POINTS and call
glEnable(GL_POINT_SMOOTH);
glPointSize(sizeOfPoint);
this way I draw all particles at once which is much better then calling ofCircle a bunch of times.
It's quite efficient and simple, saves you from going to the trouble of making a geometry shader or use transform feedbacks.