glShaderSource - заміняє вихідний джерельний код у об'єкті шейдера.

C-специфікація

void glShaderSource (GLuint shader,
                     GLsizei count,
                     const GLchar **string,
                     const GLint *length) ;

 

Параметри

shader - вказує ідентифікатор (назву) об'єкта шейдера, який вихідний джерельний код необхідно замінити.

count - вказує кількість елементів у масивах string і length

string - вказує масив вказівників на рядки, які містять джерельний вихідний код, який повинен бути завантажений у шейдер.

length - вказує масив довжин рядків в масиві string

Опис

Функція glShaderSource встановлює вихідний джерельний код у шейдері shader на вказаний у масивах string. Будь-який вихідний джерельний код попередньо збережений у об'єкті шейдера повністю замінюється. Кількість рядків у масиві вказується за допомогою параметра функції count. Якщо length містить NULL - вважається, що кожен рядок містить завершуюче значення нуля. Якщо length містить значення інше за NULL - воно вказує на масив, який містить довжини рядків для кожного відповідного елементу масива string. Кожен елемент у масиві length може містити довжину відповідного рядка (нульовий символ не вважається частиною рядка) або значення менше від 0, для вказування, що рядок містить завершуючий символ нуля. Рядки джерельного вихідного коду не сканують або інтерпретуються під час виконання даної функції - вони просто копіюються у вказаний шейдерний об'єкт.

Нотатки

Функція glShaderSource доступна в системі OpenGL від версії 2.0 або вище.

Система OpenGL копіює рядки вихідного джерельного коду під час виклику glShaderSource, отож програма може вивільнити свою копію даного коду одразу ж після виклику функції.

Помилки

GL_INVALID_VALUE генерується, якщо shader не містить значення, яке згенерувала система OpenGL.

GL_INVALID_OPERATION генерується якщо shader не являється об'єктом шейдера.

GL_INVALID_VALUE генерується якщо count містить значення менше 0.

GL_INVALID_OPERATION генерується якщо glShaderSource виконується між відповідними викликами glBegin і glEnd.

Пов'язані параметри

glGetShader з аргументом shader і GL_SHADER_SOURCE_LENGTH

glGetShaderSource з аргументом shader.

glIsShader.

Перегляньте також

glCompileShader, glCreateShader, glDeleteShader

Оригінал

https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glShaderSource.xml