WEBGL_multi_draw: multiDrawArraysInstancedWEBGL() метод
Ограниченная доступность
Эта функция не является базовой, так как она не работает во всех широко используемых браузерах.
Метод WEBGL_multi_draw.multiDrawArraysInstancedWEBGL() API WebGL API отображает несколько примитивов из данных массива. Он идентичен нескольким вызовам метода gl.drawArraysInstanced().
Синтаксис
multiDrawArraysInstancedWEBGL(mode,
firstsList, firstsOffset,
countsList, countsOffset,
instanceCountsList, instanceCountsOffset,
drawCount);
Параметры
mode-
Значение
GLenum, определяющее тип примитива для отрисовки. Возможные значения:-
gl.POINTS: Отрисовывает одну точку. -
gl.LINE_STRIP: Рисует прямую линию до следующей вершины. -
gl.LINE_LOOP: Рисует прямую линию до следующей вершины и соединяет последнюю вершину с первой. -
gl.LINES: Рисует линию между парой вершин. gl.TRIANGLE_STRIPgl.TRIANGLE_FAN-
gl.TRIANGLES: Рисует треугольник для группы из трех вершин.
-
firstsList-
Массив
Int32ArrayилиArray(изGLint) содержащий список начальных индексов для массивов векторов. firstsOffset-
GLuint, определяющий начальную позицию в массивеfirstsLists. countsList-
Массив
Int32ArrayилиArray(изGLsizei) содержащий список количества индексов для отрисовки. countsOffset-
GLuint, определяющий начальную позицию в массивеcountsList. instanceCountsList-
Массив
Int32ArrayилиArray(изGLsizei) содержащий список количества экземпляров диапазона элементов для выполнения. instanceCountsOffset-
GLuint, определяющий начальную позицию в массивеinstanceCountsList. drawCount-
GLsizei, определяющее количество экземпляров диапазона элементов для выполнения.
Возвращаемое значение
Ничего.
Исключения
- Если
modeне соответствует допустимым значениям, выбрасывается ошибкаgl.INVALID_ENUM. - Если
drawCountили элементы вfirstsList,countsList, илиinstanceCountsListотрицательные, выбрасывается ошибкаgl.INVALID_VALUE. - Если
gl.CURRENT_PROGRAMnull, выбрасывается ошибкаgl.INVALID_OPERATION.
Примеры
const firsts = new Int32Array(/* … */); const counts = new Int32Array(/* … */); const instanceCounts = new Int32Array(/* … */); ext.multiDrawArraysInstancedWEBGL( gl.TRIANGLES, firsts, 0, counts, 0, instanceCounts, 0, firsts.length, );
Спецификации
| Спецификация |
|---|
| Спецификация расширения WebGL WEBGL_multi_draw |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
multiDrawArraysInstancedWEBGL |
86 | 86 | Нет | 72 | 15 | 86 | Нет | Нет | 15 | 14.0 | 86 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_multi_draw/multiDrawArraysInstancedWEBGL