OpenGL определяет минимальные значения, которые в конкретной реализации могут быть изменены в большую сторону. Эти значения - минимальная приемлемая норма для реализации OpenGL, на которую может рассчитывать любой разработчик:
//
// Константы, зависящие от реализации. Эти значения // установленный стандартом минимум.
//
const int gl_MaxLights = 8; const int gl_MaxClipPlanes = 6: const int g1_MaxTextureUnits = 2;
4.5. Взаимодействие со стандартными операциями OpenGL
const int gl_MaxTextureCoords = 2:
const int glJIaxVertexAttribs = 16:
const int gl^MaxVertexUniformComponents = 512:
.const int gl_MaxVaryingFloats = 32:
const int gl_MaxVertexTextureImageUnits = 0:
const int glJiaxTexturelmageUnits = 2:
const int g]_MaxFragmentUnifornnComponents = 64;
const int gl_MaxCombinedTextureImageUnits = 2:
Перечисленные константы могут понадобиться тендеру. Например, шейдер может запускать функцию вычисления освещения, которая в цикле будет проходить по всем заданным источникам освещения, учитывая их параметры для вычисления параметров вершины. Такой цикл можно организовать, используя встроенную константу glJIaxLights. Но, скорее всего, приложение будет использовать даже не эту константу, а функцию gl Get, чтобы можно было определить, следует ли вообще загружать шейдер (см. раздел 7.10).
.5. Взаимодействие со стандартными операциями OpenGL
Этот раздел содержит в основном подробности для опытных разработчиков, которые хорошо знакомы с OpenGL и хотят узнать, как программируемые возможности OpenGL будут взаимодействовать с остальной функциональностью.
4.5.1. Двухсторонний цветовой режим Вершинные шейдеры могут работать в двухстороннем цветовом режиме. Цвет передней и задней сторон вычисляется вершинным шейдером и записывается в переменные gl_FrontColor, gl _BackColor, gl_FrontSecondaryColor Hgl_BackSecondaryColor. Если включен именно этот режим, один из этих цветов в OpenGL будет выбран для дальнейшей обработки. Выбор зависит от вида примитива и знака оконных координат этого примитива (за более точным описанием необходимо обратиться к спецификации). Если двухсторонний режим цвета отключен, OpenGL всегда выбирает цвет передней стороны. Этот режим можно переключать функциями gl Enable и gl Di sab! e, передавая константу GL_VERTEX_PROGRAM_TWO_SIDE_ARB.