1.0.0 • Published 10 years ago

gl-reset v1.0.0

Weekly downloads
55
License
MIT
Repository
github
Last release
10 years ago

gl-reset

npm.io npm.io npm.io npm.io

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.