Смотри также
gl AttachObjectARB, gl Compi 1 eShaderARB, glCreateProgramObjectARB, glCreateShaderObjectARB,
gl Del eteObjectARB, gl Li nkProgramARB, glShaderSourceARB, glValidateProgramARB
gIGetShaderSourceARB
Название
gIGetShaderSourceARB - возвращает строку исходного кода из заданного шейдерного объекта.
Прототип функции
void glGetShaderSourceAREK GLhandleARB shader,
GLsizei maxLength,
GLsizei *length,
GLcharARB *source)
Параметры
shader Дескриптор шейдерного объекта, к которому выполняется запрос.
maxLength Размер символьного буфера для сохранения возвращаемой строки кода.
1 ength Возвращает длину строки кода.
source Указывает на символьный буфер, в котором возвращается исходный код.
Описание
Функция gIGetShaderSourceARB возвращает последовательность строк исходного кода шейдерного объекта shader, соединенных в одну строку. Этот код появляется в шейдерном объекте после вызова функции gl ShaderSourceARB. Возвращаемая строка завершается нуль-символом.
Функция gIGetShaderSourceARB возвращает в source ту часть кода, которая может поместиться в maxLength символах. Количество реально записанных символов без учета нуль-символа возвращается в length. Необходимый размер буфера для сохранения всего кода можно получить с помощью функции gl GetObj ect Ра rameterARB с параметром GL_OBJECT_SHADER_SOURCE_LENGTH_ARB.
Ошибки
GL_INVALID_VALUE возникает:
□ если shader не является дескриптором объекта OpenGL;
□ значение maxLength меньше 0.
GL_INVALID_OPERATION возникает в следующих случаях:
□ shader не является объектом типа GL_SHADER_OBJECT_ARB;
□ функция gl GetShaderSourceARB выполняется между соответствующими вызовами
gl Begin и gl End.
Соответствующие GET-функции
glGetObjectParameterARB с аргументом GL_OBJECT_SHADER_SOURCE_LENGTH_ARB.
Смотри также
glCreateShaderObjectARB, glGetObjectParameterARB, glShaderSourceARB
gIGetUniformARB
Название
gl GetUni formfvARB, gl GetUni formi vARB - возвращает значение uniform-переменной.
Прототип функции
void glGetUniformfvARB( GLhandleARB program.
GLint location.
GLfloat *params)
void glGetUniformivARB( GLhandleARB program.
GLint location.
GLint *params)
Параметры
program Дескриптор программного объекта, к которому выполняет ся запрос.
1 ocati on Расположение запрашиваемой uniform-переменной,
params Возвращает значение указанной uniform-переменной.
Описание
Функция gIGetUniformARB возвращает в params значение указанной uniform-nepe-менной. Uniform-переменная указывается с помощью location, а количество возвращаемых значений зависит от типа переменной. Если uniform-переменная определена в шейдере как boolean, int или float, возвращается одно значение. Если же переменная типа vec2, i vec2 или bvec2, возвращаются два значения. При типе переменной vec3, i vec3 или bvec3 возвращаются три значения и т. д.
Расположение uniform-переменной до компоновки программного объекта неизвестно. После компоновки его можно получить функцией gl GetUni formLocati onARB. Это значение затем передается в gl GetUni formARB, чтобы получить текущее значение uniform-переменной. После успешной компоновки программного объекта расположение любой uniform-переменной остается постоянным до следующей операции компоновки.