The thing is, all buffer types are inherently equal (or at least that's how I understand it), so grouping texture and TF under `Buffer`, but having separate classes for vertex and index buffers feels a bit arbitrary. Also, currently texture and TF buffers have no parameters, but this is very likely to change, so `VertexBuffer` constructor will have to reflect that.
What I propose is to have a concrete class for each single target (`VertexBuffer`, `IndexBuffer`, etc) and to treat multi-target buffers as an advanced use case. And I think it's ok to have some additional abstractions for the "advanced" use case.
Oh, and it is not mandatory to call `acquire` like that, it's just me.