Spec-Zone.ru › Web APIs

WEBGL_multi_draw: метод multiDrawElementsWEBGL()

Ограниченная доступность

Эта функция не является базовой, так как она не работает в некоторых из наиболее широко используемых браузеров.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Метод WEBGL_multi_draw.multiDrawElementsWEBGL() API WebGL рендерит несколько примитивов из данных массива. Он идентичен нескольким вызовам метода gl.drawElements().

Синтаксис

multiDrawElementsWEBGL(mode,
    countsList, countsOffset,
    type,
    firstsList, firstsOffset,
    drawCount);

Параметры

mode

Значение GLenum, определяющее тип примитива для рендеринга. Возможные значения:

  • gl.POINTS: Рисует одну точку.
  • gl.LINE_STRIP: Рисует прямую линию до следующей вершины.
  • gl.LINE_LOOP: Рисует прямую линию до следующей вершины и соединяет последнюю вершину с первой.
  • gl.LINES: Рисует линию между парой вершин.
  • gl.TRIANGLE_STRIP
  • gl.TRIANGLE_FAN
  • gl.TRIANGLES: Рисует треугольник для группы из трёх вершин.
countsList

Массив Int32Array или Array (из GLint) который содержит список чисел, указывающих на индексы для отрисовки.

countsOffset

Значение GLUint, определяющее начальную позицию в массиве countsList.

тип

Значение GLenum, определяющее тип значений в буфере массива элементов. Возможные значения:

  • gl.UNSIGNED_BYTE

  • gl.UNSIGNED_SHORT

  • При использовании расширения OES_element_index_uint:

    • gl.UNSIGNED_INT
offsetsList

Массив Int32Array или Array (из GLsizei) который содержит список начальных индексов для массивов векторов.

offsetsOffset

Значение GLuint, определяющее начальную позицию в массиве offsetsList.

drawCount

Значение GLsizei, определяющее количество экземпляров диапазона элементов для выполнения.

Возвращаемое значение

Ничего.

Исключения

  • Если mode не соответствует допустимым значениям, выбрасывается ошибка gl.INVALID_ENUM.
  • Если drawCount или элементы в countsList или offsetsList отрицательные, выбрасывается ошибка gl.INVALID_VALUE.

Примеры

const counts = new Int32Array(/* … */);
const offsets = new Int32Array(/* … */);
ext.multiDrawElementsWEBGL(
  gl.TRIANGLES,
  counts,
  0,
  gl.UNSIGNED_SHORT,
  offsets,
  0,
  counts.length,
);

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

Спецификация
Спецификация расширения WebGL WEBGL_multi_draw

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
multiDrawElementsWEBGL 86 86 Нет 72 15 86 Нет Нет 15 14.0 86

См. также

  • WebGLRenderingContext.drawElements()
  • WebGL2RenderingContext.drawElementsInstanced()

© 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/multiDrawElementsWEBGL

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API