projects
/
demo
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
quick backup
[demo]
/
src
/
shader_manager.cc
diff --git
a/src/shader_manager.cc
b/src/shader_manager.cc
index
929d57a
..
87c0451
100644
(file)
--- 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)) {
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;
}
delete sdr;
return 0;
}
@@
-51,6
+52,8
@@
void ShaderManager::delete_shaders()
ShaderProgram *ShaderManager::create_shader_program(const char *vname, const char *fname)
{
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;
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;
}
sprog = new ShaderProgramGL;
}
+ if(!sprog->create()) {
+ return 0;
+ }
+
sprog->attach_shader(vsdr);
sprog->attach_shader(fsdr);
sprog->attach_shader(vsdr);
sprog->attach_shader(fsdr);
-
+
if(!sprog->link()) {
delete sprog;
return 0;
if(!sprog->link()) {
delete sprog;
return 0;