projects
/
demo
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
backup before trying terrain change
[demo]
/
src
/
shader.cc
diff --git
a/src/shader.cc
b/src/shader.cc
index
b8ca8ef
..
2e530ec
100644
(file)
--- a/
src/shader.cc
+++ b/
src/shader.cc
@@
-1,8
+1,7
@@
#include <assert.h>
#include <stdio.h>
#include <assert.h>
#include <stdio.h>
-#include "shader.h"
-ShaderProgram *current_program;
+#include "shader.h"
Shader::Shader() {}
Shader::~Shader()
Shader::Shader() {}
Shader::~Shader()
@@
-10,7
+9,7
@@
Shader::~Shader()
type = SDR_UNKNOWN;
}
type = SDR_UNKNOWN;
}
-bool Shader::load(const char *fname, SType type)
+bool Shader::load(const char *fname, ShaderType type)
{
switch(type) {
case SDR_VERTEX:
{
switch(type) {
case SDR_VERTEX:
@@
-26,24
+25,17
@@
bool Shader::load(const char *fname, SType type)
unsigned int fsz;
if(!(fp = fopen(fname, "rb"))) {
unsigned int fsz;
if(!(fp = fopen(fname, "rb"))) {
- fprintf(stderr, "Failed to open shader: %s.\n", fname);
-
+ fprintf(stderr, "Failed to open shader: %s\n", fname);
return false;
}
fseek(fp, 0, SEEK_END);
fsz = ftell(fp);
rewind(fp);
return false;
}
fseek(fp, 0, SEEK_END);
fsz = ftell(fp);
rewind(fp);
- char *buf;
- if(!(buf = new char[fsz + 1])) {
- fprintf(stderr, "Failed to allocate %u buffers.\n", fsz + 1);
- fclose(fp);
-
- return false;
- }
+ char *buf = new char[fsz + 1];
if(fread(buf, 1, fsz, fp) < fsz) {
if(fread(buf, 1, fsz, fp) < fsz) {
- fprintf(stderr, "Failed to read shader: %s.\n", fname);
+ fprintf(stderr, "Failed to read shader: %s\n", fname);
delete buf;
fclose(fp);
delete buf;
fclose(fp);
@@
-52,14
+44,16
@@
bool Shader::load(const char *fname, SType type)
buf[fsz] = '\0';
fclose(fp);
buf[fsz] = '\0';
fclose(fp);
- create(buf, fsz, fname);
- return true;
+ return create(buf, fsz, fname);
}
}
-ShaderProgram::ShaderProgram()
+ShaderType Shader::get_type()
{
{
- current_program = 0;
+ return type;
+}
+ShaderProgram::ShaderProgram()
+{
int len = sizeof shaders / sizeof *shaders;
for(int i=0; i<len; ++i) {
shaders[i] = 0;
int len = sizeof shaders / sizeof *shaders;
for(int i=0; i<len; ++i) {
shaders[i] = 0;
@@
-74,14
+68,3
@@
ShaderProgram::~ShaderProgram()
delete shaders[i];
}
}
delete shaders[i];
}
}
-
-// void ShaderProgram::add_shader(Shader *sdr)
-// {
-// assert(sdr->type < sizeof shaders / sizeof *shaders);
-// shaders[sdr->type] = sdr;
-// }
-
-ShaderProgram *get_current_program()
-{
- return current_program;
-}
\ No newline at end of file