 <p>Reto Koradi already mentioned copy semantics. Another thing to keep in mind is that OpenGL allows context sharing, i.e. some objects are shared between the OpenGL contexts and deleting in one context deletes it from all contexts. Objects transcending shared contexts are</p> <ul> <li>textures</li> <li>buffer objects that are bound using glBindBuffer</li> <li>render buffers</li> </ul> <p>among the objects <em>not</em> transcending shared contexts are</p> <ul> <li>framebuffer objects</li> <li>vertex array objects</li> </ul>