18 #ifndef PIC_UTIL_GL_PROGRAM_HPP 19 #define PIC_UTIL_GL_PROGRAM_HPP 23 #include "../../base.hpp" 50 GLint max_length = -1;
51 glGetShaderiv(
object, GL_INFO_LOG_LENGTH, &max_length);
53 std::vector<GLchar> error(max_length);
54 glGetShaderInfoLog(
object, max_length, &max_length, &error[0]);
56 glDeleteShader(
object);
59 log +=
"-----------------------------------------\n";
60 log +=
"-- This shader was not compiled!\n";
61 log +=
"-----------------------------------------\n";
65 log +=
"-----------------------------------------\n";
66 log +=
"-- This shader was compiled successfully!\n";
67 log +=
"-----------------------------------------\n";
84 GLint max_length = -1;
85 glGetProgramiv(
object, GL_INFO_LOG_LENGTH, &max_length);
87 std::vector<GLchar> error(max_length);
88 glGetProgramInfoLog(
object, max_length, &max_length, &error[0]);
90 glDeleteProgram(
object);
93 log +=
"----------------------------------------\n";
94 log +=
"-- This program was not linked!\n";
95 log +=
"----------------------------------------\n";
99 log +=
"----------------------------------------\n";
100 log +=
"-- This program was linked successfully!\n";
101 log +=
"----------------------------------------\n";
117 std::string extensions,
134 glDeleteShader(
object);
136 glDeleteProgram(
object);
150 this->bCompiled =
false;
156 this->bCheckStatus = GL_FALSE;
176 object = glCreateProgram();
178 for(
auto i = 0; i < shaders.size(); i++)
180 GLuint tmp = shaders[i]->getObject();
182 glAttachShader(
object, tmp);
186 glLinkProgram(
object);
202 std::string extensions,
209 object = glCreateShader(
type);
211 this->source.clear();
214 if(!version_number.empty()) {
215 this->source +=
"#version ";
216 this->source += version_number;
217 this->source +=
"\n";
220 if(!extensions.empty()) {
221 this->source += extensions;
222 this->source +=
"\n";
229 const GLchar *tmp = (
const GLchar *) this->source.c_str();
230 glShaderSource(
object, 1, &tmp, NULL);
231 glCompileShader(
object);
241 printf(
"%s",
log.c_str());
bool checkProgramStatus()
checkProgramStatus
Definition: program.hpp:77
ProgramGL()
Definition: program.hpp:111
GLuint object
Definition: program.hpp:32
GLint bCheckStatus
Definition: program.hpp:30
std::string source
Definition: program.hpp:33
GLuint getObject()
getObject
Definition: program.hpp:163
bool initShader(std::string version_number, std::string extensions, std::string source, GLenum type)
initShader
Definition: program.hpp:201
Definition: program.hpp:27
ProgramGL(std::vector< ProgramGL *> &shaders)
Definition: program.hpp:125
void setNULL()
SetNULL.
Definition: program.hpp:148
void printLog()
printLog
Definition: program.hpp:239
GLenum type
Definition: program.hpp:31
std::string log
Definition: program.hpp:34
~ProgramGL()
Definition: program.hpp:130
bool bType
Definition: program.hpp:35
bool checkShaderStatus()
checkShaderStatus
Definition: program.hpp:41
Definition: bilateral_separation.hpp:25
ProgramGL(std::string version, std::string extensions, std::string source, GLenum type)
Definition: program.hpp:116
bool bCompiled
Definition: program.hpp:109
bool initProgram(std::vector< ProgramGL *> &shaders)
initProgram
Definition: program.hpp:173