gl-reset

v1.0.0
Completely reset the state of a WebGL context, deleting any allocated resources
webgl stackgl gl reset state remove delete purge

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.

npm i gl-reset

Metadata

  • MIT
  • Whatever
  • Hugh Kennedy
  • released 10/26/2014

Downloads

Maintainers