OpenGL ES 2.0 / GLSL 1.0
Shaders and Programs
最終更新:
opengles
-
view
Shader Objects [2.10.1]
uint CreateShader(enum type);
// type: VERTEX_SHADER, FRAGMENT_SHADER
void ShaderSource(uint shader, sizei count, const char **string, const int *length);
void CompileShader(uint shader);
void ReleaseShaderCompiler(void);
void DeleteShader(uint shader);
Loading Shader Binaries [2.10.2]
void ShaderBinary(sizei count, const uint *shaders, enum binaryformat, const void *binary, sizei length);
Program Objects [2.10.3]
uint CreateProgram(void);
void AttachShader(uint program, uint shader);
void DetachShader(uint program, uint shader);
void LinkProgram(uint program);
void UseProgram(uint program);
void DeleteProgram(uint program);
Shader Variables [2.10.4]
Vertex Attributes
void GetActiveAttrib(uint program, uint index, sizei bufSize, sizei *length, int *size, enum *type, char *name);
// *type returns: FLOAT, FLOAT_VEC{2,3,4}, FLOAT_MAT{2,3,4}
int GetAttribLocation(uint program, const char *name);
void BindAttribLocation(uint program, uint index, const char *name);
// Uniform Variables
int GetUniformLocation(uint program, const char *name);
void GetActiveUniform(uint program, uint index, sizei bufSize, sizei *length, int *size, enum *type, char *name);
// *type: FLOAT, FLOAT_VEC{2,3,4}, INT, INT_VEC{2,3,4}, BOOL, BOOL_VEC{2,3,4}, FLOAT_MAT{2,3,4}, SAMPLER_2D, SAMPLER_CUBE
void Uniform{1234}{if}(int location, T value);
void Uniform{1234}{if}v(int location, sizei count, T value);
void UniformMatrix{234}fv(int location, sizei count, boolean transpose, const float *value);
// transpose: FALSE
Shader Execution (Validation) [2.10.5]
void ValidateProgram(uint program);
Shader Queries
Shader Queries [6.1.8]
boolean IsShader(uint shader);
void GetShaderiv(uint shader, enum pname, int *params);
// pname: SHADER_TYPE, DELETE_STATUS, COMPILE_STATUS, INFO_LOG_LENGTH, SHADER_SOURCE_LENGTH
void GetAttachedShaders(uint program, sizei maxCount, sizei *count, uint *shaders);
void GetShaderInfoLog(uint shader, sizei bufSize, sizei *length, char *infoLog);
void GetShaderSource(uint shader, sizei bufSize, sizei *length, char *source);
void GetShaderPrecisionFormat(enum shadertype, enum precisiontype, int *range, int *precision);
// shadertype: VERTEX_SHADER, FRAGMENT_SHADER
// precision: LOW_FLOAT, MEDIUM_FLOAT, HIGH_FLOAT, LOW_INT, MEDIUM_INT, HIGH_INT
void GetVertexAttribfv(uint index, enum pname, float *params);
// pname: CURRENT_VERTEX_ATTRIB , VERTEX_ATTRIB_ARRAY_x
// (where x may be BUFFER_BINDING, ENABLED, SIZE, STRIDE, TYPE, NORMALIZED)
void GetVertexAttribiv(uint index, enum pname, int *params);
// pname: CURRENT_VERTEX_ATTRIB , VERTEX_ATTRIB_ARRAY_x
// (where x may be BUFFER_BINDING, ENABLED, SIZE, STRIDE, TYPE, NORMALIZED)
void GetVertexAttribPointerv(uint index, enum pname, void **pointer);
// pname: VERTEX_ATTRIB_ARRAY_POINTER
void GetUniformfv(uint program, int location, float *params)
void GetUniformiv(uint program, int location, int *params)
Program Queries [6.1.8]
boolean IsProgram(uint program);
void GetProgramiv(uint program, enum pname, int *params);
// pname: DELETE_STATUS, LINK_STATUS, VALIDATE_STATUS, INFO_LOG_LENGTH, ATTACHED_SHADERS, ACTIVE_ATTRIBUTES, ACTIVE_ATTRIBUTE_MAX_LENGTH, ACTIVE_UNIFORMS, ACTIVE_UNIFORM_MAX_LENGTH
void GetProgramInfoLog(uint program, sizei bufSize, sizei *length, char *infoLog);