When tracing, just before every drawcall, ApiTrace inserts gl*Pointer()
calls into the stream on attributes it detected as resident in user-mem
(instead of in a VBO).
ApiTrace wasn't inserting a glBindBuffer(GL_ARRAY_BUFFER, 0) and
glBindBuffer(GL_ARRAY_BUFFER, prevBuf) around those auto-generated
calls. Thus, it misrepresented pointers as huge offsets into the
currently bound VBO.
Thanks to idinev for spotting and diagnosing this issue. This achieves
the same result as idinev's fix in issue #222, but from the trace side.
Some OpenGL applications that use vertex arrays in user memory were
exausting all memory with bound buffers. This change enables retrace to
Merit for the idea goes to idinev, in issue #222. This implemetation
limits total size of bound blobs, instead of total number.