///// 创建和链接程序 // 创建 GLuint glCreateProgram() // 删除 void glDeleteProgram(GLuint program) // 连接着色器 void glAttachShader(GLuint program, GLuint shader) // 断开连接 void glDetachShader(GLuint program, GLuint shader) // 链接程序 void glLinkProgram(GLuint program) // 查询程序信息 void glGetProgramiv(GLuint program, Glenum pname, GLint *params) pname: GL_ACTIVE_ATTRIBUTES// 顶点着色器中活动属性的数量 GL_ACTIVE_ATTRIBUTE_MAX_LENGTH// 最大属性名称的最大长度(可以确定存储属性名字符串所需的内存) GL_ACTIVE_UNIFORM_BLOCK// GL_ACTIVE_UNIFORM_BLOCK_MAX_LENGTH GL_ACTIVE_UNIFORMS// 活动统一变量的数量 GL_ACTIVE_UNIFORM_MAX_LENGTH// 最大统一变量名称的长度 GL_ATTACHED_SHADERS GL_DELETE_STATUS GL_INFO_LOG_LENGTH GL_LINK_STATUS// 链接状态 GL_PROGRAM_BINARY_RETRIEVABLE_HINT GL_TRANSFORM_FEEDBACK_BUFFER_MODE// 返回变换反馈启用时的缓冲区模式 GL_TRANSFORM_FEEDBACK_VARYINGS GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH GL_VALIDATE_STATUS // 查询程序日志 void glGetProgramInfoLog(Gluint program, Glsizei maxLength, GLsizei *length, GLchar *infoLog) // 校验程序对象 void glValidateProgram(GLuint program) 校验的结果可以用glGetProgramiv的GL_VALIDATE_STATUS查询,日志也会更新。 // 设置为活动程序的对象 void glUseProgram(GLuint program)