7.5. Функции запроса состояния

API языка шейдеров OpenGL содержит несколько функций для запроса состояния объекта. Чтобы получить тип объекта, подтип, результат выполнения операции над объектом, количество присоединенных объектов, количество активных атрибутов (см. раздел 7.6) и uniform-переменных (см. раздел 7.7) или длину любой строки из объекта, используется одна из следующих функций:

void glGetObjectParameterfvARB (GLhandleARB object.

GLenum pname.

GLfloat *params)

void glGetObjectParameterivARB (GLhandleARB object.

GLenum pname.

GLint *pdrdms)

Эти функции возвращают в params значение параметра объекта object. Они могут использоваться для получения информации об объекте. В табл, 7.1 значениерпате показано слева, а выполняемая операция - справа.

Таблица 7.1. Запрашиваемые параметры объекта

Параметр

Операция

GL_OBJECT_TYPE_ARB

params возвращает значение GL_PROGRAM_OBJECT_ARB или GL_SHADER_OBJECT_ARB, в зависимости от того, является ли object идентификатором программного или шейдерного объекта

BL_0BJECT_SUBTYPE_AR8

params возвращает значение GL_VERTEX_SHADER_ARB

или GL_FRAGMENT_SHADER_ARB в зависимости от того, является ли object идентификатором вершинного или фрагментного шейдера

GL_OBJECT_DELETEJTATUS_ ARB

params возвращает 1 или l,0f, если объект помечен для удаления, и 0 или 0,0f, если не помечен

GL_OBJ£CT_COMPILE_STATUS_ ARB

params возвращает 1 или l,0f, если последняя компиляция указанного шейдерного объекта была успешна, и 0 или 0,0f, если неуспешна

EL_0B J ECT_L IN K_STATUS_ARB

params возвращает 1 или 1,0Г, если последняя компоновка указанного программного объекта была успешна, и 0 или 0,0f, если неуспешна

GLJ)B J ECT_VAL I DATE_STATU S_ ARB

params возвращает 1 или 1,0f, если последняя проверка программного объекта была успешна, и 0 или 0,0f, если неуспешна

GLJ)BJECTJNFO_LOG_LENGTH_ ARB

params возвращает количество символов в информационном журнале указанного объекта, включая символ конца строки. Если у объекта нет информаци онного журнала, возвращается значение 0 или 0,Qf

£L_OBJECT_ATTACHEDJ]BJECTS_ ARB

params возвращает количество объектов, присоединенных к указанному программному объекту

GL_OBJECT_ACTIV E_ATTRIBUTES _ARB

params возвращает количество активных attribute-переменных заданного программного объекта

GL_0BJ ECT_ACTIV E_ATTRI BUT E_ MAX_LENGTH_ARB

params возвращает длину самого длинного имени активной attribute-переменной, включая символ конца строки, для заданного программного объекта. Если не существует активных attribute-переменных, возвращается 0 или 0,0f

GL_OBJECT_ACTIVE_UMIF0RMS_ ARB

params возвращает количество активных uniform-переменных заданного программного объекта

fiL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB

params возвращает длину самого длинного имени активной uniform-переменной, включая символ конца строки, для заданного программного объекта. Если не существует активных uniform-перемен-ных, возвращается 0 или 0,0f

GLJ)BJECT_SHADER_SOURCE_LENGTH_ARB

params возвращает общую длину исходного кода шейдера, включая символ конца строки. Если кода нет, возвращается значение 0 или 0,0f

Исходный код шейдера можно получить из шейдерного объекта, вызвав функцию:


⇐ вернуться назад | | далее ⇒