title: copy texture to another texture use glcopyteximage2d
body: <p>I use the frame buffer to draw the graphics to the texture, and then I want to copy the content of this texture to another texture. These two textures were created in different gl contexts.</p>
  <p>There is a method that works, but the performance is relatively poor. First use glReadPixels to read the data from the frame buffer, then de-premultiply (because the data in the frame buffer is pre-multiplied), and then use glTexImage2D to transfer the data to another texture.</p>
  <p>There are suggestions on the Internet to use glCopyTexImage2D. But after I tried it, I found that the texture was copied and pre-multiplied again, causing the translucent part to render abnormally.</p>
  <pre><code>[EAGLContext setCurrentContext:sourceCtx];
  glBindFramebuffer(GL_FRAMEBUFFER, sourceFbo);
  glBindTexture(GL_TEXTURE_2D, targetTexture);
  glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, w, h, 0);
  glBindFramebuffer(GL_FRAMEBUFFER, 0);
  glBindTexture(GL_TEXTURE_2D, 0);
  [EAGLContext setCurrentContext:targetCtx];
  </code></pre>
  <p>The pixels read from openGL are premultiplied, so does the data passed in through the glTexImage2D/glCopyTexImage2D method have to be unpremultiplied?</p>