OES_vertex_array_object WebGL extensionBaseline · Widely available
The OES_vertex_array_object extension for WebGL 1.0 contexts adds vertex array objects (VAOs) which encapsulate vertex array states. These objects keep pointers to vertex data and names for different sets of vertex data.
Supported in all major browsers for at least 30 months — safe to use without fallbacks. Baseline since Apr 30, 2018. Widely available since Oct 30, 2020.
Browser support
DesktopChrome
1–23Not supported
24+Supportedsince Jan 10, 2013
Current: 155Edge
12–16Not supported
17+Supportedsince Apr 30, 2018
Current: 154Firefox
1–24Not supported
25+Supportedsince Oct 29, 2013
Current: 157Safari
1–7Not supported
8+Supportedsince Oct 16, 2014
Current: 27MobileChrome Android
18–18Not supported
25+Supportedsince Feb 27, 2013
Current: 155Firefox Android
4–24Not supported
25+Supportedsince Oct 29, 2013
Current: 157Safari iOS
1–8Not supported
9+Supportedsince Sep 16, 2015
Current: 27How to use
This feature is Baseline widely available — use it freely, no fallback needed.
Example
Full syntax and examples are on MDN: OES vertex array object.
Feature detection
JS · check before using
if ("OES_vertex_array_object" in globalThis) {
// OES_vertex_array_object is available
} else {
// load a polyfill or use a fallback
}Sub-features
Support for each part of the feature (6). The overall table above shows when the whole feature works.
| Sub-feature | Chrome | Edge | Firefox | Safari | Chrome Android | Firefox Android | Safari iOS |
|---|---|---|---|---|---|---|---|
| OES_vertex_array_object | 24 | 17 | 25 | 8 | 25 | 25 | 8 |
| OES_vertex_array_object.bindVertexArrayOES | 24 | 17 | 25 | 8 | 25 | 25 | 8 |
| OES_vertex_array_object.createVertexArrayOES | 24 | 17 | 25 | 8 | 25 | 25 | 8 |
| OES_vertex_array_object.deleteVertexArrayOES | 24 | 17 | 25 | 8 | 25 | 25 | 8 |
| OES_vertex_array_object.isVertexArrayOES | 24 | 17 | 25 | 8 | 25 | 25 | 8 |
| WebGLVertexArrayObjectOES | 24 | 17 | 25 | 5.1 | 25 | 25 | 9 |