You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
623 B
28 lines
623 B
#pragma once
|
|
#include <cstdint>
|
|
#include <vector>
|
|
#include <string>
|
|
#include <SFML/Graphics.hpp>
|
|
#include <unordered_map>
|
|
#include <memory>
|
|
#include "matrix.hpp"
|
|
#include <nlohmann/json.hpp>
|
|
|
|
namespace shaders {
|
|
struct Record {
|
|
std::string name;
|
|
std::string file_name;
|
|
std::shared_ptr<sf::Shader> ptr = nullptr;
|
|
};
|
|
|
|
struct ShaderManager {
|
|
std::unordered_map<std::string, Record> shaders;
|
|
};
|
|
|
|
std::shared_ptr<sf::Shader> get(const std::string& name);
|
|
void init();
|
|
bool load_shader(std::string& name, nlohmann::json& settings);
|
|
bool updated(int my_version);
|
|
int reload();
|
|
int version();
|
|
}
|
|
|