# glGetShaderParameter

Definition: | include pGUI.e include opengl.e integer res = glGetShaderParameter(integer shader, pname, dflt=0)
Description: | return the value of a parameter from a shader object shader: Specifies the shader object to be queried. pname: Specifies the object parameter. Accepted symbolic names are listed below. dflt: (optional) the value to return when an error occurs.
pwa/p2js: | Supported.
Notes: | The opengl.e wrapper returns a result whereas the C api requires the address of a result variable containing a pre-poked default to be provided as the third parameter. On desktop/Phix, this wraps the C glGetShaderiv function (but with a different third argument). The following parameters are defined: GL_SHADER_TYPE returns GL_VERTEX_SHADER or GL_FRAGMENT_SHADER. GL_DELETE_STATUS returns true if shader is currently flagged for deletion. GL_COMPILE_STATUS returns false if the last compile operation on shader was unsuccessful. Note that GL_INFO_LOG_LENGTH and GL_SHADER_SOURCE_LENGTH are not supported by WebGL and hence pwa/p2js, instead opengl.e uses them internally as part of the automatic buffer management. Technically they still work on the desktop and are permitted by the transpiler (since they are valid inside a platform()!=JS test), but generate an explicit runtime crash in pGUI.js. Technically shader compiler support is optional, however opengl.e and pwa/p2js simply assume it is always available. If an error is generated the specified default is returned, however explicitly checking glGetError()!=GL_NO_ERROR should normally be used to verify that an error did actually occur, unless that is the said default is unequivocably invalid.
Errors: | GL_INVALID_ENUM is generated if pname is not an accepted value. GL_INVALID_VALUE is generated if shader is not a value generated by OpenGL. GL_INVALID_OPERATION is generated if pname is GL_COMPILE_STATUS, GL_INFO_LOG_LENGTH, or GL_SHADER_SOURCE_LENGTH but a shader compiler is not supported. GL_INVALID_OPERATION is generated if shader does not refer to a shader object.
Associated Gets: | glGet with argument GL_SHADER_COMPILER glGetShaderInfoLog with argument shader glGetShaderSource with argument shader glIsShader
See Also: | glCompileShader, glCreateShader, glDeleteShader, glGetProgramParameter, glShaderSource, z DEV See Also //glCompileShader, //glCreateShader, //glDeleteShader, //glGetProgramParameter, //glShaderSource, glShaderBinary