-
glEnable
鎖定
glEnable指的是OpenGL函數,聲明為void __stdcall glEnable(GLenum cap)。用於啓用指定的功能。同時可以通過glDisable來關閉glEnable打開的功能。
glEnable參數説明
void glEnable(GLenum cap);
GLenum 説明參數應為unsigned int 類型
cap 具體取值為OpenGl所預設的常量。cap決定所要啓用的功能。各種功能參見參數cap的取值表。
[1]
glEnable代碼示例
glEnable(GL_BLEND);//啓用色彩混合
[1]
glEnable其他信息
使用glIsEnabled或者glGet來確定當前各項功能的開啓情況。
glEnablecap參數表
類型 | 值 | 説明 |
GL_ALPHA_TEST | 4864 | 根據函數glAlphaFunc的條件要求來決定圖形透明的層度是否顯示。具體參見glAlphaFunc |
GL_AUTO_NORMAL | 3456 | 執行後,圖形能把光反射到各個方向 |
GL_BLEND | 3042 | 啓用顏色混合。用於實現半透明效果 |
GL_CLIP_PLANE0 ~ GL_CLIP_PLANE5 | 12288 ~ 12293 | 根據函數glClipPlane的條件要求 啓用圖形切割管道。這裏指六種緩存管道 |
GL_COLOR_LOGIC_OP | 3058 | 啓用每一像素的色彩為位邏輯運算 |
GL_COLOR_MATERIAL | 2930 | 執行後,圖形(材料)將根據光線的照耀進行反射。 反射要求由函數glColorMaterial進行設定。 |
GL_CULL_FACE | 2884 | 根據函數glCullFace要求啓用隱藏圖形材料的面。 |
GL_DEPTH_TEST | 2929 | 啓用深度測試。 根據座標的遠近自動隱藏被遮住的圖形(材料) |
GL_DITHER | 3024 | 啓用抖動 |
GL_FOG | 2912 | 霧化效果 例如距離越遠越模糊 |
GL_INDEX_LOGIC_OP | 3057 | 邏輯操作 |
GL_LIGHT0 ~ GL_LIGHT7 | 16384 ~ 16391 | 啓用0號燈到7號燈(光源) 光源要求由函數glLight函數來完成 |
GL_LIGHTING | 2896 | 啓用燈源 |
GL_LINE_SMOOTH | 2848 | 執行後,過濾線段的鋸齒 |
GL_LINE_STIPPLE | 2852 | 執行後,畫虛線 |
GL_LOGIC_OP | 3057 | 邏輯操作 |
GL_MAP1_COLOR_4 | 3472 | 根據函數Map1對貝賽爾曲線的設置, 啓用glEvalCoord1,glEvalMesh1,glEvalPoint1 生成RGBA曲線 |
GL_MAP1_INDEX | 3473 | 根據函數Map1對貝賽爾曲線的設置, 啓用glEvalCoord1,glEvalMesh1,glEvalPoint1 生成顏色索引曲線 |
GL_MAP1_NORMAL | 3474 | 根據函數Map1對貝賽爾曲線的設置, 啓用glEvalCoord1,glEvalMesh1,glEvalPoint1 生成法線 |
GL_MAP1_TEXTURE_COORD_1 ~ GL_MAP1_TEXTURE_COORD_4 | 3475 ~ 3478 | 根據函數Map1對貝賽爾曲線的設置, 啓用glEvalCoord1,glEvalMesh1,glEvalPoint1 生成紋理座標 |
GL_MAP1_VERTEX_3 | 3479 | 根據函數Map1對貝賽爾曲線的設置, 啓用glEvalCoord1,glEvalMesh1,glEvalPoint1 在三維空間裏生成曲線 |
GL_MAP1_VERTEX_4 | 3480 | 根據函數Map1對貝賽爾曲線的設置, 啓用glEvalCoord1,glEvalMesh1,glEvalPoint1 |
GL_MAP2_COLOR_4 | 3504 | 根據函數Map2對貝賽爾曲線的設置, 啓用glEvalCoord2,glEvalMesh2,glEvalPoint2 生成RGBA曲線 |
GL_MAP2_INDEX | 3505 | 根據函數Map2對貝賽爾曲線的設置, 啓用glEvalCoord2,glEvalMesh2,glEvalPoint2 生成顏色索引 |
GL_MAP2_NORMAL | 3506 | 根據函數Map2對貝賽爾曲線的設置, 啓用glEvalCoord2,glEvalMesh2,glEvalPoint2 生成法線 |
GL_MAP2_TEXTURE_COORD_1 ~ GL_MAP2_TEXTURE_COORD_4 | 3507 ~ 3510 | 根據函數Map2對貝賽爾曲線的設置, 啓用glEvalCoord2,glEvalMesh2,glEvalPoint2 生成紋理座標 |
GL_MAP2_VERTEX_3 | 3511 | 根據函數Map2對貝賽爾曲線的設置, 啓用glEvalCoord2,glEvalMesh2,glEvalPoint2 在三維空間裏生成曲線 |
GL_MAP2_VERTEX_4 | 3512 | 根據函數Map2對貝賽爾曲線的設置, 啓用glEvalCoord2,glEvalMesh2,glEvalPoint2 在三維空間裏生成曲線 |
GL_NORMALIZE | 2977 | 根據函數glNormal的設置條件,啓用法向量 |
GL_POINT_SMOOTH | 2832 | 執行後,過慮線點的鋸齒 |
GL_POLYGON_OFFSET_FILL | 32823 | 根據函數glPolygonOffset的設置,啓用面的深度偏移 |
GL_POLYGON_OFFSET_LINE | 10754 | 根據函數glPolygonOffset的設置,啓用線的深度偏移 |
GL_POLYGON_OFFSET_POINT | 10753 | 根據函數glPolygonOffset的設置,啓用點的深度偏移 |
GL_POLYGON_SMOOTH | 2881 | 過慮圖形(多邊形)的鋸齒 |
GL_POLYGON_STIPPLE | 2882 | 執行後,多邊形為矢量畫圖 |
GL_SCISSOR_TEST | 3089 | 根據函數glScissor設置,啓用圖形剪切 |
GL_STENCIL_TEST | 2960 | 開啓使用模板測試並且更新模版緩存。參見glStencilFunc和glStencilOp. |
GL_TEXTURE_1D | 3552 | 啓用一維文理 |
GL_TEXTURE_2D | 3553 | 啓用二維文理 |
GL_TEXTURE_GEN_Q | 3171 | 根據函數glTexGen,啓用紋理處理 |
GL_TEXTURE_GEN_R | 3170 | 根據函數glTexGen,啓用紋理處理 |
GL_TEXTURE_GEN_S | 3168 | 根據函數glTexGen,啓用紋理處理 |
GL_TEXTURE_GEN_T | 3169 | 根據函數glTexGen,啓用紋理處理 |
glEnable錯誤提示代碼
可能出現錯誤代碼的情況。
錯誤代碼 | 出現錯誤的可能情況 |
---|---|
GL_INVALID_ENUM | cap的值不是OpenGl所預設的值中的一個。. |
GL_INVALID_OPERATION | glEnable在glBegin和glEnd之間被使用。 |
glEnable需求環境
Windows NT/2000:需要 Windows NT 3.5 或者更高。
Windows 95/98:需要 Windows 95 或者更高. 這一設置同樣適用於 Windows 95。
頭文件:在Gl.h文件中聲明。
庫:使用庫 Opengl32.lib。
- 參考資料
-
- 1. glEnable, glDisable .MSDN[引用日期2013-04-13]