title: OpenGL drawing the same polygon many times in multiple places
body: <p>In my opengl app, I am drawing the same polygon approximately 50k times but at different points on the screen. In my current approach, I do the following:</p>
  
  <ul>
  <li>Draw the polygon once into a display list</li>
  <li>for each instance of the polygon, push the matrix, translate to that point, scale and rotate appropriate (the scaling of each point will be the same, the translation and rotation will not).</li>
  </ul>
  
  <p>However, with 50k polygons, this is 50k push and pops and computations of the correct matrix translations to move to the correct point.</p>
  
  <p>A coworker of mine also suggested drawing the entire scene into a buffer and then just drawing the whole buffer with a single translation. The tradeoff here is that we need to keep all of the polygon vertices in memory rather than just the display list, but we wouldn't need to do a push/translate/scale/rotate/pop for each vertex.</p>
  
  <p>The first approach is the one we currently have implemented, and I would prefer to see if we can improve that since it would require major changes to do it the second way (however, if the second way is much faster, we can always do the rewrite).</p>
  
  <p>Are all of these push/pops necessary? Is there a faster way to do this? And should I be concerned that this many push/pops will degrade performance?</p>