Skip to content

A replacement resolver function for glslify that lets you automatically pull in GLSL modules from npm

License

Notifications You must be signed in to change notification settings

glslify/glslify-resolve-remote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

glslify-resolve-remote experimental

A replacement resolver function for glslify that lets you automatically pull in GLSL modules from npm.

One part of a potential glslify server API for allowing client-side shader development without the need for a local server.

Note: npm install hooks are not executed because security, so you'll want to make sure that the package you're requiring has the source files available in full on publish. 99% of the time this won't be an issue though :)

Usage

NPM

resolve([options])

To use this module, pass it in as a custom resolver to glslify like so:

var resolve = require('glslify-resolve-remote')
var bundle  = require('glslify-bundle')
var deps    = require('glslify-deps')

var src = `
#pragma glslify: ease = require(glsl-easings/bounce-in-out)

void main() {
  gl_FragColor = vec4(vec3(ease(0.5)), 1.0);
}
`

var depper = deps({
  resolve: resolve({
    cache: __dirname + '/.glslify'
  })
})

depper.inline(src, '/', function(err, src) {
  if (err) throw err

  // no "node_modules" required!
  console.log(src)
})

The following options are also available:

  • cache: change where downloaded packages are stored on disk. They should only be downloaded once when first required.
  • offline: rely solely on the cache wherever possible. Identended for use in presentations at events such as CampJS, where internet is limited or unavailable. Also useful if you're on the go and don't always have internet access.

License

MIT. See LICENSE.md for details.

About

A replacement resolver function for glslify that lets you automatically pull in GLSL modules from npm

Resources

License

Stars

Watchers

Forks

Packages