https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glShaderSource.xhtml
名稱
glShaderSource ---- 給 shader 對象指定源碼。
原型
void glShaderSource(GLuint shader,
GLsizei count,
const GLchar **string,
const GLint *length);
參數
shader
指定需要設置源碼的 shader 對象。
count
指定源碼腳本的數量。
string
指定用於裝載的 shader 源碼。
length
指定 string 源碼數組的長度。
描述
glShaderSource 將shader中的源代碼設置爲string指定的字符串數組中的源代碼。以前存儲在着色器對象中的任何源代碼都將被完全替換。數組中的字符串數由count指定。如果長度爲空,則假定每個字符串以空結尾。如果長度不是空值,則它指向一個數組,該數組包含字符串的每個對應元素的字符串長度。長度數組中的每個元素都可以包含相應字符串的長度(空字符不計算爲字符串長度的一部分)或小於0的值,以指示字符串以空結尾。此時不會掃描或分析源代碼字符串;它們只是複製到指定的着色器對象中。
注意
當調用 glShaderSource 函數時 OpenGL 複製 shader 源碼字符串,所以當函數執行後,應用程序可以將源碼的字符串釋放掉。
錯誤
如果 shader 參數不是 OpenGL 生成的,那麼生成 GL_INVALID_VALUE
錯誤。
如果 shader 參數不是一個 shader 對象,那麼生成 GL_INVALID_OPERATION
錯誤。
如果 count 小於0,那麼生成 GL_INVALID_VALUE
錯誤。