filmov
tv
076 - (1) Load, Compile, Link OpenGL GLSL Shader Source Code Programmatically

Показать описание
DISCLAIMER: I am an absolute OpenGL beginner by myself too.
A. To Compile Shader
1. glCreateShader - Creates a shader object
GLuint glCreateShader(GLenum shaderType);
{ ".vert", GL_VERTEX_SHADER } - for a vertex shader
{ ".tesc", GL_TESS_CONTROL_SHADER } - for a tessellation control shader
{ ".tese", GL_TESS_EVALUATION_SHADER } - for a tessellation evaluation shader
{ ".geom", GL_GEOMETRY_SHADER } - for a geometry shader
{ ".frag", GL_FRAGMENT_SHADER } - for a fragment shader
{ ".comp", GL_COMPUTE_SHADER } - for a compute shader
2. glShaderSource - Replaces the source code in a shader object
void glShaderSource(GLuint shader, GLsizei count, const GLchar **string, const GLint *length);
3. glCompileShader - Compiles a shader object
void glCompileShader( GLuint shader);
B. To Link Shader
4. glCreateProgram - Creates a program object
GLuint glCreateProgram(void);
5. glAttachShader - Attaches a shader object to a program object
void glAttachShader(GLuint program, GLuint shader);
6. glLinkProgram - Links a program object
void glLinkProgram(GLuint program);
C. To Cleanup Shader Source
7. glDeleteShader - Deletes a shader object
void glDeleteShader(GLuint shader);
D. To Retrieve Compile Error
8. glGetShaderiv - return a parameter from a shader object
void glGetShaderiv( GLuint shader, GLenum pname, GLint *params);
GL_SHADER_TYPE, GL_DELETE_STATUS, GL_COMPILE_STATUS, GL_INFO_LOG_LENGTH, GL_SHADER_SOURCE_LENGTH
9. glGetShaderInfoLog - Returns the information log for a shader object
void glGetShaderInfoLog(GLuint shader, GLsizei maxLength, GLsizei *length, GLchar *infoLog);
E. To Retrieve Link/Program Error
10. glGetProgramiv - Returns a parameter from a program object
void glGetProgramiv(GLuint program, GLenum pname, GLint *params);
11. glGetProgramInfoLog - Returns the information log for a program object
void glGetProgramInfoLog(GLuint program, GLsizei maxLength, GLsizei *length, GLchar *infoLog);
For std::unique_ptr
Graph in C++ #1: Pass / clone std::unique_ptr by value to a function
075 - (SETUP) OpenGL Shader Syntax Highlighter, Chapter 01 - OpenGL Programming Guide 9th Edition
Download New Fixed Source Code:
Download Source Code:
Episode 076 - (1) Load, Compile, Link OpenGL GLSL Shader Source Code Programmatically
A. To Compile Shader
1. glCreateShader - Creates a shader object
GLuint glCreateShader(GLenum shaderType);
{ ".vert", GL_VERTEX_SHADER } - for a vertex shader
{ ".tesc", GL_TESS_CONTROL_SHADER } - for a tessellation control shader
{ ".tese", GL_TESS_EVALUATION_SHADER } - for a tessellation evaluation shader
{ ".geom", GL_GEOMETRY_SHADER } - for a geometry shader
{ ".frag", GL_FRAGMENT_SHADER } - for a fragment shader
{ ".comp", GL_COMPUTE_SHADER } - for a compute shader
2. glShaderSource - Replaces the source code in a shader object
void glShaderSource(GLuint shader, GLsizei count, const GLchar **string, const GLint *length);
3. glCompileShader - Compiles a shader object
void glCompileShader( GLuint shader);
B. To Link Shader
4. glCreateProgram - Creates a program object
GLuint glCreateProgram(void);
5. glAttachShader - Attaches a shader object to a program object
void glAttachShader(GLuint program, GLuint shader);
6. glLinkProgram - Links a program object
void glLinkProgram(GLuint program);
C. To Cleanup Shader Source
7. glDeleteShader - Deletes a shader object
void glDeleteShader(GLuint shader);
D. To Retrieve Compile Error
8. glGetShaderiv - return a parameter from a shader object
void glGetShaderiv( GLuint shader, GLenum pname, GLint *params);
GL_SHADER_TYPE, GL_DELETE_STATUS, GL_COMPILE_STATUS, GL_INFO_LOG_LENGTH, GL_SHADER_SOURCE_LENGTH
9. glGetShaderInfoLog - Returns the information log for a shader object
void glGetShaderInfoLog(GLuint shader, GLsizei maxLength, GLsizei *length, GLchar *infoLog);
E. To Retrieve Link/Program Error
10. glGetProgramiv - Returns a parameter from a program object
void glGetProgramiv(GLuint program, GLenum pname, GLint *params);
11. glGetProgramInfoLog - Returns the information log for a program object
void glGetProgramInfoLog(GLuint program, GLsizei maxLength, GLsizei *length, GLchar *infoLog);
For std::unique_ptr
Graph in C++ #1: Pass / clone std::unique_ptr by value to a function
075 - (SETUP) OpenGL Shader Syntax Highlighter, Chapter 01 - OpenGL Programming Guide 9th Edition
Download New Fixed Source Code:
Download Source Code:
Episode 076 - (1) Load, Compile, Link OpenGL GLSL Shader Source Code Programmatically