diff options
Diffstat (limited to 'src/shader/util.h')
-rw-r--r-- | src/shader/util.h | 43 |
1 files changed, 5 insertions, 38 deletions
diff --git a/src/shader/util.h b/src/shader/util.h index 7aec674..31224e9 100644 --- a/src/shader/util.h +++ b/src/shader/util.h @@ -1,46 +1,13 @@ #pragma once -#include <iostream> +#include <string> -namespace util { - -GLint getUniform(GLuint program, const std::string& name) { - const GLint uniform = glGetUniformLocation(program, name.c_str()); - if ( uniform == -1 ) { - std::cerr << "Could not bind uniform " << name << std::endl; - } - return uniform; -} - -GLint compileShader(const std::string& source, GLenum type) { - GLint shader = glCreateShader(type); +#include <GL/glew.h> - if ( !shader ) { - std::cerr << "Cannot create a shader of type " << type << std::endl; - exit(-1); - } - - const char* source_data = source.c_str(); - const int source_length = source.size(); - - glShaderSource(shader, 1, &source_data, &source_length); - glCompileShader(shader); +namespace util { - GLint compiled; - glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled); - if ( !compiled ) { - std::cerr << "Cannot compile shader" << std::endl; - GLint maxLength = 0; - glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &maxLength); - std::vector<GLchar> errorLog(maxLength); - glGetShaderInfoLog(shader, maxLength, &maxLength, &errorLog[0]); - for( auto c : errorLog ) { - std::cerr << c; - } - std::cerr << std::endl; - } +GLint getUniform(GLuint program, const std::string& name); - return shader; -} +GLint compileShader(const std::string& source, GLenum type); } |