TerraForge3D  2.3.1
3D Terrain And Landscape Generator
ShaderUtils.cpp
1#include <ShaderUtils.h>
2
3#include <iostream>
4
5
6#include <Utils.h>
7
8int CompileShader(std::string shaderSrc, GLenum shaderType, std::string name)
9{
10 GLuint shader = glCreateShader(shaderType);
11 const GLchar *source = (const GLchar *)shaderSrc.c_str();
12 glShaderSource(shader, 1, &source, 0);
13 glCompileShader(shader);
14 GLint isCompiled = 0;
15 glGetShaderiv(shader, GL_COMPILE_STATUS, &isCompiled);
16
17 if (isCompiled == GL_FALSE)
18 {
19 GLint maxLength = 0;
20 glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &maxLength);
21 char *errorLog = (char *)malloc(maxLength);
22 memset(errorLog, 0, maxLength);
23 glGetShaderInfoLog(shader, maxLength, &maxLength, errorLog);
24 Log(std::string("Error in Compiling ") + name + " Shader : ");
25 Log("Shader Source : \n" + shaderSrc + "\n");
26 Log(errorLog);
27 glDeleteShader(shader);
28 }
29
30 return shader;
31}
32
33int CreateProgram()
34{
35 GLuint program = glCreateProgram();
36 return program;
37}