gl-reset

1.0.0 • Public • Published

gl-reset

Completely reset the state of a WebGL context, deleting any allocated resources.

Resetting is slow and instrumentation introduces a very slight overhead on creating new resources. However, this is useful:

  • If you want to safely recycle a WebGL context without state leaking between renders.
  • To capture and remove any generated resources during a render.

There's a limit on the number of contexts you can have running simultaneously on a page, and (at least on Chrome) when hitting the threshold you simply lose the least recently created one. To work around this limit, you can instead reset and reuse a single WebGL context between multiple renders.

Usage

NPM

reset = require('gl-reset')(gl)

Returns a function that, when called, will remove any existing resources and reset the current WebGL state.

Note: this function must be created before creating any resources, as it instruments several WebGL methods to do its thing.

var reset = require('gl-reset')(gl)
 
function render() {
  // Triggers a context reset
  reset()
}

require('gl-reset/state')(gl)

Resets the state, without instrumenting the context and without removing any allocated resources.

License

MIT. See LICENSE.md for details.

Dependencies (0)

    Dev Dependencies (4)

    Package Sidebar

    Install

    npm i gl-reset

    Weekly Downloads

    9

    Version

    1.0.0

    License

    MIT

    Last publish

    Collaborators

    • mikolalysenko
    • wwwtyro
    • thibauts
    • mikkoh
    • yoshuawuyts
    • mattdesl
    • hughsk
    • chrisdickinson
    • tatumcreative
    • rezaali