著色器
創(chuàng)建著色器
GLuint glCreateShader(GLenum type);
type:創(chuàng)建著色器的類型。
GL_VERTEX_SHADER 頂點著色器
GL_FRAGMENT_SHADER 片元著色器
返回值:是指向新著色器的句柄。
刪除著色器
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:需要編譯的著色器對象的句柄
創(chuàng)建與鏈接程序
創(chuàng)建
創(chuàng)建一個程序?qū)ο?/p>
GLUint glCreateProgram( );
返回值:返回一個執(zhí)行新程序?qū)ο蟮木浔?
刪除
void glDeleteProgram( GLuint program );
program:指向需要刪除的程序?qū)ο缶浔?
著色器與程序的附著
void glAttachShader( GLuint program , GLuint shader );
program:指向程序?qū)ο蟮木浔?shader:指向程序鏈接著色器對象的句柄。
斷開鏈接
void glDetachShader(GLuint program);
program:指向程序?qū)ο蟮木浔?shader:指向程序斷開鏈接的著色器對象的句柄
程序的鏈接
glLinkProgram(GLuint program);
program:指向程序?qū)ο蟮木浔?
獲取鏈接的狀態(tài)
void glGetProgramiv (GLuint program,GLenum pname, GLint *params);
program:需要獲取信息的程序?qū)ο蟮木浔?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ù)位置的指針
FrameBuffer&RenderBuffer

-w546
RenderBuffer
一個RenderBuffer對象是通過應(yīng)用分配的一個2D圖像緩沖區(qū)。RenderBuffer對象能夠被用來分配和存儲顏色、深度或者模板值。也能夠在FrameBuffer中被用作顏色、深度、模板的附件。一個RenderBuffer是一個類似于屏幕窗口系統(tǒng)提供的可繪制的表面。比如pBuffer,一個RenderBuffer并不能直接使用紋理對象。
FrameBuffer
一個FrameBuffer對象(通常被稱為FBO)。是一個收集顏色、深度、和模板緩沖區(qū)的附著點。描述屬性的狀態(tài),例如顏色、深度和模板緩沖區(qū)的大小和格式,都關(guān)聯(lián)到FBO。各種各樣的2D圖形能夠被附著FrameBuffer對象的顏色附著點。它們包含了RenderBuffer對象存儲的顏色值,一個2D紋理或立方體貼圖?;蛘咭粋€mip-level的二維切面的3D紋理。同樣,各種各樣的2D圖形包含了當(dāng)時的深度值,可以附加到一個FBO的深度附著點中去,唯一的2D圖像能夠附著在FBO的模板附著點,是一個RenderBuffer對象存儲的模板值。