3297d10287
... apart from SHM. EGL and dmabuf buffers already have a gl_buffer_state created for them when we first attach the weston_buffer. By turning gl_surface_state::buffer into a pointer, we can just reference rather than inline the gl_buffer_state. SHM buffers are special, in that we don't keep individual copies of them within the GL renderer. Instead, the GL surface has a texture allocated with a shadow copy of the most up-to-date surface content. Handle this by allocating and destroying gl_buffer_state every time we need to respecify textures or somehow meaningfully change the parameters. Signed-off-by: Daniel Stone <daniels@collabora.com>