Spec-Zone.ru › Web APIs

WebGLRenderingContext: метод drawElements()

Базовая линия Широко доступен

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

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

Примечание: Эта функция доступна в Web Workers.

Метод WebGLRenderingContext.drawElements() API WebGL отрисовывает примитивы из данных массива.

Синтаксис

drawElements(mode, count, type, offset)

Параметры

mode

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

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

Значение GLsizei, определяющее количество элементов связанного буфера массива элементов, которые нужно отрисовать. Например, для отрисовки каркасного треугольника с gl.LINES, количество должно быть 2 конечными точками на линию × 3 линии = 6 элементов. Однако, для отрисовки того же каркасного треугольника с gl.LINE_STRIP, буфер массива элементов не повторяет индексы для конца первой линии/начала второй линии и конца второй линии/начала третьей линии, поэтому count будет четыре. Для отрисовки того же треугольника с gl.LINE_LOOP, буфер массива элементов также не повторяет первую/последнюю вершину, поэтому count будет три.

type

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

  • gl.UNSIGNED_BYTE
  • gl.UNSIGNED_SHORT

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

  • gl.UNSIGNED_INT
offset

Значение GLintptr, определяющее байтовый смещение в буфере массива элементов. Должно быть допустимым кратным размеру указанного type.

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

Ничего (undefined).

Исключения

  • Если mode не соответствует допустимым значениям, выбрасывается ошибка gl.INVALID_ENUM.
  • Если offset не является допустимым кратным размеру данного типа, выбрасывается ошибка gl.INVALID_OPERATION.
  • Если count отрицательно, выбрасывается ошибка gl.INVALID_VALUE.

Примеры

gl.drawElements(gl.POINTS, 8, gl.UNSIGNED_BYTE, 0);

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

Спецификация
Спецификация WebGL
# 5.14.11

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

Десктоп Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на iOS Samsung Internet WebView Android
drawElements 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3

См. также

  • WebGLRenderingContext.drawArrays()
  • OES_element_index_uint
  • WEBGL_multi_draw.multiDrawElementsWEBGL()

© 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/WebGLRenderingContext/drawElements

Spec-Zone.ru

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