← 返回首页
WebGLProgram - Интерфейсы веб API | MDN

This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

WebGLProgram

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..

* Some parts of this feature may have varying levels of support.

WebGLProgram это часть WebGL API и комбинация двух составляющих WebGLShader-ов, состоящих из вертикального и фрагментного шейдеров (оба написаны на GLSL). Затем они связываются в готовую к использованию программу.

js
var program = gl.createProgram(); // Прикрепление уже существующих шейдеров gl.attachShader(program, vertexShader); gl.attachShader(program, fragmentShader); gl.linkProgram(program); if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { var info = gl.getProgramInfoLog(program); throw "Could not compile WebGL program. \n\n" + info; }

Смотрите WebGLShader для информации о том, как создать vertexShader и fragmentShader в примере выше.

In this article

Примеры

Использование программы

Шаги для того, чтобы сделать какую-то работу с программой, включают сообщение GPU об использовании программы, связывание соответствующих данных и параметров конфигурации и наконец отрисовку чего-то на экране.

js
// Использование программы gl.useProgram(program); // Связывание существующих атрибутов данных gl.bindBuffer(gl.ARRAY_BUFFER, buffer); gl.enableVertexAttribArray(attributeLocation); gl.vertexAttribPointer(attributeLocation, 3, gl.FLOAT, false, 0, 0); // Отрисовка простого треугольника gl.drawArrays(gl.TRIANGLES, 0, 3);

Удаление программы

Если существует ошибка связывания программы или вы хотите удалить существующую программу, тогда это так же просто, как запустить WebGLRenderingContext.deleteProgram(). Это освободит память от связанной программы.

js
gl.deleteProgram(program);

Спецификации

Specification
WebGL Specification
# 5.6

Совместимость с браузерами

Enable JavaScript to view this browser compatibility table.

Смотрите также