Не работают пользовательские функции "безопасной" загрузки картинки в 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, а переменная все равно остается пустой.

В чем здесь может быть проблема?


Ответы (0 шт):