class
Buffer
Используется для хранения и подготовки данных для передачи в атрибуты шейдера
new constructor
(initData, options?, isElementArray)
Parameters
initData
numberTypedArrayArrayBufferDataView
Данн ые для инита буфера: содержимое буфера или его размер
options?
Partial<BufferBindOptions>
Параметры передачи буфера в видеокарту,
могут быть переопределены из
BufferChannel
isElementArray
boolean
Флаг определяющий является ли буффер индексным (если true)
или повертексным (если false)
Returns
Buffer<>
Methods
bind
(gl, location?, options?, instancesExt?, locationsCount?)
Связывает данные с контекстом WebGL.
В случае Buffer.ArrayBuffer связывает с атрибутами шейдера.
А в случае Buffer.ElementArrayBuffer связывает массив индексов.
Если используется первый раз, добавляет данные в контекст WebGL.
Parameters
gl
Контекст WebGL
location?
nullnumber
Положение аттрибута для связывания данных с переменными в шейдере
options?
Параметры передаваемые в функцию vertexAttribPointer, если их нет,
то используются параметры конкретного буфера. Параметры должны быть переданы все.
instancesExt?
nullANGLE_instanced_arrays
Экстеншн для работы с instanced буферами,
locationsCount?
number
Количество слотов необходимых атрибуту. По умолчанию равен 1.
Returns
Buffer<>
remove
Удаляет данные из контекста WebGL.
Returns
Buffer<>
subData
(gl, index, data)
Заменяет часть буфера новыми данными и отправляет их в видеокарту
Parameters
gl
WebGLRenderingContext
index
number
Индекс, с которого начать замену
data
TypedArray
Новые данные
Returns
Buffer<>
BufferChannel
Класс BufferChannel используется, если данные в обычном буфере имееют разные типы
и предназначены для разных атрибутов шейдера, т.е. нужно использовать webgl параметры stride и offset.
При инициализации классу передаётся
Buffer
. Несколько BufferChannel могут использовать один и тот же Buffer.
Во время рендеринга BufferChannel связывает полученный буфер с нужными параметрами.
@param [object Object]
@param
new constructor
(buffer, options)
Parameters
buffer
Buffer<>
options
Returns
BufferChannel<>
Methods
bind
(gl, location, options?, instancesExt?, locationsCount?)
Связывает данные с контекстом WebGL с нужными параметрами.
Вызывает
Buffer#bind
исходного буфера.
Parameters
gl
location
number
options?
instancesExt?
ANGLE_instanced_arrays
locationsCount?
number
Returns
void
Deck2gisLayer
A class that provides rendering any deck.gl layer inside the MapGl canvas / WebGL context.
new constructor
(props)
Example:
```js
const deckLayer = new mapgl.Deck2gisLayer(map, Deck, {
id: 'deckLayer',
deck,
type: HexagonLayer,
data,
getPosition: (d) => [d.point.lon, d.point.lat]
});
map.addLayer(deckLayer);
```
Parameters
props
LayerProps<LayerT>
Returns
Deck2gisLayer<LayerT>
Methods
initDeck
(map, Deck, deckProps?)
Initializes deck.gl instance for working with the MapGL map.
Parameters
map
Map<>
The map instance.
Deck
any
The Deck.gl class
deckProps?
CustomRenderProps initialization options.
Returns
default<>
destroy
Destroys the layer and frees all related resources.
Returns
void
setProps
(props)
Sets layer properties and updates the layer.
Parameters
props
Partial<LayerProps<LayerT>>
deck.gl layer properties.
Returns
void
Object3D
Базовый класс для 3D объектов.
new constructor
Returns
Object3D<>
Methods
add
(object)
Добавляет дочерний объект
Parameters
object
Object3D<>
Дочерний объект
Returns
Object3D<>
getWorldPosition
Возвращает позицию объекта относительно глобальных координат.
Returns
Vec3
remove
(object)
Убирает дочерний объект
Parameters
object
Object3D<>
Дочерний объект
Returns
Object3D<>
render
Вызывается рендером для подготовки и отрисовки объекта.
Returns
Object3D<>
traverse
(callback)
Вызывает переданный callback для себя и для каждого дочернего класса.
Parameters
callback
(obj: Object3D<>) => void
Returns
Object3D<>
traverseVisible
(callback)
Работает также как и
Object3D#traverse
, но только для объектов с visible = true
Parameters
callback
(obj: Object3D<>) => void
Returns
Object3D<>
updateLocalMatrix
Обновляет локальную матрицу объекта. Необходимо использовать каждый раз после изменения position, scale
и quaternion.
Returns
Object3D<>
updateWorldMatrix
Обновляет глобальную матрицу объекта.
Returns
Object3D<>
Renderer
Используется для инициализация WebGL контекста и отрисовки объектов.
Для некоторых объектов может использовать специфичные рендеры.
@param
@param [object Object]
@param [object Object]
@param [object Object]
@param [object Object]
@param [object Object]
@param [object Object]
@param [object Object]
new constructor
(options)
Parameters
options
RendererOptions
Returns
Renderer<>
Methods
addExtension
(name)
Включает расширение WebGL
Parameters
name
string
Название расширения
Returns
Renderer<>
getPixelRatio
Возвращает текущий pixel ratio
@returns
Returns
number
getSize
Возвращает текущий viewport WebGL
@returns
Returns
Vec2
setPixelRatio
(value)
Устанавливает параметр pixel ratio
Parameters
value
number
Returns
Renderer<>
setSize
(width, height)
Устанавливает размеры элементу canvas и viewport для WebGL
Parameters
width
number
Ширина в пикселях
height
number
Высота в пикселях
Returns
Renderer<>
setViewport
(width?, height?)
Устанавливает viewport для WebGL
Если размеры не указаны, то выставляет размеры указанные в функции
Renderer#setSize
Parameters
width?
number
Ширина в пикселях
height?
number
Высота в пикселях
Returns
Renderer<>
RenderTarget
Используется для создания фреймбуфера, куда можно отрендерить кадр.
new constructor
(options)
Parameters
options
Partial<RenderTargetOptions>
Returns
RenderTarget<>
Methods
getDepthBuffer
Возвращает текущие буфер или текстуру глубины фреймбуфера
Returns
nullTexture<>WebGLRenderbuffer
getTexture
Возвращает текущую текстуру фреймбуфера
Returns
nullTexture<>
remove
Удаляет фреймбуфер из видеокарты
Returns
RenderTarget<>
setSize
(size)
Устанавливает размер фреймбуферу
Parameters
size
Vec2
Returns
RenderTarget<>
unbind
(gl)
Устанавливает пустой фреймбуфер у контекста WebGL
Parameters
Shader
Шейдер компилирует код и хранит его в видеокарте.
Один шейдер м ожет быть использован для нескольких программ.
@param [object Object]
@param [object Object]
@param [object Object]
new constructor
(type, code, definitions)
Parameters
Methods
get
(gl, externalDefinitions?)
Возвращает webgl шейдер для связывания с программой.
Если шейдер используюется первый раз, то компилирует его.
Parameters
gl
Контекст WebGL
externalDefinitions?
Внешние #define, которые могут перезаписать существующие определения
Returns
nullWebGLShader
getCode
Возвращает текстовый код шейдера
Returns
string
ShaderAttribute
Шейдерный атрибут, используется только
ShaderProgram
@param [object Object]
Methods
bindLocation
(gl, shaderProgram)
Parameters
getLocation
(gl, shaderProgram)
Parameters
ShaderProgram
Шейдерная программа инициализирует шейдеры, подготавливает и связывает данные с WebGL.
@param
@param [object Object]
@param [object Object]
@param [object Object]
@param [object Object]
new constructor
(options)
Parameters
options
Returns
ShaderProgram<>
Methods
bind
(gl, uniforms?, attributes?)
Связывает юниформы и атрибуты программы с контекстом WebGl
Parameters
gl
uniforms?
Record<string, any>
Key-value объект содержащий значения юниформ
attributes?
Record<string, Buffer<>BufferChannel<>>
Key-value объект содержащий значения атрибутов
Returns
ShaderProgram<>
enable
(gl, externalDefinitions?)
Инициализирует программу с контекстом WebGl
Parameters
link
(gl, externalDefinitions?)
Компилирует шейдеры и слинковывает программу.
Одна из двух необходимых функций для работы шейдерной программы.
Parameters
locate
(gl)
Лоцирует атрибуты и юниформе на основе шейдера.
Одна из двух необходимых функций для работы шейдерной программы.
Parameters
Texture
Текстуры используются для отрисовки изображений в WebGL
new constructor
(src?, options)
Parameters
src?
nullTexImageSourceArrayBufferView
В качестве
изображения может быть либо элемент img, либо canvas
options
TextureOptionsRecord<string, unknown>
Returns
Texture<>
Methods
enable
(gl, index?)
Связывает WebGL и данные текстуры.
При первом вызов происхо дит инициализация.
Parameters
gl
index?
number
Номер текстуры в контексте WebGL.
Если его нет, используется уже активированный юнит текстуры.
Returns
Texture<>
getTexture
Возвращает WebGL текстуру
@returns
Returns
nullWebGLTexture
remove
Удаляет текстуру из видеокарты
Returns
Texture<>
subImage
(gl, src, x, y)
Обновляет часть текстуры
Parameters
gl
src
TexImageSource
x
number
Горизонтальное смещение, с которого записываем в текстуру
y
number
Вертикальное смещение, с которого записываем в текстуру
Returns
Texture<>
Vao
Обертка над vertex array object.
https://developer.mozilla.org/ru/docs/Web/API/OES_vertex_array_object
Для использования необходимо включить расширение renderer.addExtension('OES_vertex_array_object')
new constructor
(shaderProgram, attributes, indicesBuffer)
Parameters
shaderProgram
ShaderProgram<>
Шейдерная программа, каждый Vao привязан к одной шейдерной программе.
attributes
Key-value объект содержащий данные атрибутов.
indicesBuffer
nullBuffer<>
Буффер индексов.
Returns
Vao<>
Methods
merge
(vaos)
Parameters
vaos
Vao[]
Returns
Vao<>
bind
(state)
Связывает vao с контекстом WebGL.
Parameters
state
Стейт рендера
Returns
Vao<>
copy
Копирует Vao
Returns
Vao<>
getElementsGLType
(gl)
Возвращает GL-тип индексного буфера или null
@returns [object Object]
Parameters
remove
Удаляет vao.
Returns
Vao<>
setAttribute
(name, buffer)
Parameters
name
string
buffer
Buffer<>BufferChannel<>
Returns
void
setAttributesAliases
(aliases)
Карта псевдонимов вида { 'shader_att_name': 'vao_attr_name' }.
Эти псевдонимы могут использоваться при связке буферов с шейдерными атрибутами в методе bind.
Например, в Vao задан буфер 'texcoord_0'. В шейдере он может использоваться под именем 'texcoord_color'.
Parameters
unbind
Отвязывает vao от контекста WebGL.
ВНИМАНИЕ: Этот метод нужно вызывать всегда, перед тем как будет использоваться
стандартный подход для связывания атрибутов через
ShaderProgram#bind
.
Returns
Vao<>