glEnable - вмикає або вимикає функції OpenGL на стороні серверу.
C-специфікація
void glEnable (GLenum cap) ; void glDisable (GLenum cap) ;
Параметри
cap вказує символічну константу, яка ідентифікує певну функцію OpenGL.
Опис
Функція glEnable і glDisable відповідно вмикає і вимикає вказану можливість графічної бібліотеки. Використовуйте функції glIsEnabled або glGet для визначення поточного налаштування будь-якої можливості графічної бібліотеки. Значення за умовчанням для кожної можливості за винятком GL_DITHER і GL_MULTISAMPLE являється GL_FALSE. Значення за умовчанням GL_DITHER і GL_MULTISAMPLE являється GL_TRUE.
Обидві функції glEnable і glDisable отримуються один аргумент - cap, який може приймати одне з наступних значень:
- GL_ALPHA_TEST. Якщо увімкнено, виконується тест прозорості. Перегляньте glAlphaFunc.
- GL_AUTO_NORMAL. Якщо увімкнено, генерує нормальні вектори, коли для генерації вертексів використовуються GL_MAP2_VERTEX_3 або GL_MAP2_VERTEX_4. Перегляньте glMap2.
- GL_BLEND. Якщо увімкнена, виконується змішування фрагментних значень кольорів з значеннями у колірних буферах. Перегляньте glBlendFunc.
- GL_CLIP_PLANEi. Якщо увімкнена, обрізання геометрії проти визначеної користувачем площі обрізання i. Перегляньте glCLipPlane.
- GL_COLOR_LOGIC_OP. Якщо увімкнена, застосовує поточно обрані логічні операції до обчисленого кольору фрагмента і значення буферних кольорів. Перегляньте glLogicOp.
- GL_COLOR_MATERIAL. Якщо увімкнений, існує один або більше параметрів матеріалу, який впливає на поточний колір. Перегляньте функцію glColorMaterial.
- GL_COLOR_SUM. Якщо увімкнена і немає активного фрагментного шейдера, додає значення другорядного кольору до обчисленого фрагментного кольору. Перегляньте glSecondaryColor.
- GL_COLOR_TABLE. Якщо увімкнено, виконує пошук у таблиці кольорів на нових значеннях кольору RGBA. Перегляньте glColorTable.
- GL_CONVOLUTION_1D. Якщо увімкнено, виконує операцію згортання на нових колірних значеннях RGBA. Перегляньте функцію glConvolutionFilter1D.
- GL_CONVOLUTION_2D. Якщо увімкнено, виконує операції 2D змішування на нових колірних значеннях RGBA. Перегляньте glConvolutionFilter2D.
- GL_CULL_FACE. Якщо увімкнено, в залежності від віконних координат виконується відрізання полігонів. Перегляньте glCullFace.
- GL_DEPTH_TEST. Якщо увімкнено, виконати порівняння глибини і оновлювати його буфер. Зверніть увагу, що, якщо існує буфер глибини і ненульова маска глибини, буфер глибини не оновлюється, якщо тест глибини вимкнено. Перегляньте glDepthFunc і glDepthRange.
- GL_DITHER. Якщо увімкнено, виконується розкидування колірних компонентів або індексів, перед їх записанням у колірний буфер.
- GL_FOG. Якщо увімкнено і немає активного фрагментного шейдера, змішати колір димки у пост-текстурний колір. Перегляньте функцію glFog.
- GL_HISTOGRAM. Якщо увімкнено, створюється гістограма нових колірних значень RGBA. Перегляньте glHistogram.
- GL_INDEX_LOGIC_OP. Якщо увімкнена, застосовування поточно обраних логічних операцій до індексного і колірного буферів. Перегляньте glLogicOp.
- GL_LIGHTi. Якщо увімкнено, включає джерело світла i у обрахунок рівняння освітлення. Перегляньте glLightModel і glLight.
- GL_LIGHTING. Якщо увімкнено і немає активного вертексного шейдера, використовуйте поточні параметри освітлення для обчислення вертексного кольору або індекса. В іншому випадку, просто асоціювати поточний колір або індекс з кожним вертексом. Перегляньте glMaterial, glLightModel і glLight.
- GL_LINE_SMOOTH. Якщо увімкнено, малює лінії з коректним фільтруванням. В іншому випадку, намалювати лінії без згладжування. Перегляньте glLineWidth.
- GL_LINE_STIPPLE. Якщо увімкнено, використовувати поточний шаблон пунктирної лінії під час малювання ліній. Перегляньте функцію glLineStipple.
- GL_MAP1_COLOR_4. Якщо увімкнено, викликає gEvalCoord1, glEvalMesh1 i glEvalPoint1 генерують значення RGBA. Перегляньте glMap1.
- GL_MAP1_INDEX. Якщо увімкнено, викликає glEvalCoord1, glEvalMesh1 і glEvalPoint1 генерують колірні індекси. Перегляньте glMap1.
- GL_MAP1_NORMAL. Якщо увімкнено, виклики функцій glEvalCoord1, glEvalMesh1 і glEvalPoint1 генерують нормалі. Перегляньте функцію glMap1.
- GL_MAP1_TEXTURE_COORD_1. Якщо увімкнено, виклики glEvalCoord1, glEvalMesh1 і glEvalPoint1 генерують s-текстурні координати. Перегляньте glMap1.
- GL_MAP1_TEXTURE_COORD_2. Якщо увімкнено, виклики до glEvalCoord1, glEvalMesh1, і glEvalPoint1 генерують s і t текстурні координати. Перегляньте функцію glMap1.
- GL_MAP1_TEXTURE_COORD_3. Якщо увімкнено, виклики до glEvalCoord1, glEvalMesh1, і glEvalPoint1 генерують s, t, і r текстурні координати. Перегляньте glMap1.
- GL_MAP1_TEXTURE_COORD_4. Якщо увімкнено, виклики до glEvalCoord1, glEvalMesh1, і glEvalPoint1 генерують s, t, r, і q текстурні координати. Перегляньте функцію glMap1.
- GL_MAP1_VERTEX_3. Якщо увімкнено, виклики до функцій glEvalCoord1, glEvalMesh1, і glEvalPoint1 генерують x,y, і z вертексні координати. Перегляньте glMap1.
- GL_MAP1_VERTEX_4. Якщо увімкнено, виклики до glEvalCoord1, glEvalMesh1, і glEvalPoint1 генерують гомогенні x, y, z і w вертексні координати. Перегляньте glMap1.
- GL_MAP2_COLOR_4. Якщо увімкнено, виклики до функцій glEvalCoord2, glEvalMesh2 і glEvalPoint2 генерують RGBA значення. Перегляньте glMap2.
- GL_MAP2_INDEX. Якщо увімкнено, виклики до функцій glEvalCoord2, glEvalMesh2 і glEvalPoint2 генерують колірні індекси. Перегляньте glMap2.
- GL_MAP2_NORMAL. Якщо увімкнено, виклики функцій glEvalCoord2, gEvalMesh2 і glEvalPoint2 генерують нормалі. Перегляньте glMap2.
- GL_MAP2_TEXTURE_COORD_1. Якщо увімкнена виклики до glEvalCoord2, glEvalMesh2 і gEvalPoint2 генерують s текстурні координати. Перегляньте glMap2.
- GL_MAP2_TEXTURE_COORD_2. Якщо увімкнено, виклики до функцій glEvalCoord2, glEvalMesh2, і glEvalPoint2 генерують s і t текстурні координати. Перегляньте glMap2.
- GL_MAP2_TEXTURE_COORD_3. Якщо увімкнено, виклики до функцій glEvalCoord2, glEvalMesh2 і glEvalPoint2 генерують s, t і r текстурні координати. Перегляньте glMap2.
- GL_MAP2_TEXTURE_COORD_4. Якщо увімкнено, виклики до функцій glEvalCoord2, glEvalMesh2, і glEvalPoint2 генерують s,t,r, і q текстурні координати. Перегляньте glMap2.
- GL_MAP2_VERTEX_3. Якщо увімкнено, виклики до функцій glEvalCoord2, glEvalMesh2 і glEvalPoint2 генерують x, y і z вертексні координати. Перегляньте glMap2.
- GL_MAP2_VERTEX_4. Якщо увімкнено, виклики до glEvalCoord2, glEvalMesh2 і glEvalPoint2 генерують гомогенні вертексні координати x, y, z, і w. Перегляньте glMap2.
- GL_MINMAX. Якщо увімкнено, обчислює мінімальний і максимальні значення вхідних колірних значень RGBA. Перегляньте glMinmax.
- GL_MULTISAMPLE. Якщо увімкнено, використовуються множинні фрагментні семпли у обчисленні кінцевого кольору пікселя. Перегляньте glSampleCoverage.
- GL_NORMALIZE. Якщо увімкнено і жоден вертексний шейдер активний, нормальні вектори нормалізуються до одиничної довжини, після перетворення і перед освітленням. Даний метод в загальному менш ефективний ніж GL_RESCALE_NORMAL. Перегляньте glNormal і glNormalPointer.
- GL_POINT_SMOOTH. Якщо увімкнено, малюються точки з правильним фільтруванням. В іншому випадку, відмальовування не згладжених точок. Перегляньте glPointSize.
- GL_POINT_SPRITE. Якщо увімкнено, одбчислюються текстурні координати для точок, спираючись на параметри текстурного середовища і точок. В іншому випадку координати являються константними між точками.
- GL_POLYGON_OFFSET_LINE. Якщо увімкнено, і якщо полігон відмальовується у режимі GL_LINE, до значень глибини фрагментів багатокутника додається зміщення перед виконанням порівнянням глибини. Перегляньте glPolygonOffset.
- GL_POLYGON_OFFSET_POINT. Якщо увімкнено, додається зміщення до значень глибини фрагментів полігону перед виконанням порівняння глибини, якщо багатокутник малюється у режимі GL_POINT. Перегляньте glPolygonOffset.
- GL_POLYGON_SMOOTH. Якщо увімкнено, багатокутники малюються з відповідним фільтруванням. В іншому випадку, малюються не згладжені багатокутники. Для коректно згладжених багатокутників, необхідний канал прозорості і багатокутники повинні бути відсортованими з переду до заду.
- GL_POLYGON_STIPPLE. Якщо увімкнено, використовувати поточний пунктирний шаблон під час малювання багатокутників. Перегляньте функцію glPolygonStipple.
- GL_POST_COLOR_MATRIX_COLOR_TABLE. Якщо увімкнено, виконується пошук кольору на значеннях кольору RGBA після колірних матричних перетворень. Перегляньте glColorTable.
- GL_POST_CONVOLUTION_COLOR_TABLE. Якщо увімкнений, виконувати пошук по таблиці кольорів на колірних значеннях RGBA після скручування. Перегляньте glColorTable.
- GL_RESCALE_NORMAL. Якщо увімкнено і немає активних вертексних шейдерів, нормальні вектори масштабуються після петерворень і перед обчисленням освітлення на множник обчислений з матриці огляду моделі. Якщо матриця огляду моделі масштабує простір уніфіковано, це має ефект відновлення перетворених нормалей до одиничної довжини. Даний метод в загальному більш ефективний ніж GL_NORMALIZE. Перегляньте glNormal і glNormalPointer.
- GL_SAMPLE_ALPHA_TO_COVERAGE. Якщо увімкнено, обчислювання тимчасових значень перекривання, де кожен біт визначається за допомогою значення компоненту прозорості на відповідному розміщення семплу. Після цього тимчасове покриваюче значення і фрагментне перекриваюче значення комбінуються за допомогою операції AND.
- GL_SAMPLE_ALPHA_TO_ONE. Якщо увімкнено, кожне значення прозорості заміняється на максимально репрезентативне значення компоненту прозорості.
- GL_SAMPLE_COVERAGE. Якщо увімкнено, значення перекривання фрагменту і тимчасове перекриваюче значення проходять операцію AND. Якщо GL_SAMPLE_COVERAGE_INVERT встановлюється у GL_TRUE, перекриваюче значення інвертується. Перегляньте glSmapleCoverage.
- GL_SEPARABLE_2D. Якщо увімкнено, виконується двовимірна операція згортання, використовуючи фільтр згортання на вхідних колірних значеннях RGBA. Перегляньте glSeparableFilter2D.
- GL_SCISSOR_TEST. Якщо увімкнено, відкидати фрагменти, які містяться за вказаним прямокутником. Перегляньте glScissor.
- GL_STENCIL_TEST. Якщо увімкнено, виконується тест трафарету і оновлюється трафаретний буфер. Перегляньте glStencilFunc і glStencilOp.
- GL_TEXTURE_1D. Якщо увімкнено і немає активного фрагментного шейдера, виконується одновимірне накриття текстур (хіба-що увімкнене дво- або тривимірне або кубічне накладання текстур). Перегляньте glTexImage1D.
- GL_TEXTURE_2D. Якщо увімкнена і немає активного фрагментного шейдера, виконується двох-вимірне текстурування (хіба-що увімкнене тривимірне або кубічне накладання текстур). Перегляньте glTexImage2D.
- GL_TEXTURE_3D. Якщо увімкнена і немає активного фрагментного шейдера, виконується трьохвимірне накладання текстур (хіба-що увімкнено кубічне текстурування). Перегляньте glTexImage3D.
- GL_TEXTURE_CUBE_MAP. Якщо увімкнено і немає активного фрагментного шейдера, виконується кубічна накладання текстур. Перегляньте glTexImage2D.
- GL_TEXTURE_GEN_Q. Якщо увімкнене і немає активного вертексного шейдера, текстурні q-координати обчислюються використовуючи функцію генерування текстур, визначених за допомогою функції glTexGen. В іншому випадку, використовується поточна текстурна q-координата. Перегляньте glTexGen.
- GL_TEXTURE_GEN_R. Якщо увімкнена і немає жодного вертексного шейдера, текстурна r-координати обчислюється, використовуючи функцію генерації текстур, визначеної за допомогою функції glTexGen. В іншому випадку, використовується поточна текстурна r-координата. Перегляньте glTexGen.
- GL_TEXTURE_GEN_S. Якщо увімкнена і немає активного вертексного шейдера, обчислюється текстурна s-координата, використовуючи текстурну функцію генерації, визначеної за допомогою glTexGen. В іншому випадку, використовується поточна текстурна s-координата. Перегляньте glTexGen.
- GL_TEXTURE_GEN_T. Якщо увімкнена і немає активного вертексного шейдера, текстурна t-координата обчислюється, використовуючи функцію генерації текстур, визначеної у glTexGen. В іншому випадку, використовуєтся поточна текстурна t-координата. Перегляньте glTexGen.
- GL_VERTEX_PROGRAM_POINT_SIZE. Якщо увімкнено і існує активний вертексний шейдер, тоді похідний розмір точки береться з вбудованої шейдерної змінної gl_PointSize і обрізається до залежного від реалізації проміжку розміру точки.
- GL_VERTEX_PROGRAM_TWO_SIDE. Якщо увімкнено і активний вертексний шейдер, система OpenGL буде обирати між передніми і задніми кольорами, спираючись на направлення поверхні багатокутника, зі сторони якого виконується заповнення кольором. Вона не впливає на малювання точок і ліній.
Нотатки
GL_POLYGON_OFFSET_FILL, GL_POLYGON_OFFSET_LINE, GL_POLYGON_OFFSET_POINT, GL_COLOR_LOGIC_OP і GL_INDEX_LOGIC_OP доступні в системах OpenGL версій 1.1 або вище.
GL_RECALE_NORMAL і GL_TEXTURE_3D доступні в системах OpenGL версій 1.2 або вище.
GL_MULTISAMPLE, GL_SAMPLE_ALPHA_TO_COVERAGE, GL_SAMPLE_ALPHA_TO_ONE, GL_SAMPLE_COVERAGE, GL_TEXTURE_CUBE_MAP доступні в системах OpenGL версій 1.3 або вище.
GL_POINT_SPRITE, GL_VERTEX_PROGRAM_POINT_SIZE і GL_VERTEX_PROGRAM_TWO_SIDE доступні тільки якщо система OpenGL має версію 2.0 або вище.
GL_COLOR_TABLE, GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, GL_HISTOGRAM, GL_MINMAX, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE і GL_SEPARABLE_2D доступні тільки якщо ARB_imaging повертається з glGet з аргументом GL_EXTENSIONS.
Для систем OpenGL версій 1.3 або вище, або коли підтримується ARB_multitexture, GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_GEN_S, GL_TEXTURE_GET_T, GL_TEXTURE_GEN_R і GL_TEXTURE_GEN_Q вмикають або вимикають відповідний стан для активної текстурної одиниці, вказаної за допомогою glActiveTexture.
Помилки
GL_INVALID_ENUM генерується якщо значення параметру cap не представляє одне з попередньо описаних значень.
GL_INVALID_OPERATION генерується якщо glEnable або glDisable викликається між відповідними викликами glBegin і glEnd.
Пов'язані параметри
glIsEnabled
Перегляньте також
glActiveTexture, glAlphaFunc, glBlendFunc, glClipPlane, glColorMaterial, glCullFace, glDepthFunc, glDepthRange, glEnableClientState, glFog, glGet, glIsEnabled, glLight, glLightModel, glLineWidth, glLineStipple, glLogicOp, glMap1, glMap2, glMaterial, glNormal, glNormalPointer, glPointSize, glPolygonMode, glPolygonOffset, glPolygonStipple, glSampleCoverage, glScissor, glStencilFunc, glStencilOp, glTexGen, glTexImage1D,
glTexImage2D , glTexImage3D
Оригінал
https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glEnable.xml