glCreateProgram - створює об'єкт програми.

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

GLuint glCreateProgram (void) ;

Опис

Функція glCreateProgram створює пустий об'єкт програми і повертає не нульове значення, за яким вона може ідентифікованою. Об'єкт програми являється об'єктом до якого можна прикріпити шейдерні об'єкти. Це забезпечує механізм для вказування об'єктів шейдера, які будуть скомпонованими для створення програми. Вона також забезпечує засоби для перевірки сумісності шейдерів, які будуть використані для створення програми (наприклад, перевірка сумісності між вертексним шейдером і фрагментним шейдером). Якщо шейдерний об'єкт більше не потрібен у якості частини програми, він може бути від'єднаним.

Один або декілька виконуваних програм створюються у програмному об'єкті за допомогою успішного прикріплення шейдерних об'єктів до неї за допомогою glAttachShader, успішного компілювання шейдерних об'єктів за допомогою функції glCompileShader, і успішного компонування програми за допомогою glLinkProgram. Дані виконувані програми виконуються під час виклику glUseProgram. Програмні об'єкти можуть видалятися за допомогою функції glDeleteProgram. Пам'ять асоційована з об'єктами програм видаляються коли вони не будуть частинами поточного стану рендерингу будь-якого контексту.

Нотатки

glCreateProgram доступна від систем OpenGL версії 2.0 або вище.

На подобі списків відтворення і текстурних об'єктів, простір імен для об'єкта програми може бути розподіленим між контекстами, поки серверні частини контексту розподіляють один адресний простір. Якщо простір імен розподілений між контекстами, будь-які приєднані об'єкти і дані асоційовані з цими приєднаними об'єктами також являються розподіленими.

Програми являються відповідальними за забезпечення синхронізації між викликами API коли до об'єктів отримується доступ з різних потоків виконання.

Помилки

Дана функція провертає 0, якщо виникає помилка під час створення об'єкта програми.

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

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

glGet з аргументом GL_CURRENT_PROGRAM

glGetActiveAttrib з валідним об'єктом програми і індексом активної змінної атрибуту.

glGetActiveUniform з коректним об'єктом програми і індексом з активною уніфікованою змінною.

glGetAttachedShaders з коректним ідентифікатором об'єкта програми.

glGettribLocation з коректним значенням ідентифікатора об'єкта програми і значення атрибута.

glGetProgram з коректним об'єктом програми і параметром який необхідно отримати.

glGetProgramInfoLog з коректним об'єктом програми.

glGetUniform з коректним об'єктом програми і розміщенням уніфікованої змінної.

glGetUniformLocation з коректним об'єктом програми і ім'ям уніфікованої змінної

glIsProgram

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

glAttachShader, glBindAttribLocation, glCreateShader, glDeleteProgram, glDetachShader, glLinkProgram, glUniform, glUseProgram, glValidateProgram

Оригінал

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