Spec-Zone.ru › Web APIs

WEBGL_multi_draw: метод multiDrawElementsInstancedWEBGL()

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

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

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

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

Синтаксис

multiDrawElementsInstancedWEBGL(mode,
    countsList, countsOffset,
    type,
    firstsList, firstsOffset,
    instanceCountsList, instanceCountsOffset,
    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.

type

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

  • gl.UNSIGNED_BYTE

  • gl.UNSIGNED_SHORT

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

    • gl.UNSIGNED_INT
offsetsList

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

offsetsOffset

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

instanceCountsList

Массив Int32Array или Array (из GLsizei) указывающий список количества экземпляров диапазона элементов для выполнения.

instanceCountsOffset

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

drawCount

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

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

Ничего.

Исключения

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

Примеры

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

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

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

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari в iOS Samsung Internet WebView Android
multiDrawElementsInstancedWEBGL 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/multiDrawElementsInstancedWEBGL

Spec-Zone.ru

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