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 錯誤。

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