sf::Texture texture
на стеке создается. Соответственно, она уничтожается при выходе за свои границы видимости. Вам надо создавать переменную в куче через new, а затем удалять ее через delete. Ну или использовать умные указатели, навроде std::shared_ptr