projects
/
demo
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
backup
[demo]
/
src
/
shader_manager.cc
diff --git
a/src/shader_manager.cc
b/src/shader_manager.cc
index
87c0451
..
3bb741c
100644
(file)
--- a/
src/shader_manager.cc
+++ b/
src/shader_manager.cc
@@
-1,10
+1,10
@@
#include <map>
#include <map>
+#include "gfxapi.h"
+
#include "shader_manager.h"
#include "opengl/shader-gl.h"
#include "shader_manager.h"
#include "opengl/shader-gl.h"
-extern bool use_vulkan;
-
ShaderManager::ShaderManager() {}
ShaderManager::~ShaderManager() {}
ShaderManager::ShaderManager() {}
ShaderManager::~ShaderManager() {}
@@
-22,18
+22,11
@@
Shader *ShaderManager::load_shader(const char *name, SType type)
return it->second;
}
return it->second;
}
- Shader *sdr;
- if(use_vulkan) {
- // sdr = new ShaderVK;
- }
- else {
- sdr = new ShaderGL;
- }
+ Shader *sdr = gfx_create_shader();
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;
}
@@
-52,7
+45,10
@@
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";
+ path = std::string(gfx_get_shader_path());
+
+ if(!vname || !fname)
+ return 0;
Shader *vsdr = load_shader(vname, SDR_VERTEX);
if(!vsdr)
Shader *vsdr = load_shader(vname, SDR_VERTEX);
if(!vsdr)
@@
-62,15
+58,7
@@
ShaderProgram *ShaderManager::create_shader_program(const char *vname, const cha
if(!fsdr)
return 0;
if(!fsdr)
return 0;
- ShaderProgram *sprog;
-
- if(use_vulkan) {
- // TODO
- return 0;
- }
- else {
- sprog = new ShaderProgramGL;
- }
+ ShaderProgram *sprog = gfx_create_shader_program();
if(!sprog->create()) {
return 0;
if(!sprog->create()) {
return 0;
@@
-93,4
+81,4
@@
void ShaderManager::set_path(const char *path)
this->path.clear();
else
this->path = std::string(path);
this->path.clear();
else
this->path = std::string(path);
-}
\ No newline at end of file
+}