I've added basic include support for fragment shaders. You'll notice a new class Includes.js which handles a bulk of the include support. I used Regex to write out include statements and inject them after load after precision definition. Commented includes are ignored. Since webgl will throw a fit if we push the code with undefined, I load a default black shader for all the hooks and then load a shader once it's dependent include files have been loaded and injected.
I've tested this with both attribute and load() configurations. I have also created a cancellation method for include dependency promises so load() can be called with a fragment file attribute and happily recreated the shader.
I've added basic include support for fragment shaders. You'll notice a new class Includes.js which handles a bulk of the include support. I used Regex to write out include statements and inject them after load after precision definition. Commented includes are ignored. Since webgl will throw a fit if we push the code with undefined, I load a default black shader for all the hooks and then load a shader once it's dependent include files have been loaded and injected.
I've tested this with both attribute and load() configurations. I have also created a cancellation method for include dependency promises so load() can be called with a fragment file attribute and happily recreated the shader.