From 267bebfc227c94f543a39e2aa75fb101bc06932e Mon Sep 17 00:00:00 2001 From: Vegard Storheil Eriksen Date: Fri, 21 May 2010 19:24:51 +0200 Subject: Moved engine-sources to seperate subdirectory. --- shader.cpp | 91 -------------------------------------------------------------- 1 file changed, 91 deletions(-) delete mode 100644 shader.cpp (limited to 'shader.cpp') diff --git a/shader.cpp b/shader.cpp deleted file mode 100644 index 04aa031..0000000 --- a/shader.cpp +++ /dev/null @@ -1,91 +0,0 @@ -#include -#include "shader.h" - -bool GLBaseShader::shader_source(const char *filename) { - std::ifstream inf(filename, std::ios_base::in); - if(!inf.is_open()) { - std::cerr << "Failed to load shader " << filename << std::endl; - return false; - } - inf.seekg(0, std::ios_base::end); - int length = inf.tellg(); - inf.seekg(0, std::ios_base::beg); - char *buffer = new char[length]; - inf.read(buffer, length); - inf.close(); - - glShaderSource(shader, 1, (const GLchar**)&buffer, &length); - print_check_ogl_error(); - delete[] buffer; - glCompileShader(shader); - print_check_ogl_error(); - int p; - glGetShaderiv(shader, GL_COMPILE_STATUS, &p); - if(p == 0) { - std::cerr << "Failed to compile shader:" << std::endl; - char log[0xffff]; - int size; - glGetShaderInfoLog(shader, 0xffff, &size, (GLchar*)&log); - std::cerr << log << std::endl; - } - return shader; -} - -bool GLBaseShader::shader_source(std::string& filename) { - return shader_source(filename.c_str()); -} - -GLBaseShader::GLBaseShader(GLenum type) { - shader = glCreateShader(type); -} - -GLShaderProgram::GLShaderProgram() { - program = glCreateProgram(); -} - -bool GLShaderProgram::attach(GLBaseShader& shader) { - glAttachShader(program, shader.shader); - return !print_check_ogl_error(); -} - -bool GLShaderProgram::detach(GLBaseShader& shader) { - glDetachShader(program, shader.shader); - return !print_check_ogl_error(); -} - -bool GLShaderProgram::link() { - glLinkProgram(program); - bool error = print_check_ogl_error(); - int p; - glGetProgramiv(program, GL_LINK_STATUS, &p); - if(p == 0) { - std::cerr << "Failed to link program:" << std::endl; - char log[0xffff]; - int size; - glGetProgramInfoLog(program, 0xffff, &size, (GLchar*)&log); - printf(log); - } - return !error && p; -} - -bool GLShaderProgram::use() { - if(!glIsProgram(program)) program = glCreateProgram(); - glUseProgram(program); - return !print_check_ogl_error(); -} - -void GLShaderProgram::remove() { - glDeleteProgram(program); -} - -void print_ogl_error(GLenum error) { - unsigned char *buf = (unsigned char*)gluErrorString(error); - std::cerr << "OpenGL: " << buf << std::endl; -} - -bool print_check_ogl_error() { - GLenum error = glGetError(); - if(error != GL_NO_ERROR) - print_ogl_error(error); - return error != GL_NO_ERROR; -} -- cgit v1.2.3