Package Exports
- glsl-token-inject-block
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (glsl-token-inject-block) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
glsl-token-inject-block
Injects a "block" of GLSL tokens into a shader, after any #version
, #extension
and precision
statements. This will pad the new tokens with the necessary amount of newlines (but no more).
This module ignores token line
, column
and position
.
Example
Your source:
var tokenizer = require('glsl-tokenizer')
var inject = require('glsl-token-inject-block')
var stringify = require('glsl-token-string')
var tokens = tokenizer(shaderInput)
var newToken = {
type: 'preprocessor',
data: '#define FOOBAR'
}
var source = stringify(inject(tokens, newToken))
console.log(source)
The following shader input:
// some comment
#version 300 es
#extension SOME_EXTENSION : enable
void main() {}
Results in the following injected define:
// some comment
#version 300 es
#extension SOME_EXTENSION : enable
#define FOOBAR
void main() {}
Usage
tokens = inject(tokens, newTokens)
For the given shader source (tokens
), injects newTokens
into them, assuming the new tokens are a "block" of code that should be placed on its own line.
newTokens
can be a single token object, or an array of token objects.
Modifies tokens
in place and returns it.
License
MIT, see LICENSE.md for details.