OpenGL ES 2では、文字列の配列をシェーダーソースとして設定できます
void ShaderSource( uint shader, sizei count, const char **string, const int *length );
これは、マクロをシェーダーソースに「注入」するために使用できます。WebGLの対応する関数は、見た目どおり1つの文字列のみを取ります。
void shaderSource(WebGLShader shader, DOMString source)
マクロを使用して手動でソース文字列に挿入する唯一の可能性はありますか?