- 名称
- 原型
- 参数
- 描述
- 错误

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glAttachShader.xhtml
OpenGL API - 笔记汇总
名称glAttachShader ---- 附加一个 shader 对象到程序对象。
原型void glAttachShader(GLuint program,
GLuint shader);
参数
program 指定用于接受附加着色器的程序对象。 shader 指定需要被附加到程序对象的 shader 对象。
描述为了创建完整的 shader 程序,必须要有一个方法来讲这些东西链接在一起。程序对象提供了这个机制。被链接在一起的 shader 首先需要附加到程序对象。glAttachShader 可将指定的 shader 的shader 对象附加到指定的 program 的程序对象上。这表示 shader 将会被链接操作后包含在程序中,并在次程序中执行。
在一个有效附加到一个程序对象的shader对象,它的所有的操作都可以被执行。一个 shader 对象在它设置源码前,或是在它被编译前都允许附加到程序对象中。也允许附加多个相同类型的 shader 对象,因为每个可能包含完整的 shader 的一部分。也允许附加一个 shader 对象到多个程序对象中。如果一个 shader 对象在附加时被删除,则删除标记将被设置,并且删除不会发生,直到调用了 glDetachShader 来解除附加所有的已附加过这个 shader 对象。
错误如果 program 或是 shader 参数不是 OpenGL 生成的,那么生成 GL_INVALID_VALUE
错误。
如果 program 参数不是一个程序对象,那么生成 GL_INVALID_OPERATION
错误。
如果 shader 参数不是一个 shader 对象,那么生成 GL_INVALID_OPERATION
错误。
如果 shader 参数早已被加到 program 对象,那么生成 GL_INVALID_OPERATION
错误。