CSFML needs to "flatten" the API because C doesn't understand OOP. So it creates single functions like Sprite_SetX(Sprite* this, x)
A binding simply makes these C functions accessible from D by making the necessary function definitions.
DSFML "converts" this flat API back to an OO one so that you again have a Sprite class with methods and so on