I usually bind the zero target after doing some operation to a buffer. The purpose is to catch errors. Is this a reasonable strategy?
Does it have any performance problems?
Running gDEBugger, it tells me that glBindBuffer(XXX, 0) is deprecated:
The function glBindBuffer uses an object that was not generated by OpenGL. This feature was marked as deprecated in OpenGL version 3.0 and was removed from OpenGL at version 3.1
Looking at the OpenGL specification, it looks like 0 is allowed:
The value zero is reserved, but there is no default buffer object for each buffer object target. Instead, buffer set to zero effectively unbinds any buffer object previously bound, and restores client memory usage for that buffer object target (if supported for that target).
While buffer object name zero is bound, as in the initial state, attempts to modify or query state on the target to which it is bound generates an GL_INVALID_OPERATION error.