В конечном итоге, производители графических ускорителей будут реализовывать большую часть компилятора и компоновщика языка шейдеров OpenGL. Это программное обеспечение будет включаться в стандартный пакет от производителя вместе с Open GL-драйвером.
2.5.3. Расширения OpenGL API
До последней версии OpenGL функциональность языка OpenGL не включалась в стандарт, а была доступна как набор расширений, поддерживаемых различными производителями графических акселераторов. Ожидается, что эта функциональность приживется в стандарте, и можно будет убрать суффикс ARB из имен функций, констант и типов данных этих расширений.
Расширение для шейдеров, программных объектов и функциональности, общей для всех программируемых процессоров, называется ARB_shader_objects. Это расширение включает в себя следующие компоненты:
□ glCreateShaderObjectARB - создание шейдерного объекта;
□ glCreateProgramObjectARB - создание программного объекта;
□ gl Del eteObj ect ARB - удаление шейдерного или программного объекта;
□ glShaderSourceARB - загрузка строк исходного кода в шейдерный объект;
□ gl Compi 1 eSbsderARB - компиляция шейдера;
□ glAttachObjectARB - прикрепление шейдерного объекта к программному объекту;
□ gl DetachObjectARB - отсоединение шейдерного объекта от программного объекта;
□ gl Li nkProgramARB - компоновка программного объекта для создания выполняемого кода;
□ gl UseProgramObjectARB - установка выполняемого кода в качестве текущего состояния;
□ glVal idateProgramARB - проверка правильности программного объекта;
□ gl Uni formARB - установка значения uniform-переменной;
□ glGetActiveUniformARB - получение имени, размера и типа активной uniform-переменной программного объекта;
□ glGetAttachedObjectsARB - получение списка присоединенных к программному объекту шейдерных объектов;
□ glGetHandleARB - получение дескриптора используемого в данный момент программного объекта;
□ gl GetObJ ect Ра rameterARB - получение параметров объекта;
□ gl GetShaderSourceARB - получение исходного кода заданного шейдерного объекта;
□ gl Get Uni formARB - получение текущего значения uniform-переменной;
□ gl GetUni formLocat i onARB - запрос назначенного компоновщиком расположения uniform-переменной;
□ gl Get IлfoLogARB - получение информационного журнала записей (лога) для шейдерного или программного объекта.
Другое расширение, ARB_vertex_shader, позволяет использовать возможности нового, недавно определенного программируемого вершинного процессора. Это расширение определяет место этого процессора в общей схеме обработки графики OpenGL и предоставляет API для уникальных возможностей вершинного процессора. Это расширение включает в себя: