---
title: "VertexBuffer | JavaScript maps SDK"
description: "Documentation for MapTiler SDK"
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Class VertexBuffer

##### Index

### Constructors[](#constructors)

[constructor](#constructor)

### Properties[](#properties)

[attributes](#attributes) [buffer](#buffer) [context](#context) [dynamicDraw](#dynamicdraw) [itemSize](#itemsize) [length](#length)

### Methods[](#methods)

[bind](#bind) [destroy](#destroy) [enableAttributes](#enableattributes) [setVertexAttribPointers](#setvertexattribpointers) [updateData](#updatedata)

## Constructors[](#constructors-1)

### constructor[](#constructor)

-   new VertexBuffer(  
        context: [Context](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Context/),  
        array: [StructArray](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArray/),  
        attributes: readonly [StructArrayMember](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.StructArrayMember/)\[\],  
        dynamicDraw?: boolean,  
    ): VertexBuffer[](#constructorvertexbuffer)
    
    #### Parameters
    
    -   context: [Context](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Context/)
    -   array: [StructArray](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArray/)
    -   attributes: readonly [StructArrayMember](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.StructArrayMember/)\[\]
    -   `Optional`dynamicDraw: boolean
        
        Whether this buffer will be repeatedly updated.
        
    
    #### Returns VertexBuffer
    

## Properties[](#properties-1)

### attributes[](#attributes)

attributes: readonly [StructArrayMember](https://docs.maptiler.com/sdk-js/api-reference/types/Externals.StructArrayMember/)\[\]

### buffer[](#buffer)

buffer: [WebGLBuffer](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WebGLBuffer/)

### context[](#context)

context: [Context](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Context/)

### dynamicDraw[](#dynamicdraw)

dynamicDraw: boolean

### itemSize[](#itemsize)

itemSize: number

### length[](#length)

length: number

## Methods[](#methods-1)

### bind[](#bind)

-   bind(): void[](#bind-1)
    
    #### Returns void
    

### destroy[](#destroy)

-   destroy(): void[](#destroy-1)
    
    Destroy the GL buffer bound to the given WebGL context
    
    #### Returns void
    

### enableAttributes[](#enableattributes)

-   enableAttributes(  
        gl: [WebGLRenderingContext](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WebGLRenderingContext/) | [WebGL2RenderingContext](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WebGL2RenderingContext/),  
        program: [Program](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Program/)<any\>,  
    ): void[](#enableattributes-1)
    
    #### Parameters
    
    -   gl: [WebGLRenderingContext](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WebGLRenderingContext/) | [WebGL2RenderingContext](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WebGL2RenderingContext/)
    -   program: [Program](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Program/)<any\>
    
    #### Returns void
    

### setVertexAttribPointers[](#setvertexattribpointers)

-   setVertexAttribPointers(  
        gl: [WebGLRenderingContext](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WebGLRenderingContext/) | [WebGL2RenderingContext](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WebGL2RenderingContext/),  
        program: [Program](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Program/)<any\>,  
        vertexOffset?: number | null,  
    ): void[](#setvertexattribpointers-1)
    
    Set the attribute pointers in a WebGL context
    
    #### Parameters
    
    -   gl: [WebGLRenderingContext](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WebGLRenderingContext/) | [WebGL2RenderingContext](https://docs.maptiler.com/sdk-js/api-reference/interfaces/Externals.WebGL2RenderingContext/)
        
        The WebGL context
        
    -   program: [Program](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Program/)<any\>
        
        The active WebGL program
        
    -   `Optional`vertexOffset: number | null
        
        Index of the starting vertex of the segment
        
    
    #### Returns void
    

### updateData[](#updatedata)

-   updateData(array: [StructArray](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArray/)): void[](#updatedata-1)
    
    #### Parameters
    
    -   array: [StructArray](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.StructArray/)
    
    #### Returns void
