---
title: "VertexArrayObject | 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 VertexArrayObject

##### Index

### Constructors[](#constructors)

[constructor](#constructor)

### Properties[](#properties)

[boundDynamicVertexBuffer](#bounddynamicvertexbuffer) [boundDynamicVertexBuffer2](#bounddynamicvertexbuffer2) [boundDynamicVertexBuffer3](#bounddynamicvertexbuffer3) [boundIndexBuffer](#boundindexbuffer) [boundLayoutVertexBuffer](#boundlayoutvertexbuffer) [boundPaintVertexBuffers](#boundpaintvertexbuffers) [boundProgram](#boundprogram) [boundVertexOffset](#boundvertexoffset) [context](#context) [vao](#vao)

### Methods[](#methods)

[bind](#bind) [destroy](#destroy) [freshBind](#freshbind)

## Constructors[](#constructors-1)

### constructor[](#constructor)

-   new VertexArrayObject(): VertexArrayObject[](#constructorvertexarrayobject)
    
    #### Returns VertexArrayObject
    

## Properties[](#properties-1)

### boundDynamicVertexBuffer[](#bounddynamicvertexbuffer)

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

### boundDynamicVertexBuffer2[](#bounddynamicvertexbuffer2)

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

### boundDynamicVertexBuffer3[](#bounddynamicvertexbuffer3)

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

### boundIndexBuffer[](#boundindexbuffer)

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

### boundLayoutVertexBuffer[](#boundlayoutvertexbuffer)

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

### boundPaintVertexBuffers[](#boundpaintvertexbuffers)

boundPaintVertexBuffers: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/)\[\]

### boundProgram[](#boundprogram)

boundProgram: [Program](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Program/)<any\>

### boundVertexOffset[](#boundvertexoffset)

boundVertexOffset: number

### context[](#context)

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

### vao[](#vao)

vao: any

## Methods[](#methods-1)

### bind[](#bind)

-   bind(  
        context: [Context](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Context/),  
        program: [Program](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Program/)<any\>,  
        layoutVertexBuffer: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/),  
        paintVertexBuffers: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/)\[\],  
        indexBuffer?: [IndexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.IndexBuffer/) | null,  
        vertexOffset?: number | null,  
        dynamicVertexBuffer?: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/) | null,  
        dynamicVertexBuffer2?: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/) | null,  
        dynamicVertexBuffer3?: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/) | null,  
    ): void[](#bind-1)
    
    #### Parameters
    
    -   context: [Context](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Context/)
    -   program: [Program](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Program/)<any\>
    -   layoutVertexBuffer: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/)
    -   paintVertexBuffers: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/)\[\]
    -   `Optional`indexBuffer: [IndexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.IndexBuffer/) | null
    -   `Optional`vertexOffset: number | null
    -   `Optional`dynamicVertexBuffer: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/) | null
    -   `Optional`dynamicVertexBuffer2: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/) | null
    -   `Optional`dynamicVertexBuffer3: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/) | null
    
    #### Returns void
    

### destroy[](#destroy)

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

### freshBind[](#freshbind)

-   freshBind(  
        program: [Program](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Program/)<any\>,  
        layoutVertexBuffer: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/),  
        paintVertexBuffers: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/)\[\],  
        indexBuffer?: [IndexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.IndexBuffer/) | null,  
        vertexOffset?: number | null,  
        dynamicVertexBuffer?: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/) | null,  
        dynamicVertexBuffer2?: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/) | null,  
        dynamicVertexBuffer3?: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/) | null,  
    ): void[](#freshbind-1)
    
    #### Parameters
    
    -   program: [Program](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.Program/)<any\>
    -   layoutVertexBuffer: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/)
    -   paintVertexBuffers: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/)\[\]
    -   `Optional`indexBuffer: [IndexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.IndexBuffer/) | null
    -   `Optional`vertexOffset: number | null
    -   `Optional`dynamicVertexBuffer: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/) | null
    -   `Optional`dynamicVertexBuffer2: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/) | null
    -   `Optional`dynamicVertexBuffer3: [VertexBuffer](https://docs.maptiler.com/sdk-js/api-reference/classes/Externals.VertexBuffer/) | null
    
    #### Returns void
