quick backup
[demo] / src / shader_manager.cc
index 929d57a..87c0451 100644 (file)
@@ -33,6 +33,7 @@ Shader *ShaderManager::load_shader(const char *name, SType type)
        std::string fname = path.empty() ? std::string(name) : path + "/" + std::string(name);
 
        if(!sdr->load(fname.c_str(), type)) {
+               fprintf(stderr, "Failed to load shader: %s.\n", fname.c_str());
                delete sdr;
                return 0;
        }
@@ -51,6 +52,8 @@ void ShaderManager::delete_shaders()
 
 ShaderProgram *ShaderManager::create_shader_program(const char *vname, const char *fname)
 {
+       path = use_vulkan ? "vk_shaders" : "gl_shaders";
+
        Shader *vsdr = load_shader(vname, SDR_VERTEX);
        if(!vsdr)
                return 0;
@@ -69,9 +72,13 @@ ShaderProgram *ShaderManager::create_shader_program(const char *vname, const cha
                sprog = new ShaderProgramGL;
        }
 
+       if(!sprog->create()) {
+               return 0;
+       }
+
        sprog->attach_shader(vsdr);
        sprog->attach_shader(fsdr);
-       
+
        if(!sprog->link()) {
                delete sprog;
                return 0;