title: glFlush() vs [[self openGLContext] flushBuffer] vs glFinish vs glSwapAPPLE vs aglSwapBuffers
body: <p>There are several similar OpenGL operations when working with an NSOpenGLView:</p>
  
  <ul>
  <li><code>glFlush()</code></li>
  <li><code>[[self openGLContext] flushBuffer]</code></li>
  <li><code>glFinish()</code></li>
  <li>glSwapAPPLE</li>
  <li>aglSwapBuffers</li>
  </ul>
  
  <p>When should each of these be used?</p>
  
  <p>In a sample application, Apple uses <code>glFlush()</code>, followed by <code>[[self openGLContext] flushBuffer]</code>.  Why do they use both of these?  </p>
  
  <p>What would be the right approach, if I am using a double-buffered Cocoa NSOpenGLView?</p>