glCreateShader
glCreateShader is an OpenGL function used to create a shader object of a specific type. It returns a non-zero handle (GLuint) that represents a new shader object. If an error occurs, such as an invalid shader type or resource exhaustion, the function returns 0. The created shader object holds the source code and compilation state independently of any program objects it may later be attached to.
The shader type is specified by a GLenum value, typically GL_VERTEX_SHADER, GL_FRAGMENT_SHADER, GL_GEOMETRY_SHADER, or other shader
To use the shader in rendering, the compiled shader object is attached to a program object via
glCreateShader is part of the shader creation workflow in OpenGL and is complemented by glCreateProgram, glAttachShader,