OpenGL API - glAttachShader


在这里插入图片描述

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 错误。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章