Fix wrong glBuffer usage
Compare changes
On some GL implementations (mesa software rendering, some AMD cards on Linux), picking would stop working when switching between pick targets.
The previous logic only updates a buffer when deemed necessary, however in any case it is first invalidated via glBufferData.
I suppose nvidia graphics, where this worked, did not clear the buffer and with some luck we got an unchanged buffer.
Fix: only use glBufferData if we actually need to change the buffer.
The same applies to the regular getBuffer() member function. Maybe this is responsible for some weird render bugs I have observed in the past.