{ char *memory; glBufferData (GL_PIXEL_UNPACK_BUFFER_ARB, 640 * 480 * 4, NULL, GL_STREAM_DRAW); memory = glMapBuffer (GL_PIXEL_UNPACK_BUFFER_ARB, GL_WRITE_ONLY); memcpy (memory, rgbpage, 640 * 480 * 4); glUnmapBuffer (GL_PIXEL_UNPACK_BUFFER_ARB); glTexSubImage2D (GL_TEXTURE_RECTANGLE_ARB, 0, 0, 0, 640, 480, GL_BGRA, GL_UNSIGNED_BYTE, 0); glBegin (GL_QUADS); glTexCoord2f(0.0f, 0.0f); glVertex2f(0.0f, 0.0f); glTexCoord2f(1.0f, 0.0f); glVertex2f(640.0f, 0.0f); glTexCoord2f(1.0f, 1.0f); glVertex2f(640.0f, 480.0f); glTexCoord2f(0.0f, 1.0f); glVertex2f(0.0f, 480.0f); glEnd (); }