开发者社区> 镜像站> NPM> gl-texture2d-read-float
gl-texture2d-read-float
Read out the contents of a floating-point gl-texture2d
Last updated 5 years ago by hughsk .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install gl-texture2d-read-float 
SYNC missed versions from official npm registry.

gl-texture2d-read-float

experimental

Read out the contents of a floating-point gl-texture2d.

This will eventually be supported natively in WebGL (it's listed in the OpenGL ES 3 spec), but this fills that need until then!

Usage

NPM

read(glTex2d, done(err, data))

Reads out the contents of glTex2d, which should be an instance of gl-texture2d. When complete, done(err, data) will be called where data is a Float32Array containing the resulting floats in the texture.

const canvas    = document.createElement('canvas')
const gl        = require('gl-context')(canvas)

const read      = require('gl-texture2d-read-float')
const Texture2d = require('gl-texture2d')
const baboon    = require('baboon-image')
const assert    = require('assert')

const texture  = baboon(gl, baboon)

read(texture, function(err, data) {
  if (err) throw err

  assert.deepEqual(data, baboon.data)
})

A few things to note:

  • Right now, this is slow as it requires reading data back from the GPU. There's not much that can be done about this for the time being unfortunately.
  • The data is retrieved synchronously under the hood, but the API has been made asynchronous in preparation for WebGL's eventual async readPixels equivalent.
  • Only gl.RGBA/gl.FLOAT textures are currently supported. Pull requests are, however, very welcome! :)

Contributing

See stackgl/contributing for details.

License

MIT. See LICENSE.md for details.

Current Tags

  • 1.0.1                                ...           latest (5 years ago)

2 Versions

  • 1.0.1                                ...           5 years ago
  • 1.0.0                                ...           5 years ago
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (6)
Dev Dependencies (9)
Dependents (2)