X-Git-Url: http://git.mutantstargoat.com?p=demo;a=blobdiff_plain;f=src%2Fshader_manager.cc;h=87c0451f0c989f36c2dbb8a115da3fdb2c8b2d40;hp=929d57abbe69258a18aef581f3dfe6a21daecca4;hb=63d7f3b0e70ab5e3d530c579b1881967c96b0b92;hpb=d03d86eb8489e7ab4c5460cea5ee265b0c1ee487 diff --git a/src/shader_manager.cc b/src/shader_manager.cc index 929d57a..87c0451 100644 --- a/src/shader_manager.cc +++ b/src/shader_manager.cc @@ -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;