
Product
Introducing Socket Scanning for OpenVSX Extensions
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.
@luma.gl/webgl2-polyfill
Advanced tools
This module installs a partial set of polyfills for WebGL1 contexts, making them more API compatible with WebGL2.
getParameter type calls returning default values when WebGL2 constants are used.This way applications can use the WebGL2 API even when using WebGL1 with extensions. While you will still have to check that the extensions you need are available, using the WebGL2 API removes multiple code paths from your application and prepares your code base for WebGL2.
yarn add @luma.gl/webgl2-polyfill
import polyfillContext from '@luma.gl/webgl2-polyfill';
const gl = canvas.getContext('webgl');
polyfillContext(gl);
// New methods are now available on the context
Installs WebGL2 polyfills on the supplied context.
Returns: the supplied context, with additional methods added (unless it was already a WebGL2RenderingContext in which case those methods were already present).
Note: Can be called multiple times and will only install the polyfills once.
After polyfillContext has been called on a WebGLRenderingContext, the following WebGL2RenderingContext methods will be available on the context:
| Polyfilled Method | Uses Extension | Fallback if no extension |
|---|---|---|
gl.createVertexArray() | OES_vertex_array_object | throws error |
gl.deleteVertexArray() | ignored | |
gl.bindVertexArray() | ignored | |
gl.isVertexArray() | ignored |
| Polyfilled Method | Uses Extension | Fallback if no extension |
|---|---|---|
gl.vertexAttribDivisor() | ANGLE_instanced_arrays | throws error |
gl.drawElementsInstanced() | ignored | |
gl.drawArraysInstanced() | ignored |
| Polyfilled Method | Uses Extension | Fallback if no extension |
|---|---|---|
gl.drawBuffers() | WEBGL_draw_buffers | throws error |
| Polyfilled Method | Uses Extension | Fallback if no extension |
|---|---|---|
gl.createQuery() | EXT_disjoint_timer_query | throws error |
gl.deleteQuery() | ignored | |
gl.beginQuery() | ignored | |
gl.endQuery() | ignored | |
gl.getQuery() | ignored | |
gl.getQueryParameter() | ignored |
FAQs
WebGL2 API Polyfills for WebGL1 WebGLRenderingContext
The npm package @luma.gl/webgl2-polyfill receives a total of 3,349 weekly downloads. As such, @luma.gl/webgl2-polyfill popularity was classified as popular.
We found that @luma.gl/webgl2-polyfill demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 7 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.

Product
Bringing supply chain security to the next generation of JavaScript package managers

Product
A safer, faster way to eliminate vulnerabilities without updating dependencies