Не работают пользовательские функции "безопасной" загрузки картинки в SFML/C++
Требовалось сделать возможность загружать графические файлы с помощью своей функции, которая бы предотвращала спам в консоль если нужного файла не было по указанному пути и подставляла другой .png файл вместо отсутствующего. Функции выглядят вот так:
SafeLoadFromFile.cpp:
#include <SFML/Graphics/Texture.hpp>
#include <SFML/Graphics/Image.hpp>
#include <String>
#include <fstream>
void SafeLoadTextureFromFile(sf::Texture texture, std::string inputPath) {
std::string validPath = "src/resources/textures/error_missing.png";
std::ifstream file;
file.open(inputPath);
if (file) validPath = inputPath;
file.close();
texture.loadFromFile(validPath);
}
void SafeLoadImageFromFile(sf::Image image, std::string inputPath) {
std::string validPath = "src/resources/textures/error_missing.png";
std::ifstream file;
file.open(inputPath);
if (file) validPath = inputPath;
file.close();
image.loadFromFile(validPath);
}
SafeLoadFromFile.h:
#ifndef SAFELOADTEXTUREFROMFILE_H
#define SAFELOADTEXTUREFROMFILE_H
extern void SafeLoadTextureFromFile(sf::Texture texture, std::string path);
extern void SafeLoadImageFromFile(sf::Image image, std::string inputPath);
#endif
При попытке загрузки в тестовые переменные они остаются пустыми (тестировал через std::cout << TestImage.getSize().x << " " << TestImage.getSize().y;). Никаких ошибок я не получаю, метод loadFromFile в функции возвращает true, а переменная все равно остается пустой.
В чем здесь может быть проблема?