title: Performance and background images for OpenGL ES/iPhone
body: <p>I'm developing a 2D game for the iPhone using OpenGL ES and I'd like to use a 320x480 bitmapped image as a persistent background. </p>
  
  <p>My first thought was to create a 320x480 quad and then map a texture onto it that represents the background. So... I created a 512x512 texture with a 320x480 image on it. Then I mapped that to the 320x480 quad. </p>
  
  <p>I draw this background every frame and then draw animated sprites on top of it. This works fine except that the drawing of all of these objects (background + sprites) is too slow. </p>
  
  <p>I did some testing and discovered that my slowdown is in the pixel pipeline. Not surprisingly, the large background image is the main culprit. To prove this, I removed the background draw and everything else rendered very fast. </p>
  
  <p>I am looking for advice on how to keep my background and also improve performance. </p>
  
  <p>Here's some more info:</p>
  
  <p>1) I am currently testing on the Simulator (still waiting on Apple for the license)</p>
  
  <p>2) The background is a PVR texture squeezed down to 128k</p>
  
  <p>3) I had hoped that there might be a way to cache this background into a color buffer but haven't had any luck with that. that may be due to my inexperience with OpenGL ES or it just might be a stupid idea that won't work :)</p>
  
  <p>4) I realize that the entire background does not always have to refresh, just the parts that have been drawn over by the moving sprites. I started to look into techniques for refreshing (as necessary) parts of the the background either as separate textures or with a scissor box, however this seems less than elegant. </p>
  
  <p>Any tips/advice would be greatly appreciated...</p>
  
  <p>Thank you.</p>