您好,登錄后才能下訂單哦!
// 創建著色器,返回句柄
GLuint glCreateShader(GLenum type)
type:
GL_VERTEX_SHADER
GL_FRAGMENT_SHADER
// 刪除著色器
void glDeleteShader(GLuint shader)
如果一個著色器已經連接到程序對象,那么不會立刻刪除,而是先標記,等到沒有任何連接時,再釋放內存。
// 設置著色器源碼
void glShaderSource(GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length)
count 著色器源字符串的數量,著色器可以由多個源字符串組成,但是每個著色器只能有一個main函數
string 指向保存數量為count的著色器源字符串的數組指針
length 指向保存每個著色器字符串大小且元素數量為count的整數數組指針,可以為NULL
// 編譯著色器
void glCompileShader(GLuint shader)
// 查詢著色器信息
void glGetShaderiv(GLuint shader, GLenum pname, GLint *params)
pname:
GL_COMPILE_STATUS// 編譯狀態 返回GL_TRUE或GL_FALSE
GL_DELETE_STATUS// 刪除狀態 返回是否用glDeleteShader標記
GL_INFO_LOG_LENGTH// 日志長度
GL_SHADER_SOURCE_LENGTH// 源碼長度
GL_SHADER_TYPE// 著色器類型,返回GL_VERTEX_SHADER或GL_FRAGMENT_SHADER
params 整數指針,用于返回結果
// 獲取日志信息
void glGetShaderInfoLog(Gluint shader, Glsizei maxLength, Glsizei *length, Glchar *infoLog)
maxLength:需要獲取的信息日志緩沖區長度
length:寫入的信息日志長度 如果不知道長度,可以填NULL
infoLog 用于返回信息日志的緩沖區
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。