3 #include "shader_manager.h"
4 #include "opengl/shader-gl.h"
6 extern bool use_vulkan;
8 ShaderManager::ShaderManager() {}
9 ShaderManager::~ShaderManager() {}
11 void ShaderManager::add_shader(Shader *sdr, const char *name)
16 Shader *ShaderManager::load_shader(const char *name, SType type)
18 std::map<std::string, Shader *>::const_iterator it;
19 it = shaders.find(name);
21 if(it != shaders.end()) {
27 // sdr = new ShaderVK;
33 std::string fname = path.empty() ? std::string(name) : path + "/" + std::string(name);
35 if(!sdr->load(fname.c_str(), type)) {
40 add_shader(sdr, name);
44 void ShaderManager::delete_shaders()
46 std::map<std::string, Shader *>::iterator it;
47 for(it=shaders.begin(); it != shaders.end(); it++) {
52 ShaderProgram *ShaderManager::create_shader_program(const char *vname, const char *fname)
54 Shader *vsdr = load_shader(vname, SDR_VERTEX);
58 Shader *fsdr = load_shader(fname, SDR_FRAGMENT);
69 sprog = new ShaderProgramGL;
72 sprog->attach_shader(vsdr);
73 sprog->attach_shader(fsdr);
83 void ShaderManager::set_path(const char *path)
88 this->path = std::string(path);