glCreateShader - створює шейдерний об'єкт.

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

GLuint glCreateShader (GLenum shaderType) ;

Параметри

shaderType - вказує тип шейдера, який необхідно створити. Повинен містити GL_VERTEX_SHADER або GL_FRAGMENT_SHADER.

Опис

Функція glCreateShader створює порожній шейдерний об'єкт і повертає не нульове значення яким він може ідентифікуватися. Шейдерний об'єкт використовується для утримування рядків джерельного вихідного коду, які визначають шейдер. Параметр shaderType визначає тип шейдера, який необхідно створити. Підтримуються два типи шейдерів. Шейдер типу GL_VERTEX_SHADER являється шейдером, який призначений для виконання на програмованому вертексному процесорі і замінює фіксовані функції обробки вертексів OpenGL. Шейдер типу GL_FRAGMENT_SHADER являється шейдером, який призначений для виконання на програмованому процесорі фрагментів і заміняє фіксовані функції обробки фрагментів OpenGL.

Після створення, параметр GL_SHADER_TYPE шейдерного об'єкта встановлюється в значення GL_VERTEX_SHADER або GL_FRAGMENT_SHADER, у відповідності до параметру shaderType.

Нотатки

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

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

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

Помилки

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

GL_INVALID_ENUM генерується, якщо значення shaderType не являється доступним значенням.

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

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

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

glGetShaderInfoLog з коректним шейдерним об'єктом.

glGetShaderSource з коректним шейдерним об'єктом.

glIsShader

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

glAttachShader, glCompileShader, glDeleteShader, glDetachShader, glShaderSource

Оригінал

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