title: Opengl 2D performance tips
body: <p>I'm currently developing a Touhou-esque bullet hell shooter game. The screen will be absolutely filled with bullets (so instancing is what I want here), but I want this to work on older hardware, so I'm doing something along the lines of this at the moment, there are not colors, textures, etc. yet until I figure this out.</p>
  
  <pre><code>glVertexPointer(3, GL_FLOAT, 0, SQUARE_VERTICES);
  for (int i = 0; i &lt; info.centers.size(); i += 3) {
      glPushMatrix();
      glTranslatef(info.centers.get(i), info.centers.get(i + 1), info.centers.get(i + 2));
      glScalef(info.sizes.get(i), info.sizes.get(i + 1), info.sizes.get(i + 2));
      glDrawElements(GL_QUADS, 4, GL_UNSIGNED_SHORT, SQUARE_INDICES);
      glPopMatrix();
  }
  </code></pre>
  
  <p>Because I want this to work on old hardware I'm trying to avoid shaders and whatnot. The setup up there fails me on about 80 polygons. I'm looking to get at least a few hundred out of this. <code>info</code> is a struct which has all the goodies for rendering, nothing much to it besides a few vectors.</p>
  
  <p>I'm pretty new to OpenGL, but I at least heard and tried out everything that can be done, not saying I'm good with it at all though. This game is a 2D game, I switched from SDL to Opengl because it would make for some fancier effects easier. Obviously SDL works differently, but I never had this problem using it.</p>
  
  <p>It boils down to this, I'm clearly doing something wrong here, so how can I implement instancing for old hardware (OpenGL 1.x) correctly? Also, give me any tips for increasing performance.</p>