DSA objects allow to use objects that can to be bound to a OpenGL binding point or "target" without binding them. This includes objects like Buffer, Texture, Renderbuffer or Framebuffer which have a target to which individual instances can be bound and operated on through the binding point. DSA objects implement (mostly) the same functions as their non-DSA counterparts but without the target parameter and the operations are invoked on the instances themselves.
For example to setup a texture object one might need to do the following:
DSATexture class allows to do things more conveniently:
In order to be able to use the DSA objects it is necessary to include the appropriate header: