GLuint glCreateShader(GLenum type);
type — 創(chuàng)建著?色器器的類型,GL_VERTEX_SHADER 或者GL_FRAGMENT_SHADER
返回值 — 是指向新著?色器器對象的句句柄.可以調(diào)?用
glDeleteShader 刪除 void glDeleteShader(GLuint shader);
shader — 要刪除的著?色器器對象句句柄
void glShaderSource(GLuint shader , GLSizei count ,const GLChar * const *string, const GLint *length);
shader — 指向著?色器器對象的句句柄
count — 著?色器器源字符串串的數(shù)量量,著?色器器可以由多個源字符串串組成,但是每個著?色器器只有?一個main函數(shù) string — 指向保存數(shù)量量的count 的著?色器器源字符串串的數(shù)組指針
length — 指向保存每個著?色器器字符串串?大?小且元素數(shù)量量為count 的整數(shù)數(shù)組指針.
void glCompileShader(GLuint shader);
shader — 需要編譯的著?色器器對象句句柄
void glGetShaderiv(GLuint shader , GLenum pname , GLint *params );
shader — 需要編譯的著?色器器對象句句柄
pname — 獲取的信息參數(shù),可以為 GL_COMPILE_STATUS/GL_DELETE_STATUS/ GL_INFO_LOG_LENGTH/GL_SHADER_SOURCE_LENGTH/ GL_SHADER_TYPE
params — 指向查詢結(jié)果的整數(shù)存儲位置的指針.
void glGetShaderInfolog(GLuint shader , GLSizei maxLength, GLSizei *length , GLChar *infoLog);
shader — 需要獲取信息?日志的著?色器器對象句句柄
maxLength — 保存信息?日志的緩存區(qū)?大?小
length — 寫?入的信息?日志的?長度(減去null 終?止符); 如果不不需要知道?長度. 這個參數(shù)可以為Null infoLog — 指向保存信息?日志的字符緩存區(qū)的指針.
GLUint glCreateProgram( )
創(chuàng)建?一個程序?qū)ο?br>
返回值: 返回?一個執(zhí)?行行新程序?qū)ο蟮木渚浔?/p>
void glDeleteProgram( GLuint program ) program : 指向需要刪除的程序?qū)ο缶渚浔?/p>
//著?色器器與程序連接/附著
void glAttachShader( GLuint program , GLuint shader );
program : 指向程序?qū)ο蟮木渚浔?br>
shader : 指向程序連接的著?色器器對象的句句柄
//斷開連接
void glDetachShader(GLuint program);
program : 指向程序?qū)ο蟮木渚浔?br>
shader : 指向程序斷開連接的著?色器器對象句句柄
glLinkProgram(GLuint program) program: 指向程序?qū)ο缶渚浔?/p>
鏈接程序之后, 需要檢查鏈接是否成功. 你可以使?用glGetProgramiv 檢查鏈接狀態(tài): void glGetProgramiv (GLuint program,GLenum pname, GLint *params);
program: 需要獲取信息的程序?qū)ο缶渚浔?br>
pname : 獲取信息的參數(shù),可以是:
GL_ACTIVE_ATTRIBUTES GL_ACTIVE_ATTRIBUTES_MAX_LENGTH GL_ACTIVE_UNIFORM_BLOCK GL_ACTIVE_UNIFORM_BLOCK_MAX_LENGTH GL_ACTIVE_UNIFROMS GL_ACTIVE_UNIFORM_MAX_LENGTH GL_ATTACHED_SHADERS GL_DELETE_STATUS
GL_INFO_LOG_LENGTH
GL_LINK_STATUS GL_PROGRAM_BINARY_RETRIEVABLE_HINT GL_TRANSFORM_FEEDBACK_BUFFER_MODE GL_TRANSFORM_FEEDBACK_VARYINGS GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH GL_VALIDATE_STATUS
params : 指向查詢結(jié)果整數(shù)存儲位置的指針
從程序信息?日志中獲取信息
void glGetPorgramInfoLog( GLuint program ,GLSizei maxLength, GLSizei *length , GLChar *infoLog )
program : 指向需要獲取信息的程序?qū)ο缶渚浔?br>
maxLength : 存儲信息?日志的緩存區(qū)?大?小
length : 寫?入的信息?日志?長度(減去null 終?止符),如果不不需要知道?長度,這個參數(shù)可以為Null. infoLog : 指向存儲信息?日志的字符緩存區(qū)的指針
void glUseProgram(GLuint program) program: 設(shè)置為活動程序的程序?qū)ο缶渚浔?