glsl-inject-defines
Version:
injects a #define statement into a shader source
79 lines (55 loc) • 1.74 kB
Markdown
//badges.github.io/stability-badges/dist/stable.svg)](http://github.com/badges/stability-badges)
Safely inject `
If the shader contains any `
```glsl
// Your cool shader
void main() {
gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0);
gl_FragColor = vec4(0.0);
}
```
You can process it at runtime, like so:
```js
var injectDefines = require('glsl-inject-defines')
var fs = require('fs')
var source = fs.readFileSync(__dirname + '/shader.glsl', 'utf8')
var transformed = injectDefines(source, {
PI: 3.14,
BLUE: ''
})
console.log(transformed)
```
The resulting shader:
```glsl
// Your cool shader
void main() {
gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0);
gl_FragColor = vec4(0.0);
}
```
Works in the browser with browserify and [glslify](https://www.npmjs.com/package/glslify).
```sh
npm install glsl-inject-defines
```
[](https://www.npmjs.com/package/glsl-inject-defines)
Injects the set of `defines`, an object with `<name, value>` pairs that will get turned into strings for the shader source.
Returns the transformed source, with defines injected after extension and version statements.
MIT. See [LICENSE.md](http://github.com/stackgl/glsl-inject-defines/blob/master/LICENSE.md) for details.
[![stable](http: