You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A glsl shader loader for webpack, includes support for nested imports,
allowing for smart code reuse among more complex shader implementations.
The shader is returned as a string.
Install
npm install --save-dev webpack-glsl-loader
Usage
With require
N.B. As noted in the webpack documentation, you
should avoid using this and use the configuration method in the next section.
You can also define the module extension bind on the command line if you are
not using a configuration file (you probably should be though).
webpack --module-bind 'glsl=webpack-glsl'
Imports
This loader supports an import syntax to allow you to maximise your code reuse
and keep those shaders
DRY. This syntax is
very similar to that of SASS.
I can have that shader include other .glsl files inline, like so:
#include "./includes/perlin-noise.glsl";
N.B. all imports within .glsl files exclude the file extension and
are relative to the file doing the importing.
Imported files are parsed for #include statements as well, so you can nest
imports as deep as you'd like (although, you should probably rethink your
shader if you require any more than 2 levels).
Imported files are inserted directly into the source file in place of the
#include statement and no special handling or error checking is provided. So,
if you get syntax errors, please first check that shader works as one
contiguous file before raising an issue.
TODO
Deduplicate imports, to prevent code clobbering and conflicts at runtime
About
A webpack loader for glsl shaders - includes support for nested imports.