glsl-inject-defines

WebJar for glsl-inject-defines

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

glsl-inject-defines
Last Version

Last Version

1.0.3
Release Date

Release Date

Type

Type

jar
Description

Description

glsl-inject-defines
WebJar for glsl-inject-defines
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/mattdesl/glsl-inject-defines

Download glsl-inject-defines

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/glsl-inject-defines/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>glsl-inject-defines</artifactId>
    <version>1.0.3</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/glsl-inject-defines/
implementation 'org.webjars.npm:glsl-inject-defines:1.0.3'
// https://jarcasting.com/artifacts/org.webjars.npm/glsl-inject-defines/
implementation ("org.webjars.npm:glsl-inject-defines:1.0.3")
'org.webjars.npm:glsl-inject-defines:jar:1.0.3'
<dependency org="org.webjars.npm" name="glsl-inject-defines" rev="1.0.3">
  <artifact name="glsl-inject-defines" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='glsl-inject-defines', version='1.0.3')
)
libraryDependencies += "org.webjars.npm" % "glsl-inject-defines" % "1.0.3"
[org.webjars.npm/glsl-inject-defines "1.0.3"]

Dependencies

compile (3)

Group / Artifact Type Version
org.webjars.npm : glsl-token-inject-block jar [1.0.0,2)
org.webjars.npm : glsl-token-string jar [1.0.1,2)
org.webjars.npm : glsl-tokenizer jar [2.0.2,3)

Project Modules

There are no modules declared in this project.

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.

Versions

Version
1.0.3