PyOpenGL docs say:
Because of the way OpenGL and ctypes handle, for instance, pointers, to array data, it is often necessary to ensure that a Python data-structure is retained (i.e. not garbage collected). This is done by storing the data in an array of data-values that are indexed by a context-specific key. The functions to provide this functionality are provided by the OpenGL.contextdata module.
When exactly is it the case?
One situation I've got in my mind is client-side vertex arrays back from OpenGL 1, but they have been replaced by buffer objects for years. A client side array isn't required any more after a buffer object is filled (= right after glBufferData
returns, I pressume).
Are there any scenarios I'm missing?
Are there any scenarios I'm missing?
Buffer mappings obtained through glMapBuffer