class
Buffer
Используется для хранения и подготовки данных для передачи в атрибуты шейдера
(initData, options?, isElementArray)Данные для инита буфера: содержимое буфера или его размер
Параметры передачи буфера в видеокарту, могут быть переопределены из BufferChannel
Флаг определяющий является ли буффер индексным (если true) или повертексным (если false)
(gl, location?, options?, instancesExt?, locationsCount?)Связывает данные с контекстом WebGL.
В случае Buffer.ArrayBuffer связывает с атрибутами шейдера. А в случае Buffer.ElementArrayBuffer связывает массив индексов.
Если используется первый раз, добавляет данные в контекст WebGL.
Контекст WebGL
Положение аттрибута для связывания данных с переменными в шейдере
Параметры передаваемые в функцию vertexAttribPointer, если их нет, то используются параметры конкретного буфера. Параметры должны быть переданы все.
Экстеншн для работы с instanced буферами,
Количество слотов необходимых атрибуту. По умолчанию равен 1.
Удаляет данные из контекста WebGL.
(gl, index, data)Заменяет часть буфера новыми данными и отправляет их в видеокарту
Индекс, с которого начать замену
Новые данные
BufferChannel
Класс BufferChannel используется, если данные в обычном буфере имееют разные типы и предназначены для разных атрибутов шейдера, т.е. нужно использовать webgl параметры stride и offset. При инициализации классу передаётся Buffer . Несколько BufferChannel могут использовать один и тот же Buffer. Во время рендеринга BufferChannel связывает полученный буфер с нужными параметрами.
@param [object Object] @param
(buffer, options)(gl, location, options?, instancesExt?, locationsCount?)Связывает данные с контекстом WebGL с нужными параметрами. Вызывает Buffer#bind исходного буфера.
Deck2gisLayer
A class that provides rendering any deck.gl layer inside the MapGl canvas / WebGL context.
(props)Example:
const deckLayer = new mapgl.Deck2gisLayer(map, Deck, {
id: 'deckLayer',
deck,
type: HexagonLayer,
data,
getPosition: (d) => [d.point.lon, d.point.lat]
});
map.addLayer(deckLayer);
(map, Deck, deckProps?)Initializes deck.gl instance for working with the MapGL map.
The map instance.
The Deck.gl class
CustomRenderProps initialization options.
Destroys the layer and frees all related resources.
(props)Sets layer properties and updates the layer.
deck.gl layer properties.
Object3D
Базовый класс для 3D объектов.
(object)Добавляет дочерний объект
Дочерний объект
Возвращает позицию объекта относительно глобальных координат.
(object)Убирает дочерний объект
Дочерний объект
Вызывается рендером для подготовки и отрисовки объекта.
(callback)Вызывает переданный callback для себя и для каждого дочернего класса.
(callback)Работает также как и Object3D#traverse , но только для объектов с visible = true
Обновляет локальную матрицу объекта. Необходимо использовать каждый раз после изменения position, scale и quaternion.
Обновляет глобальную матрицу объекта.
Renderer
Используется для инициализация WebGL контекста и отрисовки объектов. Для некоторых объектов может использовать специфичные рендеры.
@param @param [object Object] @param [object Object] @param [object Object] @param [object Object] @param [object Object] @param [object Object] @param [object Object]
(options)(name)Включает расширение WebGL
Название расширения
Возвращает текущий pixel ratio
@returns
Возвращает текущий viewport WebGL
@returns
(value)Устанавливает параметр pixel ratio
(width, height)Устанавливает размеры элементу canvas и viewport для WebGL
Ширина в пикселях
Высота в пикселях
(width?, height?)Устанавливает viewport для WebGL Если размеры не указаны, то выставляет размеры указанные в функции Renderer#setSize
Ширина в пикселях
Высота в пикселях
RenderTarget
Используется для создания фреймбуфера, куда можно отрендерить кадр.
(options)Возвращает текущие буфер или текстуру глубины фреймбуфера
Возвращает текущую текстуру фреймбуфера
Удаляет фреймбуфер из видеокарты
(size)Устанавливает размер фреймбуферу
(gl)Устанавливает пустой фреймбуфер у контекста WebGL
Shader
Шейдер компилирует код и хранит его в видеокарте. Один шейдер может быть использован для нескольких программ.
@param [object Object] @param [object Object] @param [object Object]
(type, code, definitions)(gl, externalDefinitions?)Возвращает webgl шейдер для связывания с программой. Если шейдер используюется первый раз, то компилирует его.
Контекст WebGL
Внешние #define, которые могут перезаписать существующие определения
Возвращает текстовый код шейдера
ShaderAttribute
Шейдерный атрибут, используется только ShaderProgram
@param [object Object]
(gl, shaderProgram)(gl, shaderProgram)ShaderProgram
Шейдерная программа инициализирует шейдеры, подготавливает и связывает данные с WebGL.
@param @param [object Object] @param [object Object] @param [object Object] @param [object Object]
(options)(gl, uniforms?, attributes?)Связывает юниформы и атрибуты программы с контекстом WebGl
Key-value объект содержащий значения юниформ
Key-value объект содержащий значения атрибутов
(gl, externalDefinitions?)Инициализирует программу с контекстом WebGl
(gl, externalDefinitions?)Компилирует шейдеры и слинковывает программу. Одна из двух необходимых функций для работы шейдерной программы.
(gl)Лоцирует атрибуты и юниформе на основе шейдера. Одна из двух необходимых функций для работы шейдерной программы.
Texture
Текстуры используются для отрисовки изображений в WebGL
(src?, options)В качестве изображения может быть либо элемент img, либо canvas
(gl, index?)Связывает WebGL и данные текстуры. При первом вызов происходит инициализация.
Номер текстуры в контексте WebGL. Если его нет, используется уже активированный юнит текстуры.
Возвращает WebGL текстуру
@returns
Удаляет текстуру из видеокарты
(gl, src, x, y)Обновляет часть текстуры
Горизонтальное смещение, с которого записываем в текстуру
Вертикальное смещение, с которого записываем в текстуру
Vao
Обертка над vertex array object. https://developer.mozilla.org/ru/docs/Web/API/OES_vertex_array_object
Для использования необходимо включить расширение renderer.addExtension('OES_vertex_array_object')
(shaderProgram, attributes, indicesBuffer)Шейдерная программа, каждый Vao привязан к одной шейдерной программе.
Key-value объект содержащий данные атрибутов.
Буффер индексов.
(vaos)(state)Связывает vao с контекстом WebGL.
Стейт рендера
Копирует Vao
(gl)Возвращает GL-тип индексного буфера или null
@returns [object Object]
Удаляет vao.
(name, buffer)(aliases)Карта псевдонимов вида { 'shader_att_name': 'vao_attr_name' }. Эти псевдонимы могут использоваться при связке буферов с шейдерными атрибутами в методе bind. Например, в Vao задан буфер 'texcoord_0'. В шейдере он может использоваться под именем 'texcoord_color'.
Отвязывает vao от контекста WebGL. ВНИМАНИЕ: Этот метод нужно вызывать всегда, перед тем как будет использоваться стандартный подход для связывания атрибутов через ShaderProgram#bind .