This lets compositors avoid re-rendering the entire buffer when only the
outside of the squares changed.
If glfwGetBufferAge() returns 0 for any reason (the buffer was just
created, there was an error, or the underlying API doesn’t track buffer
age), we swap the entire buffer again.