From f111b7f74024ba6d47c0d802185406aa9eacfa50 Mon Sep 17 00:00:00 2001 From: Joursoir Date: Sun, 4 Apr 2021 14:41:23 +0000 Subject: Shader: read file with shader source code --- src/graphics/Shader.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/graphics/Shader.cpp') diff --git a/src/graphics/Shader.cpp b/src/graphics/Shader.cpp index 35a451d..740b055 100644 --- a/src/graphics/Shader.cpp +++ b/src/graphics/Shader.cpp @@ -1,6 +1,9 @@ +#include +#include #include #include "Shader.hpp" +#include "../xstdlib/xstdlib.hpp" Shader::~Shader() { @@ -10,16 +13,23 @@ Shader::~Shader() delete[] error_log; } -int Shader::Compile(const char *source, GLenum shaderType) +int Shader::Compile(const char *path, GLenum shaderType) { GLint success; + char *source; + error_log = new char[GL_INFO_LOG_LENGTH]; + + source = xfread(path, "rb"); + if(!source) { + strcpy(error_log, strerror(errno)); + return 1; + } shader_id = glCreateShader(shaderType); glShaderSource(shader_id, 1, &source, NULL); glCompileShader(shader_id); glGetShaderiv(shader_id, GL_COMPILE_STATUS, &success); if(success == 0) { - error_log = new char[GL_INFO_LOG_LENGTH]; glGetShaderInfoLog(shader_id, GL_INFO_LOG_LENGTH, NULL, error_log); return 1; } -- cgit v1.2.3-18-g5258