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

preview_player
Показать описание
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
Рекомендации по теме
welcome to shbcf.ru