From 469a84c10ba60fba4a513c1b1a0eea600cd7b22f Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Wed, 10 May 2017 18:44:51 +0500 Subject: 2017-05-10 --- graphics/Shader.cpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 graphics/Shader.cpp (limited to 'graphics/Shader.cpp') diff --git a/graphics/Shader.cpp b/graphics/Shader.cpp new file mode 100644 index 0000000..2b72917 --- /dev/null +++ b/graphics/Shader.cpp @@ -0,0 +1,36 @@ +#include +#include +#include +#include "Shader.hpp" + +Shader::Shader(std::string fileName, bool vertex) { + this->isVertex = vertex; + std::ifstream in(fileName); + if (!in){ + std::cout<<"Can't open shader source at "<(in)), + std::istreambuf_iterator()); + shaderId = glCreateShader(isVertex?GL_VERTEX_SHADER:GL_FRAGMENT_SHADER); + const char* shaderSrc = shaderSource.c_str(); + glShaderSource(shaderId, 1, &shaderSrc, NULL); + glCompileShader(shaderId); + GLint success; + GLchar infoLog[512]; + glGetShaderiv(shaderId, GL_COMPILE_STATUS, &success); + if(!success) + { + glGetShaderInfoLog(shaderId, 512, NULL, infoLog); + std::cout << "ERROR::SHADER::VERTEX::COMPILATION_FAILED\n" << infoLog << std::endl; + throw 518; + } +} + +Shader::~Shader() { + glDeleteShader(shaderId); +} + +void Shader::bind() { + +} -- cgit v1.2.3