二維紋理定義的函數
void glTexImage2D(GLenum target,GLint level,GLint components,GLsizei width, glsizei height,GLint border,GLenum format,GLenum type, const GLvoid *pixels);
定義一個二維紋理映射。其中參數target是常數GL_TEXTURE_2D。參數level表示多級解析度的紋理映像的級數,若只有一種解析度,則level設為0。
參數components(主件,組件,成分)是一個從1到4的整數,指出選擇了R、G、B、A中的哪些分量用於調整和混合,1表示選擇了R分量,2表示選擇了R和A兩個分量,3表示選擇了R、G、B三個分量,4表示選擇了R、G、B、A四個分量。
參數width和height給出了紋理映像的長度和寬度,參數border為紋理邊界寬度,它通常為0,width和height必須是2m+2b,這裡m是整數,長和寬可以有不同的值,b是border的值。紋理映射的最大尺寸依賴於OpenGL,但它至少必須是使用64x64(若帶邊界為66x66),若width和height設定為0,則紋理映射有效地關閉。
參數format和type描述了紋理映射的格式和資料類型,它們在這裡的意義與在函數glDrawPixels()中的意義相同,事實上,紋理資料與glDrawPixels()所用的資料有同樣的格式。參數format可以是GL_COLOR_INDEX、GL_RGB、GL_RGBA、GL_RED、GL_GREEN、GL_BLUE、GL_ALPHA、GL_LUMINANCE或GL_LUMINANCE_ALPHA(注意:不能用GL_STENCIL_INDEX和GL_DEPTH_COMPONENT)。類似地,參數type是GL_BYPE、GL_UNSIGNED_BYTE、GL_SHORT、 GL_UNSIGNED_SHORT、GL_INT、GL_UNSIGNED_INT、GL_FLOAT或GL_BITMAP。
參數pixels包含了紋理映像資料,這個資料描述了紋理映像本身和它的邊界。