I have a IChessPIece class that encapsulates an sf::Sprite. sf::Sprite has its own interface. Would it be a better idea to have IChessPiece create a interface where it delegates its job to sf::Sprite, or would it be better to just returned sf::Sprite by reference? For example,
class IChessPiece{
void animateTo(...);
void showPossibleMoveLoaction(GameBoard& board);
The first. You should be composing, not encapsulating here - there is no reason why IChessPiece should have to wrap all the methods of the Sprite class.