/ piacw.com / dev / final / node_modules / glsl-inject-defines /

[ICO]NameLast modifiedSizeDescription
[PARENTDIR]Parent Directory  -  
[TXT]LICENSE.md2 years ago1.2K0fb859dc fixed mobile overflwo options [كارل مبارك]
[TXT]README.md2 years ago1.7K0fb859dc fixed mobile overflwo options [كارل مبارك]
[   ]package.json2 years ago1.7K0fb859dc fixed mobile overflwo options [كارل مبارك]
[   ]string.js2 years ago645 0fb859dc fixed mobile overflwo options [كارل مبارك]
README.md

glsl-inject-defines

stable

Safely inject #define statements into a shader source.

If the shader contains any #version or #extension statements, the defines are added after them.

Example

// Your cool shader
#version 330
#extension GL_OES_standard_derivatives : enable

void main() {
  #ifdef BLUE
    gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0);
  #else
    gl_FragColor = vec4(0.0);
  #endif
}

You can process it at runtime, like so:

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:

// Your cool shader
#version 330
#extension GL_OES_standard_derivatives : enable
#define PI 3.14
#define BLUE 

void main() {
  #ifdef BLUE
    gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0);
  #else
    gl_FragColor = vec4(0.0);
  #endif
}

Works in the browser with browserify and glslify.

Install

npm install glsl-inject-defines

Usage

NPM

newSource = injectDefines(source, 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.

License

MIT. See LICENSE.md for details.

Apache/2.4.38 (Debian) Server at www.karls.computer Port 80