@luma.gl/shadertools 8.5.15 → 8.5.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/dist.js +75 -75
  2. package/dist/dist.min.js +1 -1
  3. package/dist/es5/index.js +10 -10
  4. package/dist/es5/lib/assemble-shaders.js +6 -2
  5. package/dist/es5/lib/assemble-shaders.js.map +1 -1
  6. package/dist/es5/lib/constants.js +1 -1
  7. package/dist/es5/lib/inject-shader.js +2 -2
  8. package/dist/es5/lib/resolve-modules.js +2 -2
  9. package/dist/es5/lib/shader-module.js +1 -1
  10. package/dist/es5/lib/shader-module.js.map +1 -1
  11. package/dist/es5/lib/transpile-shader.js +1 -1
  12. package/dist/es5/modules/fp64/fp64-utils.js +1 -1
  13. package/dist/es5/modules/fp64/fp64.js +6 -5
  14. package/dist/es5/modules/fp64/fp64.js.map +1 -1
  15. package/dist/es5/modules/index.js +62 -62
  16. package/dist/es5/modules/lights/lights.js +1 -1
  17. package/dist/es5/modules/lights/lights.js.map +1 -1
  18. package/dist/es5/modules/module-injectors.js +1 -1
  19. package/dist/es5/modules/phong-lighting/phong-lighting.js.map +1 -1
  20. package/dist/es5/utils/shader-utils.js +3 -3
  21. package/dist/es5/utils/shader-utils.js.map +1 -1
  22. package/dist/es5/utils/webgl-info.js +2 -2
  23. package/dist/esm/lib/assemble-shaders.js +38 -51
  24. package/dist/esm/lib/assemble-shaders.js.map +1 -1
  25. package/dist/esm/lib/inject-shader.js +4 -3
  26. package/dist/esm/lib/inject-shader.js.map +1 -1
  27. package/dist/esm/lib/platform-defines.js +9 -80
  28. package/dist/esm/lib/platform-defines.js.map +1 -1
  29. package/dist/esm/lib/resolve-modules.js +9 -7
  30. package/dist/esm/lib/resolve-modules.js.map +1 -1
  31. package/dist/esm/lib/shader-module.js +20 -23
  32. package/dist/esm/lib/shader-module.js.map +1 -1
  33. package/dist/esm/lib/transpile-shader.js +5 -5
  34. package/dist/esm/lib/transpile-shader.js.map +1 -1
  35. package/dist/esm/modules/dirlight/dirlight.js +3 -9
  36. package/dist/esm/modules/dirlight/dirlight.js.map +1 -1
  37. package/dist/esm/modules/fp32/fp32.js +1 -148
  38. package/dist/esm/modules/fp32/fp32.js.map +1 -1
  39. package/dist/esm/modules/fp64/fp64-arithmetic.glsl.js +1 -143
  40. package/dist/esm/modules/fp64/fp64-arithmetic.glsl.js.map +1 -1
  41. package/dist/esm/modules/fp64/fp64-functions.glsl.js +1 -630
  42. package/dist/esm/modules/fp64/fp64-functions.glsl.js.map +1 -1
  43. package/dist/esm/modules/fp64/fp64-utils.js +3 -1
  44. package/dist/esm/modules/fp64/fp64-utils.js.map +1 -1
  45. package/dist/esm/modules/fxaa/fxaa.js +1 -535
  46. package/dist/esm/modules/fxaa/fxaa.js.map +1 -1
  47. package/dist/esm/modules/geometry/geometry.js +2 -28
  48. package/dist/esm/modules/geometry/geometry.js.map +1 -1
  49. package/dist/esm/modules/image-adjust-filters/brightnesscontrast.js +1 -18
  50. package/dist/esm/modules/image-adjust-filters/brightnesscontrast.js.map +1 -1
  51. package/dist/esm/modules/image-adjust-filters/denoise.js +1 -22
  52. package/dist/esm/modules/image-adjust-filters/denoise.js.map +1 -1
  53. package/dist/esm/modules/image-adjust-filters/huesaturation.js +1 -28
  54. package/dist/esm/modules/image-adjust-filters/huesaturation.js.map +1 -1
  55. package/dist/esm/modules/image-adjust-filters/noise.js +1 -19
  56. package/dist/esm/modules/image-adjust-filters/noise.js.map +1 -1
  57. package/dist/esm/modules/image-adjust-filters/sepia.js +1 -20
  58. package/dist/esm/modules/image-adjust-filters/sepia.js.map +1 -1
  59. package/dist/esm/modules/image-adjust-filters/vibrance.js +1 -15
  60. package/dist/esm/modules/image-adjust-filters/vibrance.js.map +1 -1
  61. package/dist/esm/modules/image-adjust-filters/vignette.js +1 -14
  62. package/dist/esm/modules/image-adjust-filters/vignette.js.map +1 -1
  63. package/dist/esm/modules/image-blur-filters/tiltshift.js +1 -37
  64. package/dist/esm/modules/image-blur-filters/tiltshift.js.map +1 -1
  65. package/dist/esm/modules/image-blur-filters/triangleblur.js +1 -27
  66. package/dist/esm/modules/image-blur-filters/triangleblur.js.map +1 -1
  67. package/dist/esm/modules/image-blur-filters/zoomblur.js +1 -26
  68. package/dist/esm/modules/image-blur-filters/zoomblur.js.map +1 -1
  69. package/dist/esm/modules/image-fun-filters/colorhalftone.js +1 -34
  70. package/dist/esm/modules/image-fun-filters/colorhalftone.js.map +1 -1
  71. package/dist/esm/modules/image-fun-filters/dotscreen.js +1 -22
  72. package/dist/esm/modules/image-fun-filters/dotscreen.js.map +1 -1
  73. package/dist/esm/modules/image-fun-filters/edgework.js +1 -50
  74. package/dist/esm/modules/image-fun-filters/edgework.js.map +1 -1
  75. package/dist/esm/modules/image-fun-filters/hexagonalpixelate.js +1 -42
  76. package/dist/esm/modules/image-fun-filters/hexagonalpixelate.js.map +1 -1
  77. package/dist/esm/modules/image-fun-filters/ink.js +1 -27
  78. package/dist/esm/modules/image-fun-filters/ink.js.map +1 -1
  79. package/dist/esm/modules/image-fun-filters/magnify.js +1 -20
  80. package/dist/esm/modules/image-fun-filters/magnify.js.map +1 -1
  81. package/dist/esm/modules/image-warp-filters/bulgepinch.js +1 -27
  82. package/dist/esm/modules/image-warp-filters/bulgepinch.js.map +1 -1
  83. package/dist/esm/modules/image-warp-filters/swirl.js +1 -29
  84. package/dist/esm/modules/image-warp-filters/swirl.js.map +1 -1
  85. package/dist/esm/modules/image-warp-filters/warp.js +1 -11
  86. package/dist/esm/modules/image-warp-filters/warp.js.map +1 -1
  87. package/dist/esm/modules/lights/lights.glsl.js +1 -34
  88. package/dist/esm/modules/lights/lights.glsl.js.map +1 -1
  89. package/dist/esm/modules/lights/lights.js +19 -15
  90. package/dist/esm/modules/lights/lights.js.map +1 -1
  91. package/dist/esm/modules/module-injectors.js +2 -27
  92. package/dist/esm/modules/module-injectors.js.map +1 -1
  93. package/dist/esm/modules/pbr/pbr-fragment.glsl.js +1 -351
  94. package/dist/esm/modules/pbr/pbr-fragment.glsl.js.map +1 -1
  95. package/dist/esm/modules/pbr/pbr-vertex.glsl.js +1 -39
  96. package/dist/esm/modules/pbr/pbr-vertex.glsl.js.map +1 -1
  97. package/dist/esm/modules/phong-lighting/phong-lighting.glsl.js +1 -75
  98. package/dist/esm/modules/phong-lighting/phong-lighting.glsl.js.map +1 -1
  99. package/dist/esm/modules/phong-lighting/phong-lighting.js +3 -1
  100. package/dist/esm/modules/phong-lighting/phong-lighting.js.map +1 -1
  101. package/dist/esm/modules/picking/picking.js +4 -87
  102. package/dist/esm/modules/picking/picking.js.map +1 -1
  103. package/dist/esm/modules/project/project.js +6 -69
  104. package/dist/esm/modules/project/project.js.map +1 -1
  105. package/dist/esm/modules/transform/transform.js +1 -28
  106. package/dist/esm/modules/transform/transform.js.map +1 -1
  107. package/dist/esm/modules/utils/random.js +1 -5
  108. package/dist/esm/modules/utils/random.js.map +1 -1
  109. package/dist/esm/utils/is-old-ie.js +2 -1
  110. package/dist/esm/utils/is-old-ie.js.map +1 -1
  111. package/dist/esm/utils/shader-utils.js +11 -24
  112. package/dist/esm/utils/shader-utils.js.map +1 -1
  113. package/dist/esm/utils/webgl-info.js +3 -2
  114. package/dist/esm/utils/webgl-info.js.map +1 -1
  115. package/package.json +2 -2
  116. package/src/lib/.platform-defines.js.swp +0 -0
  117. package/src/utils/.webgl-info.js.swp +0 -0
package/dist/es5/index.js CHANGED
@@ -25,28 +25,28 @@ Object.defineProperty(exports, "combineInjects", {
25
25
  return _injectShader.combineInjects;
26
26
  }
27
27
  });
28
- Object.defineProperty(exports, "normalizeShaderModule", {
28
+ Object.defineProperty(exports, "convertToVec4", {
29
29
  enumerable: true,
30
30
  get: function get() {
31
- return _shaderModule.normalizeShaderModule;
31
+ return _shaderUtils.convertToVec4;
32
32
  }
33
33
  });
34
- Object.defineProperty(exports, "getQualifierDetails", {
34
+ Object.defineProperty(exports, "getPassthroughFS", {
35
35
  enumerable: true,
36
36
  get: function get() {
37
- return _shaderUtils.getQualifierDetails;
37
+ return _shaderUtils.getPassthroughFS;
38
38
  }
39
39
  });
40
- Object.defineProperty(exports, "getPassthroughFS", {
40
+ Object.defineProperty(exports, "getQualifierDetails", {
41
41
  enumerable: true,
42
42
  get: function get() {
43
- return _shaderUtils.getPassthroughFS;
43
+ return _shaderUtils.getQualifierDetails;
44
44
  }
45
45
  });
46
- Object.defineProperty(exports, "typeToChannelSuffix", {
46
+ Object.defineProperty(exports, "normalizeShaderModule", {
47
47
  enumerable: true,
48
48
  get: function get() {
49
- return _shaderUtils.typeToChannelSuffix;
49
+ return _shaderModule.normalizeShaderModule;
50
50
  }
51
51
  });
52
52
  Object.defineProperty(exports, "typeToChannelCount", {
@@ -55,10 +55,10 @@ Object.defineProperty(exports, "typeToChannelCount", {
55
55
  return _shaderUtils.typeToChannelCount;
56
56
  }
57
57
  });
58
- Object.defineProperty(exports, "convertToVec4", {
58
+ Object.defineProperty(exports, "typeToChannelSuffix", {
59
59
  enumerable: true,
60
60
  get: function get() {
61
- return _shaderUtils.convertToVec4;
61
+ return _shaderUtils.typeToChannelSuffix;
62
62
  }
63
63
  });
64
64
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
6
 
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
@@ -27,7 +27,11 @@ var _utils = require("../utils");
27
27
 
28
28
  var _SHADER_TYPE;
29
29
 
30
- function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
30
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
+
32
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
+
34
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
31
35
 
32
36
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
33
37
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/assemble-shaders.js"],"names":["INJECT_SHADER_DECLARATIONS","DECLARATION_INJECT_MARKER","SHADER_TYPE","VERTEX_SHADER","FRAGMENT_SHADER","FRAGMENT_SHADER_PROLOGUE","assembleShaders","gl","opts","vs","fs","modules","assembleShader","Object","assign","source","type","getUniforms","assembleGetUniforms","id","defines","hookFunctions","inject","transpileToGLSL100","prologue","log","isVertex","sourceLines","split","glslVersion","versionLine","coreSource","indexOf","slice","join","allDefines","forEach","module","getDefines","assembledSource","getShaderName","getShaderType","getApplicationDefines","hookFunctionMap","normalizeHookFunctions","hookInjections","declInjections","mainInjections","key","injection","order","match","hash","name","checkDeprecations","moduleSource","getModuleSource","injections","injectionType","push","getHookFunctions","uniforms","moduleUniforms","toUpperCase","injectShaderName","count","sourceText","define","value","Number","isFinite","result","hookName","hookFunction","signature","header","sort","a","b","footer","hook","trim","stage","replace"],"mappings":"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","sourcesContent":["import {VERTEX_SHADER, FRAGMENT_SHADER} from './constants';\nimport {resolveModules} from './resolve-modules';\nimport {getPlatformShaderDefines, getVersionDefines} from './platform-defines';\nimport injectShader, {DECLARATION_INJECT_MARKER} from './inject-shader';\nimport transpileShader from './transpile-shader';\nimport {assert} from '../utils';\n\nconst INJECT_SHADER_DECLARATIONS = `\\n\\n${DECLARATION_INJECT_MARKER}\\n\\n`;\n\nconst SHADER_TYPE = {\n [VERTEX_SHADER]: 'vertex',\n [FRAGMENT_SHADER]: 'fragment'\n};\n\n// Precision prologue to inject before functions are injected in shader\n// TODO - extract any existing prologue in the fragment source and move it up...\nconst FRAGMENT_SHADER_PROLOGUE = `\\\nprecision highp float;\n\n`;\n\n// Inject a list of modules\nexport function assembleShaders(gl, opts) {\n const {vs, fs} = opts;\n const modules = resolveModules(opts.modules || []);\n return {\n gl,\n vs: assembleShader(gl, Object.assign({}, opts, {source: vs, type: VERTEX_SHADER, modules})),\n fs: assembleShader(gl, Object.assign({}, opts, {source: fs, type: FRAGMENT_SHADER, modules})),\n getUniforms: assembleGetUniforms(modules)\n };\n}\n\n// Pulls together complete source code for either a vertex or a fragment shader\n// adding prologues, requested module chunks, and any final injections.\nfunction assembleShader(\n gl,\n {\n id,\n source,\n type,\n modules,\n defines = {},\n hookFunctions = [],\n inject = {},\n transpileToGLSL100 = false,\n prologue = true,\n log\n }\n) {\n assert(typeof source === 'string', 'shader source must be a string');\n\n const isVertex = type === VERTEX_SHADER;\n\n const sourceLines = source.split('\\n');\n let glslVersion = 100;\n let versionLine = '';\n let coreSource = source;\n // Extract any version directive string from source.\n // TODO : keep all pre-processor statements at the begining of the shader.\n if (sourceLines[0].indexOf('#version ') === 0) {\n glslVersion = 300; // TODO - regexp that matches actual version number\n versionLine = sourceLines[0];\n coreSource = sourceLines.slice(1).join('\\n');\n } else {\n versionLine = `#version ${glslVersion}`;\n }\n\n // Combine Module and Application Defines\n const allDefines = {};\n modules.forEach(module => {\n Object.assign(allDefines, module.getDefines());\n });\n Object.assign(allDefines, defines);\n\n // Add platform defines (use these to work around platform-specific bugs and limitations)\n // Add common defines (GLSL version compatibility, feature detection)\n // Add precision declaration for fragment shaders\n let assembledSource = prologue\n ? `\\\n${versionLine}\n${getShaderName({id, source, type})}\n${getShaderType({type})}\n${getPlatformShaderDefines(gl)}\n${getVersionDefines(gl, glslVersion, !isVertex)}\n${getApplicationDefines(allDefines)}\n${isVertex ? '' : FRAGMENT_SHADER_PROLOGUE}\n`\n : `${versionLine}\n`;\n\n const hookFunctionMap = normalizeHookFunctions(hookFunctions);\n\n // Add source of dependent modules in resolved order\n const hookInjections = {};\n const declInjections = {};\n const mainInjections = {};\n\n for (const key in inject) {\n const injection =\n typeof inject[key] === 'string' ? {injection: inject[key], order: 0} : inject[key];\n const match = key.match(/^(v|f)s:(#)?([\\w-]+)$/);\n if (match) {\n const hash = match[2];\n const name = match[3];\n if (hash) {\n if (name === 'decl') {\n declInjections[key] = [injection];\n } else {\n mainInjections[key] = [injection];\n }\n } else {\n hookInjections[key] = [injection];\n }\n } else {\n // Regex injection\n mainInjections[key] = [injection];\n }\n }\n\n for (const module of modules) {\n if (log) {\n module.checkDeprecations(coreSource, log);\n }\n const moduleSource = module.getModuleSource(type, glslVersion);\n // Add the module source, and a #define that declares it presence\n assembledSource += moduleSource;\n\n const injections = module.injections[type];\n for (const key in injections) {\n const match = key.match(/^(v|f)s:#([\\w-]+)$/);\n if (match) {\n const name = match[2];\n const injectionType = name === 'decl' ? declInjections : mainInjections;\n injectionType[key] = injectionType[key] || [];\n injectionType[key].push(injections[key]);\n } else {\n hookInjections[key] = hookInjections[key] || [];\n hookInjections[key].push(injections[key]);\n }\n }\n }\n\n // For injectShader\n assembledSource += INJECT_SHADER_DECLARATIONS;\n\n assembledSource = injectShader(assembledSource, type, declInjections);\n\n assembledSource += getHookFunctions(hookFunctionMap[type], hookInjections);\n\n // Add the version directive and actual source of this shader\n assembledSource += coreSource;\n\n // Apply any requested shader injections\n assembledSource = injectShader(assembledSource, type, mainInjections);\n\n assembledSource = transpileShader(\n assembledSource,\n transpileToGLSL100 ? 100 : glslVersion,\n isVertex\n );\n\n return assembledSource;\n}\n\n// Returns a combined `getUniforms` covering the options for all the modules,\n// the created function will pass on options to the inidividual `getUniforms`\n// function of each shader module and combine the results into one object that\n// can be passed to setUniforms.\nfunction assembleGetUniforms(modules) {\n return function getUniforms(opts) {\n const uniforms = {};\n for (const module of modules) {\n // `modules` is already sorted by dependency level. This guarantees that\n // modules have access to the uniforms that are generated by their dependencies.\n const moduleUniforms = module.getUniforms(opts, uniforms);\n Object.assign(uniforms, moduleUniforms);\n }\n return uniforms;\n };\n}\n\nfunction getShaderType({type}) {\n return `\n#define SHADER_TYPE_${SHADER_TYPE[type].toUpperCase()}\n`;\n}\n\n// Generate \"glslify-compatible\" SHADER_NAME defines\n// These are understood by the GLSL error parsing function\n// If id is provided and no SHADER_NAME constant is present in source, create one\nfunction getShaderName({id, source, type}) {\n const injectShaderName = id && typeof id === 'string' && source.indexOf('SHADER_NAME') === -1;\n return injectShaderName\n ? `\n#define SHADER_NAME ${id}_${SHADER_TYPE[type]}\n\n`\n : '';\n}\n\n// Generates application defines from an object\nfunction getApplicationDefines(defines = {}) {\n let count = 0;\n let sourceText = '';\n for (const define in defines) {\n if (count === 0) {\n sourceText += '\\n// APPLICATION DEFINES\\n';\n }\n count++;\n\n const value = defines[define];\n if (value || Number.isFinite(value)) {\n sourceText += `#define ${define.toUpperCase()} ${defines[define]}\\n`;\n }\n }\n if (count === 0) {\n sourceText += '\\n';\n }\n return sourceText;\n}\n\nfunction getHookFunctions(hookFunctions, hookInjections) {\n let result = '';\n for (const hookName in hookFunctions) {\n const hookFunction = hookFunctions[hookName];\n result += `void ${hookFunction.signature} {\\n`;\n if (hookFunction.header) {\n result += ` ${hookFunction.header}`;\n }\n if (hookInjections[hookName]) {\n const injections = hookInjections[hookName];\n injections.sort((a, b) => a.order - b.order);\n for (const injection of injections) {\n result += ` ${injection.injection}\\n`;\n }\n }\n if (hookFunction.footer) {\n result += ` ${hookFunction.footer}`;\n }\n result += '}\\n';\n }\n\n return result;\n}\n\nfunction normalizeHookFunctions(hookFunctions) {\n const result = {\n vs: {},\n fs: {}\n };\n\n hookFunctions.forEach(hook => {\n let opts;\n if (typeof hook !== 'string') {\n opts = hook;\n hook = opts.hook;\n } else {\n opts = {};\n }\n hook = hook.trim();\n const [stage, signature] = hook.split(':');\n const name = hook.replace(/\\(.+/, '');\n result[stage][name] = Object.assign(opts, {signature});\n });\n\n return result;\n}\n"],"file":"assemble-shaders.js"}
1
+ {"version":3,"sources":["../../../src/lib/assemble-shaders.js"],"names":["INJECT_SHADER_DECLARATIONS","DECLARATION_INJECT_MARKER","SHADER_TYPE","VERTEX_SHADER","FRAGMENT_SHADER","FRAGMENT_SHADER_PROLOGUE","assembleShaders","gl","opts","vs","fs","modules","assembleShader","Object","assign","source","type","getUniforms","assembleGetUniforms","id","defines","hookFunctions","inject","transpileToGLSL100","prologue","log","isVertex","sourceLines","split","glslVersion","versionLine","coreSource","indexOf","slice","join","allDefines","forEach","module","getDefines","assembledSource","getShaderName","getShaderType","getApplicationDefines","hookFunctionMap","normalizeHookFunctions","hookInjections","declInjections","mainInjections","key","injection","order","match","hash","name","checkDeprecations","moduleSource","getModuleSource","injections","injectionType","push","getHookFunctions","uniforms","moduleUniforms","toUpperCase","injectShaderName","count","sourceText","define","value","Number","isFinite","result","hookName","hookFunction","signature","header","sort","a","b","footer","hook","trim","stage","replace"],"mappings":"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","sourcesContent":["import {VERTEX_SHADER, FRAGMENT_SHADER} from './constants';\nimport {resolveModules} from './resolve-modules';\nimport {getPlatformShaderDefines, getVersionDefines} from './platform-defines';\nimport injectShader, {DECLARATION_INJECT_MARKER} from './inject-shader';\nimport transpileShader from './transpile-shader';\nimport {assert} from '../utils';\n\nconst INJECT_SHADER_DECLARATIONS = `\\n\\n${DECLARATION_INJECT_MARKER}\\n\\n`;\n\nconst SHADER_TYPE = {\n [VERTEX_SHADER]: 'vertex',\n [FRAGMENT_SHADER]: 'fragment'\n};\n\n// Precision prologue to inject before functions are injected in shader\n// TODO - extract any existing prologue in the fragment source and move it up...\nconst FRAGMENT_SHADER_PROLOGUE = `\\\nprecision highp float;\n\n`;\n\n// Inject a list of modules\nexport function assembleShaders(gl, opts) {\n const {vs, fs} = opts;\n const modules = resolveModules(opts.modules || []);\n return {\n gl,\n vs: assembleShader(gl, Object.assign({}, opts, {source: vs, type: VERTEX_SHADER, modules})),\n fs: assembleShader(gl, Object.assign({}, opts, {source: fs, type: FRAGMENT_SHADER, modules})),\n getUniforms: assembleGetUniforms(modules)\n };\n}\n\n// Pulls together complete source code for either a vertex or a fragment shader\n// adding prologues, requested module chunks, and any final injections.\nfunction assembleShader(\n gl,\n {\n id,\n source,\n type,\n modules,\n defines = {},\n hookFunctions = [],\n inject = {},\n transpileToGLSL100 = false,\n prologue = true,\n log\n }\n) {\n assert(typeof source === 'string', 'shader source must be a string');\n\n const isVertex = type === VERTEX_SHADER;\n\n const sourceLines = source.split('\\n');\n let glslVersion = 100;\n let versionLine = '';\n let coreSource = source;\n // Extract any version directive string from source.\n // TODO : keep all pre-processor statements at the begining of the shader.\n if (sourceLines[0].indexOf('#version ') === 0) {\n glslVersion = 300; // TODO - regexp that matches actual version number\n versionLine = sourceLines[0];\n coreSource = sourceLines.slice(1).join('\\n');\n } else {\n versionLine = `#version ${glslVersion}`;\n }\n\n // Combine Module and Application Defines\n const allDefines = {};\n modules.forEach(module => {\n Object.assign(allDefines, module.getDefines());\n });\n Object.assign(allDefines, defines);\n\n // Add platform defines (use these to work around platform-specific bugs and limitations)\n // Add common defines (GLSL version compatibility, feature detection)\n // Add precision declaration for fragment shaders\n let assembledSource = prologue\n ? `\\\n${versionLine}\n${getShaderName({id, source, type})}\n${getShaderType({type})}\n${getPlatformShaderDefines(gl)}\n${getVersionDefines(gl, glslVersion, !isVertex)}\n${getApplicationDefines(allDefines)}\n${isVertex ? '' : FRAGMENT_SHADER_PROLOGUE}\n`\n : `${versionLine}\n`;\n\n const hookFunctionMap = normalizeHookFunctions(hookFunctions);\n\n // Add source of dependent modules in resolved order\n const hookInjections = {};\n const declInjections = {};\n const mainInjections = {};\n\n for (const key in inject) {\n const injection =\n typeof inject[key] === 'string' ? {injection: inject[key], order: 0} : inject[key];\n const match = key.match(/^(v|f)s:(#)?([\\w-]+)$/);\n if (match) {\n const hash = match[2];\n const name = match[3];\n if (hash) {\n if (name === 'decl') {\n declInjections[key] = [injection];\n } else {\n mainInjections[key] = [injection];\n }\n } else {\n hookInjections[key] = [injection];\n }\n } else {\n // Regex injection\n mainInjections[key] = [injection];\n }\n }\n\n for (const module of modules) {\n if (log) {\n module.checkDeprecations(coreSource, log);\n }\n const moduleSource = module.getModuleSource(type, glslVersion);\n // Add the module source, and a #define that declares it presence\n assembledSource += moduleSource;\n\n const injections = module.injections[type];\n for (const key in injections) {\n const match = key.match(/^(v|f)s:#([\\w-]+)$/);\n if (match) {\n const name = match[2];\n const injectionType = name === 'decl' ? declInjections : mainInjections;\n injectionType[key] = injectionType[key] || [];\n injectionType[key].push(injections[key]);\n } else {\n hookInjections[key] = hookInjections[key] || [];\n hookInjections[key].push(injections[key]);\n }\n }\n }\n\n // For injectShader\n assembledSource += INJECT_SHADER_DECLARATIONS;\n\n assembledSource = injectShader(assembledSource, type, declInjections);\n\n assembledSource += getHookFunctions(hookFunctionMap[type], hookInjections);\n\n // Add the version directive and actual source of this shader\n assembledSource += coreSource;\n\n // Apply any requested shader injections\n assembledSource = injectShader(assembledSource, type, mainInjections);\n\n assembledSource = transpileShader(\n assembledSource,\n transpileToGLSL100 ? 100 : glslVersion,\n isVertex\n );\n\n return assembledSource;\n}\n\n// Returns a combined `getUniforms` covering the options for all the modules,\n// the created function will pass on options to the inidividual `getUniforms`\n// function of each shader module and combine the results into one object that\n// can be passed to setUniforms.\nfunction assembleGetUniforms(modules) {\n return function getUniforms(opts) {\n const uniforms = {};\n for (const module of modules) {\n // `modules` is already sorted by dependency level. This guarantees that\n // modules have access to the uniforms that are generated by their dependencies.\n const moduleUniforms = module.getUniforms(opts, uniforms);\n Object.assign(uniforms, moduleUniforms);\n }\n return uniforms;\n };\n}\n\nfunction getShaderType({type}) {\n return `\n#define SHADER_TYPE_${SHADER_TYPE[type].toUpperCase()}\n`;\n}\n\n// Generate \"glslify-compatible\" SHADER_NAME defines\n// These are understood by the GLSL error parsing function\n// If id is provided and no SHADER_NAME constant is present in source, create one\nfunction getShaderName({id, source, type}) {\n const injectShaderName = id && typeof id === 'string' && source.indexOf('SHADER_NAME') === -1;\n return injectShaderName\n ? `\n#define SHADER_NAME ${id}_${SHADER_TYPE[type]}\n\n`\n : '';\n}\n\n// Generates application defines from an object\nfunction getApplicationDefines(defines = {}) {\n let count = 0;\n let sourceText = '';\n for (const define in defines) {\n if (count === 0) {\n sourceText += '\\n// APPLICATION DEFINES\\n';\n }\n count++;\n\n const value = defines[define];\n if (value || Number.isFinite(value)) {\n sourceText += `#define ${define.toUpperCase()} ${defines[define]}\\n`;\n }\n }\n if (count === 0) {\n sourceText += '\\n';\n }\n return sourceText;\n}\n\nfunction getHookFunctions(hookFunctions, hookInjections) {\n let result = '';\n for (const hookName in hookFunctions) {\n const hookFunction = hookFunctions[hookName];\n result += `void ${hookFunction.signature} {\\n`;\n if (hookFunction.header) {\n result += ` ${hookFunction.header}`;\n }\n if (hookInjections[hookName]) {\n const injections = hookInjections[hookName];\n injections.sort((a, b) => a.order - b.order);\n for (const injection of injections) {\n result += ` ${injection.injection}\\n`;\n }\n }\n if (hookFunction.footer) {\n result += ` ${hookFunction.footer}`;\n }\n result += '}\\n';\n }\n\n return result;\n}\n\nfunction normalizeHookFunctions(hookFunctions) {\n const result = {\n vs: {},\n fs: {}\n };\n\n hookFunctions.forEach(hook => {\n let opts;\n if (typeof hook !== 'string') {\n opts = hook;\n hook = opts.hook;\n } else {\n opts = {};\n }\n hook = hook.trim();\n const [stage, signature] = hook.split(':');\n const name = hook.replace(/\\(.+/, '');\n result[stage][name] = Object.assign(opts, {signature});\n });\n\n return result;\n}\n"],"file":"assemble-shaders.js"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.FRAGMENT_SHADER = exports.VERTEX_SHADER = void 0;
6
+ exports.VERTEX_SHADER = exports.FRAGMENT_SHADER = void 0;
7
7
  var VERTEX_SHADER = 'vs';
8
8
  exports.VERTEX_SHADER = VERTEX_SHADER;
9
9
  var FRAGMENT_SHADER = 'fs';
@@ -5,9 +5,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = injectShader;
9
- exports.combineInjects = combineInjects;
10
8
  exports.DECLARATION_INJECT_MARKER = void 0;
9
+ exports.combineInjects = combineInjects;
10
+ exports.default = injectShader;
11
11
 
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
13
 
@@ -5,14 +5,14 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.resolveModules = resolveModules;
9
8
  exports.TEST_EXPORTS = void 0;
9
+ exports.resolveModules = resolveModules;
10
10
 
11
11
  var _shaderModule = _interopRequireDefault(require("./shader-module"));
12
12
 
13
13
  var _utils = require("../utils");
14
14
 
15
- function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
15
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
16
16
 
17
17
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
18
18
 
@@ -5,8 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.normalizeShaderModule = normalizeShaderModule;
9
8
  exports.default = void 0;
9
+ exports.normalizeShaderModule = normalizeShaderModule;
10
10
 
11
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
12
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/shader-module.js"],"names":["VERTEX_SHADER","FRAGMENT_SHADER","ShaderModule","name","vs","fs","dependencies","uniforms","getUniforms","deprecations","defines","inject","vertexShader","fragmentShader","getModuleUniforms","_parseDeprecationDefinitions","injections","normalizeInjections","type","moduleSource","toUpperCase","replace","opts","_defaultGetUniforms","shaderSource","log","forEach","def","regex","test","deprecated","old","new","removed","RegExp","propTypes","key","propDef","private","validate","value","normalizeShaderModule","module","normalized","shaderModule","bind","result","hook","injection","stage","slice","order"],"mappings":"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","sourcesContent":["import {assert} from '../utils';\nimport {parsePropTypes} from './filters/prop-types';\n\nconst VERTEX_SHADER = 'vs';\nconst FRAGMENT_SHADER = 'fs';\n\nexport default class ShaderModule {\n constructor({\n name,\n vs,\n fs,\n dependencies = [],\n uniforms,\n getUniforms,\n deprecations = [],\n defines = {},\n inject = {},\n // DEPRECATED\n vertexShader,\n fragmentShader\n }) {\n assert(typeof name === 'string');\n this.name = name;\n this.vs = vs || vertexShader;\n this.fs = fs || fragmentShader;\n this.getModuleUniforms = getUniforms;\n this.dependencies = dependencies;\n this.deprecations = this._parseDeprecationDefinitions(deprecations);\n this.defines = defines;\n this.injections = normalizeInjections(inject);\n\n if (uniforms) {\n this.uniforms = parsePropTypes(uniforms);\n }\n }\n\n // Extracts the source code chunk for the specified shader type from the named shader module\n getModuleSource(type) {\n let moduleSource;\n switch (type) {\n case VERTEX_SHADER:\n moduleSource = this.vs || '';\n break;\n case FRAGMENT_SHADER:\n moduleSource = this.fs || '';\n break;\n default:\n assert(false);\n }\n\n return `\\\n#define MODULE_${this.name.toUpperCase().replace(/[^0-9a-z]/gi, '_')}\n${moduleSource}\\\n// END MODULE_${this.name}\n\n`;\n }\n\n getUniforms(opts, uniforms) {\n if (this.getModuleUniforms) {\n return this.getModuleUniforms(opts, uniforms);\n }\n // Build uniforms from the uniforms array\n if (this.uniforms) {\n return this._defaultGetUniforms(opts);\n }\n return {};\n }\n\n getDefines() {\n return this.defines;\n }\n\n // Warn about deprecated uniforms or functions\n checkDeprecations(shaderSource, log) {\n this.deprecations.forEach(def => {\n if (def.regex.test(shaderSource)) {\n if (def.deprecated) {\n log.deprecated(def.old, def.new)();\n } else {\n log.removed(def.old, def.new)();\n }\n }\n });\n }\n\n _parseDeprecationDefinitions(deprecations) {\n deprecations.forEach(def => {\n switch (def.type) {\n case 'function':\n def.regex = new RegExp(`\\\\b${def.old}\\\\(`);\n break;\n default:\n def.regex = new RegExp(`${def.type} ${def.old};`);\n }\n });\n\n return deprecations;\n }\n\n _defaultGetUniforms(opts = {}) {\n const uniforms = {};\n const propTypes = this.uniforms;\n\n for (const key in propTypes) {\n const propDef = propTypes[key];\n if (key in opts && !propDef.private) {\n if (propDef.validate) {\n assert(propDef.validate(opts[key], propDef), `${this.name}: invalid ${key}`);\n }\n uniforms[key] = opts[key];\n } else {\n uniforms[key] = propDef.value;\n }\n }\n\n return uniforms;\n }\n}\n\n// This utility mutates the original module\n// Keeping for backward compatibility\n// TODO - remove in v8\nexport function normalizeShaderModule(module) {\n if (!module.normalized) {\n module.normalized = true;\n if (module.uniforms && !module.getUniforms) {\n const shaderModule = new ShaderModule(module);\n module.getUniforms = shaderModule.getUniforms.bind(shaderModule);\n }\n }\n return module;\n}\n\nfunction normalizeInjections(injections) {\n const result = {\n vs: {},\n fs: {}\n };\n\n for (const hook in injections) {\n let injection = injections[hook];\n const stage = hook.slice(0, 2);\n\n if (typeof injection === 'string') {\n injection = {\n order: 0,\n injection\n };\n }\n\n result[stage][hook] = injection;\n }\n\n return result;\n}\n"],"file":"shader-module.js"}
1
+ {"version":3,"sources":["../../../src/lib/shader-module.js"],"names":["VERTEX_SHADER","FRAGMENT_SHADER","ShaderModule","name","vs","fs","dependencies","uniforms","getUniforms","deprecations","defines","inject","vertexShader","fragmentShader","getModuleUniforms","_parseDeprecationDefinitions","injections","normalizeInjections","type","moduleSource","toUpperCase","replace","opts","_defaultGetUniforms","shaderSource","log","forEach","def","regex","test","deprecated","old","new","removed","RegExp","propTypes","key","propDef","private","validate","value","normalizeShaderModule","module","normalized","shaderModule","bind","result","hook","injection","stage","slice","order"],"mappings":";;;;;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,aAAa,GAAG,IAAtB;AACA,IAAMC,eAAe,GAAG,IAAxB;;IAEqBC,Y;AACnB,8BAaG;AAAA,QAZDC,IAYC,QAZDA,IAYC;AAAA,QAXDC,EAWC,QAXDA,EAWC;AAAA,QAVDC,EAUC,QAVDA,EAUC;AAAA,iCATDC,YASC;AAAA,QATDA,YASC,kCATc,EASd;AAAA,QARDC,QAQC,QARDA,QAQC;AAAA,QAPDC,WAOC,QAPDA,WAOC;AAAA,iCANDC,YAMC;AAAA,QANDA,YAMC,kCANc,EAMd;AAAA,4BALDC,OAKC;AAAA,QALDA,OAKC,6BALS,EAKT;AAAA,2BAJDC,MAIC;AAAA,QAJDA,MAIC,4BAJQ,EAIR;AAAA,QAFDC,YAEC,QAFDA,YAEC;AAAA,QADDC,cACC,QADDA,cACC;AAAA;AACD,uBAAO,OAAOV,IAAP,KAAgB,QAAvB;AACA,SAAKA,IAAL,GAAYA,IAAZ;AACA,SAAKC,EAAL,GAAUA,EAAE,IAAIQ,YAAhB;AACA,SAAKP,EAAL,GAAUA,EAAE,IAAIQ,cAAhB;AACA,SAAKC,iBAAL,GAAyBN,WAAzB;AACA,SAAKF,YAAL,GAAoBA,YAApB;AACA,SAAKG,YAAL,GAAoB,KAAKM,4BAAL,CAAkCN,YAAlC,CAApB;AACA,SAAKC,OAAL,GAAeA,OAAf;AACA,SAAKM,UAAL,GAAkBC,mBAAmB,CAACN,MAAD,CAArC;;AAEA,QAAIJ,QAAJ,EAAc;AACZ,WAAKA,QAAL,GAAgB,+BAAeA,QAAf,CAAhB;AACD;AACF;;;;WAGD,yBAAgBW,IAAhB,EAAsB;AACpB,UAAIC,YAAJ;;AACA,cAAQD,IAAR;AACE,aAAKlB,aAAL;AACEmB,UAAAA,YAAY,GAAG,KAAKf,EAAL,IAAW,EAA1B;AACA;;AACF,aAAKH,eAAL;AACEkB,UAAAA,YAAY,GAAG,KAAKd,EAAL,IAAW,EAA1B;AACA;;AACF;AACE,6BAAO,KAAP;AARJ;;AAWA,sCACa,KAAKF,IAAL,CAAUiB,WAAV,GAAwBC,OAAxB,CAAgC,aAAhC,EAA+C,GAA/C,CADb,eAEFF,YAFE,2BAGY,KAAKhB,IAHjB;AAMD;;;WAED,qBAAYmB,IAAZ,EAAkBf,QAAlB,EAA4B;AAC1B,UAAI,KAAKO,iBAAT,EAA4B;AAC1B,eAAO,KAAKA,iBAAL,CAAuBQ,IAAvB,EAA6Bf,QAA7B,CAAP;AACD;;AAED,UAAI,KAAKA,QAAT,EAAmB;AACjB,eAAO,KAAKgB,mBAAL,CAAyBD,IAAzB,CAAP;AACD;;AACD,aAAO,EAAP;AACD;;;WAED,sBAAa;AACX,aAAO,KAAKZ,OAAZ;AACD;;;WAGD,2BAAkBc,YAAlB,EAAgCC,GAAhC,EAAqC;AACnC,WAAKhB,YAAL,CAAkBiB,OAAlB,CAA0B,UAAAC,GAAG,EAAI;AAC/B,YAAIA,GAAG,CAACC,KAAJ,CAAUC,IAAV,CAAeL,YAAf,CAAJ,EAAkC;AAChC,cAAIG,GAAG,CAACG,UAAR,EAAoB;AAClBL,YAAAA,GAAG,CAACK,UAAJ,CAAeH,GAAG,CAACI,GAAnB,EAAwBJ,GAAG,CAACK,GAA5B;AACD,WAFD,MAEO;AACLP,YAAAA,GAAG,CAACQ,OAAJ,CAAYN,GAAG,CAACI,GAAhB,EAAqBJ,GAAG,CAACK,GAAzB;AACD;AACF;AACF,OARD;AASD;;;WAED,sCAA6BvB,YAA7B,EAA2C;AACzCA,MAAAA,YAAY,CAACiB,OAAb,CAAqB,UAAAC,GAAG,EAAI;AAC1B,gBAAQA,GAAG,CAACT,IAAZ;AACE,eAAK,UAAL;AACES,YAAAA,GAAG,CAACC,KAAJ,GAAY,IAAIM,MAAJ,cAAiBP,GAAG,CAACI,GAArB,SAAZ;AACA;;AACF;AACEJ,YAAAA,GAAG,CAACC,KAAJ,GAAY,IAAIM,MAAJ,WAAcP,GAAG,CAACT,IAAlB,cAA0BS,GAAG,CAACI,GAA9B,OAAZ;AALJ;AAOD,OARD;AAUA,aAAOtB,YAAP;AACD;;;WAED,+BAA+B;AAAA,UAAXa,IAAW,uEAAJ,EAAI;AAC7B,UAAMf,QAAQ,GAAG,EAAjB;AACA,UAAM4B,SAAS,GAAG,KAAK5B,QAAvB;;AAEA,WAAK,IAAM6B,GAAX,IAAkBD,SAAlB,EAA6B;AAC3B,YAAME,OAAO,GAAGF,SAAS,CAACC,GAAD,CAAzB;;AACA,YAAIA,GAAG,IAAId,IAAP,IAAe,CAACe,OAAO,CAACC,OAA5B,EAAqC;AACnC,cAAID,OAAO,CAACE,QAAZ,EAAsB;AACpB,+BAAOF,OAAO,CAACE,QAAR,CAAiBjB,IAAI,CAACc,GAAD,CAArB,EAA4BC,OAA5B,CAAP,YAAgD,KAAKlC,IAArD,uBAAsEiC,GAAtE;AACD;;AACD7B,UAAAA,QAAQ,CAAC6B,GAAD,CAAR,GAAgBd,IAAI,CAACc,GAAD,CAApB;AACD,SALD,MAKO;AACL7B,UAAAA,QAAQ,CAAC6B,GAAD,CAAR,GAAgBC,OAAO,CAACG,KAAxB;AACD;AACF;;AAED,aAAOjC,QAAP;AACD;;;;;;;AAMI,SAASkC,qBAAT,CAA+BC,MAA/B,EAAuC;AAC5C,MAAI,CAACA,MAAM,CAACC,UAAZ,EAAwB;AACtBD,IAAAA,MAAM,CAACC,UAAP,GAAoB,IAApB;;AACA,QAAID,MAAM,CAACnC,QAAP,IAAmB,CAACmC,MAAM,CAAClC,WAA/B,EAA4C;AAC1C,UAAMoC,YAAY,GAAG,IAAI1C,YAAJ,CAAiBwC,MAAjB,CAArB;AACAA,MAAAA,MAAM,CAAClC,WAAP,GAAqBoC,YAAY,CAACpC,WAAb,CAAyBqC,IAAzB,CAA8BD,YAA9B,CAArB;AACD;AACF;;AACD,SAAOF,MAAP;AACD;;AAED,SAASzB,mBAAT,CAA6BD,UAA7B,EAAyC;AACvC,MAAM8B,MAAM,GAAG;AACb1C,IAAAA,EAAE,EAAE,EADS;AAEbC,IAAAA,EAAE,EAAE;AAFS,GAAf;;AAKA,OAAK,IAAM0C,IAAX,IAAmB/B,UAAnB,EAA+B;AAC7B,QAAIgC,SAAS,GAAGhC,UAAU,CAAC+B,IAAD,CAA1B;AACA,QAAME,KAAK,GAAGF,IAAI,CAACG,KAAL,CAAW,CAAX,EAAc,CAAd,CAAd;;AAEA,QAAI,OAAOF,SAAP,KAAqB,QAAzB,EAAmC;AACjCA,MAAAA,SAAS,GAAG;AACVG,QAAAA,KAAK,EAAE,CADG;AAEVH,QAAAA,SAAS,EAATA;AAFU,OAAZ;AAID;;AAEDF,IAAAA,MAAM,CAACG,KAAD,CAAN,CAAcF,IAAd,IAAsBC,SAAtB;AACD;;AAED,SAAOF,MAAP;AACD","sourcesContent":["import {assert} from '../utils';\nimport {parsePropTypes} from './filters/prop-types';\n\nconst VERTEX_SHADER = 'vs';\nconst FRAGMENT_SHADER = 'fs';\n\nexport default class ShaderModule {\n constructor({\n name,\n vs,\n fs,\n dependencies = [],\n uniforms,\n getUniforms,\n deprecations = [],\n defines = {},\n inject = {},\n // DEPRECATED\n vertexShader,\n fragmentShader\n }) {\n assert(typeof name === 'string');\n this.name = name;\n this.vs = vs || vertexShader;\n this.fs = fs || fragmentShader;\n this.getModuleUniforms = getUniforms;\n this.dependencies = dependencies;\n this.deprecations = this._parseDeprecationDefinitions(deprecations);\n this.defines = defines;\n this.injections = normalizeInjections(inject);\n\n if (uniforms) {\n this.uniforms = parsePropTypes(uniforms);\n }\n }\n\n // Extracts the source code chunk for the specified shader type from the named shader module\n getModuleSource(type) {\n let moduleSource;\n switch (type) {\n case VERTEX_SHADER:\n moduleSource = this.vs || '';\n break;\n case FRAGMENT_SHADER:\n moduleSource = this.fs || '';\n break;\n default:\n assert(false);\n }\n\n return `\\\n#define MODULE_${this.name.toUpperCase().replace(/[^0-9a-z]/gi, '_')}\n${moduleSource}\\\n// END MODULE_${this.name}\n\n`;\n }\n\n getUniforms(opts, uniforms) {\n if (this.getModuleUniforms) {\n return this.getModuleUniforms(opts, uniforms);\n }\n // Build uniforms from the uniforms array\n if (this.uniforms) {\n return this._defaultGetUniforms(opts);\n }\n return {};\n }\n\n getDefines() {\n return this.defines;\n }\n\n // Warn about deprecated uniforms or functions\n checkDeprecations(shaderSource, log) {\n this.deprecations.forEach(def => {\n if (def.regex.test(shaderSource)) {\n if (def.deprecated) {\n log.deprecated(def.old, def.new)();\n } else {\n log.removed(def.old, def.new)();\n }\n }\n });\n }\n\n _parseDeprecationDefinitions(deprecations) {\n deprecations.forEach(def => {\n switch (def.type) {\n case 'function':\n def.regex = new RegExp(`\\\\b${def.old}\\\\(`);\n break;\n default:\n def.regex = new RegExp(`${def.type} ${def.old};`);\n }\n });\n\n return deprecations;\n }\n\n _defaultGetUniforms(opts = {}) {\n const uniforms = {};\n const propTypes = this.uniforms;\n\n for (const key in propTypes) {\n const propDef = propTypes[key];\n if (key in opts && !propDef.private) {\n if (propDef.validate) {\n assert(propDef.validate(opts[key], propDef), `${this.name}: invalid ${key}`);\n }\n uniforms[key] = opts[key];\n } else {\n uniforms[key] = propDef.value;\n }\n }\n\n return uniforms;\n }\n}\n\n// This utility mutates the original module\n// Keeping for backward compatibility\n// TODO - remove in v8\nexport function normalizeShaderModule(module) {\n if (!module.normalized) {\n module.normalized = true;\n if (module.uniforms && !module.getUniforms) {\n const shaderModule = new ShaderModule(module);\n module.getUniforms = shaderModule.getUniforms.bind(shaderModule);\n }\n }\n return module;\n}\n\nfunction normalizeInjections(injections) {\n const result = {\n vs: {},\n fs: {}\n };\n\n for (const hook in injections) {\n let injection = injections[hook];\n const stage = hook.slice(0, 2);\n\n if (typeof injection === 'string') {\n injection = {\n order: 0,\n injection\n };\n }\n\n result[stage][hook] = injection;\n }\n\n return result;\n}\n"],"file":"shader-module.js"}
@@ -9,7 +9,7 @@ exports.default = transpileShader;
9
9
 
10
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
11
 
12
- function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
12
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
13
13
 
14
14
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
15
 
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.fp64ify = fp64ify;
7
6
  exports.fp64LowPart = fp64LowPart;
7
+ exports.fp64ify = fp64ify;
8
8
  exports.fp64ifyMatrix4 = fp64ifyMatrix4;
9
9
 
10
10
  function fp64ify(a) {
@@ -5,16 +5,18 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- Object.defineProperty(exports, "fp64ify", {
8
+ exports.fp64 = void 0;
9
+ Object.defineProperty(exports, "fp64LowPart", {
9
10
  enumerable: true,
10
11
  get: function get() {
11
- return _fp64Utils.fp64ify;
12
+ return _fp64Utils.fp64LowPart;
12
13
  }
13
14
  });
14
- Object.defineProperty(exports, "fp64LowPart", {
15
+ exports.fp64arithmetic = void 0;
16
+ Object.defineProperty(exports, "fp64ify", {
15
17
  enumerable: true,
16
18
  get: function get() {
17
- return _fp64Utils.fp64LowPart;
19
+ return _fp64Utils.fp64ify;
18
20
  }
19
21
  });
20
22
  Object.defineProperty(exports, "fp64ifyMatrix4", {
@@ -23,7 +25,6 @@ Object.defineProperty(exports, "fp64ifyMatrix4", {
23
25
  return _fp64Utils.fp64ifyMatrix4;
24
26
  }
25
27
  });
26
- exports.fp64 = exports.fp64arithmetic = void 0;
27
28
 
28
29
  var _fp64Utils = require("./fp64-utils");
29
30
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/modules/fp64/fp64.js"],"names":["CONST_UNIFORMS","ONE","getUniforms","fp64arithmetic","name","vs","fp64arithmeticShader","fs","fp64ify","fp64LowPart","fp64ifyMatrix4","fp64","fp64functionShader","dependencies"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;AAEA;;AACA;;AAEA,IAAMA,cAAc,GAAG;AAErBC,EAAAA,GAAG,EAAE;AAFgB,CAAvB;;AAMA,SAASC,WAAT,GAAuB;AACrB,SAAOF,cAAP;AACD;;AAGM,IAAMG,cAAc,GAAG;AAC5BC,EAAAA,IAAI,EAAE,iBADsB;AAE5BC,EAAAA,EAAE,EAAEC,uBAFwB;AAG5BC,EAAAA,EAAE,EAAE,IAHwB;AAI5BL,EAAAA,WAAW,EAAXA,WAJ4B;AAK5BM,EAAAA,OAAO,EAAPA,kBAL4B;AAM5BC,EAAAA,WAAW,EAAXA,sBAN4B;AAO5BC,EAAAA,cAAc,EAAdA;AAP4B,CAAvB;;AAWA,IAAMC,IAAI,GAAG;AAClBP,EAAAA,IAAI,EAAE,MADY;AAElBC,EAAAA,EAAE,EAAEO,sBAFc;AAGlBL,EAAAA,EAAE,EAAE,IAHc;AAIlBM,EAAAA,YAAY,EAAE,CAACV,cAAD,CAJI;AAKlBK,EAAAA,OAAO,EAAPA,kBALkB;AAMlBC,EAAAA,WAAW,EAAXA,sBANkB;AAOlBC,EAAAA,cAAc,EAAdA;AAPkB,CAAb","sourcesContent":["/** @typedef {import('../../types').ShaderModule} ShaderModule */\n\nimport {fp64ify, fp64LowPart, fp64ifyMatrix4} from './fp64-utils';\n\nimport fp64arithmeticShader from './fp64-arithmetic.glsl';\nimport fp64functionShader from './fp64-functions.glsl';\n\nconst CONST_UNIFORMS = {\n // Used in LUMA_FP64_CODE_ELIMINATION_WORKAROUND\n ONE: 1.0\n};\nexport {fp64ify, fp64LowPart, fp64ifyMatrix4};\n\nfunction getUniforms() {\n return CONST_UNIFORMS;\n}\n\n// Arithmetic only\nexport const fp64arithmetic = {\n name: 'fp64-arithmetic',\n vs: fp64arithmeticShader,\n fs: null,\n getUniforms,\n fp64ify,\n fp64LowPart,\n fp64ifyMatrix4\n};\n\n// Full fp64 shader\nexport const fp64 = {\n name: 'fp64',\n vs: fp64functionShader,\n fs: null,\n dependencies: [fp64arithmetic],\n fp64ify,\n fp64LowPart,\n fp64ifyMatrix4\n};\n"],"file":"fp64.js"}
1
+ {"version":3,"sources":["../../../../src/modules/fp64/fp64.js"],"names":["CONST_UNIFORMS","ONE","getUniforms","fp64arithmetic","name","vs","fp64arithmeticShader","fs","fp64ify","fp64LowPart","fp64ifyMatrix4","fp64","fp64functionShader","dependencies"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;AAEA;;AACA;;AAEA,IAAMA,cAAc,GAAG;AAErBC,EAAAA,GAAG,EAAE;AAFgB,CAAvB;;AAMA,SAASC,WAAT,GAAuB;AACrB,SAAOF,cAAP;AACD;;AAGM,IAAMG,cAAc,GAAG;AAC5BC,EAAAA,IAAI,EAAE,iBADsB;AAE5BC,EAAAA,EAAE,EAAEC,uBAFwB;AAG5BC,EAAAA,EAAE,EAAE,IAHwB;AAI5BL,EAAAA,WAAW,EAAXA,WAJ4B;AAK5BM,EAAAA,OAAO,EAAPA,kBAL4B;AAM5BC,EAAAA,WAAW,EAAXA,sBAN4B;AAO5BC,EAAAA,cAAc,EAAdA;AAP4B,CAAvB;;AAWA,IAAMC,IAAI,GAAG;AAClBP,EAAAA,IAAI,EAAE,MADY;AAElBC,EAAAA,EAAE,EAAEO,sBAFc;AAGlBL,EAAAA,EAAE,EAAE,IAHc;AAIlBM,EAAAA,YAAY,EAAE,CAACV,cAAD,CAJI;AAKlBK,EAAAA,OAAO,EAAPA,kBALkB;AAMlBC,EAAAA,WAAW,EAAXA,sBANkB;AAOlBC,EAAAA,cAAc,EAAdA;AAPkB,CAAb","sourcesContent":["/** @typedef {import('../../types').ShaderModule} ShaderModule */\n\nimport {fp64ify, fp64LowPart, fp64ifyMatrix4} from './fp64-utils';\n\nimport fp64arithmeticShader from './fp64-arithmetic.glsl';\nimport fp64functionShader from './fp64-functions.glsl';\n\nconst CONST_UNIFORMS = {\n // Used in LUMA_FP64_CODE_ELIMINATION_WORKAROUND\n ONE: 1.0\n};\nexport {fp64ify, fp64LowPart, fp64ifyMatrix4};\n\nfunction getUniforms() {\n return CONST_UNIFORMS;\n}\n\n// Arithmetic only\nexport const fp64arithmetic = {\n name: 'fp64-arithmetic',\n vs: fp64arithmeticShader,\n fs: null,\n getUniforms,\n fp64ify,\n fp64LowPart,\n fp64ifyMatrix4\n};\n\n// Full fp64 shader\nexport const fp64 = {\n name: 'fp64',\n vs: fp64functionShader,\n fs: null,\n dependencies: [fp64arithmetic],\n fp64ify,\n fp64LowPart,\n fp64ifyMatrix4\n};\n"],"file":"fp64.js"}
@@ -3,40 +3,40 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "random", {
6
+ Object.defineProperty(exports, "_transform", {
7
7
  enumerable: true,
8
8
  get: function get() {
9
- return _random.random;
9
+ return _transform.transform;
10
10
  }
11
11
  });
12
- Object.defineProperty(exports, "fp32", {
12
+ Object.defineProperty(exports, "_warp", {
13
13
  enumerable: true,
14
14
  get: function get() {
15
- return _fp.fp32;
15
+ return _warp.warp;
16
16
  }
17
17
  });
18
- Object.defineProperty(exports, "fp64", {
18
+ Object.defineProperty(exports, "brightnessContrast", {
19
19
  enumerable: true,
20
20
  get: function get() {
21
- return _fp2.fp64;
21
+ return _brightnesscontrast.brightnessContrast;
22
22
  }
23
23
  });
24
- Object.defineProperty(exports, "fp64arithmetic", {
24
+ Object.defineProperty(exports, "bulgePinch", {
25
25
  enumerable: true,
26
26
  get: function get() {
27
- return _fp2.fp64arithmetic;
27
+ return _bulgepinch.bulgePinch;
28
28
  }
29
29
  });
30
- Object.defineProperty(exports, "project", {
30
+ Object.defineProperty(exports, "colorHalftone", {
31
31
  enumerable: true,
32
32
  get: function get() {
33
- return _project.project;
33
+ return _colorhalftone.colorHalftone;
34
34
  }
35
35
  });
36
- Object.defineProperty(exports, "lights", {
36
+ Object.defineProperty(exports, "denoise", {
37
37
  enumerable: true,
38
38
  get: function get() {
39
- return _lights.lights;
39
+ return _denoise.denoise;
40
40
  }
41
41
  });
42
42
  Object.defineProperty(exports, "dirlight", {
@@ -45,154 +45,154 @@ Object.defineProperty(exports, "dirlight", {
45
45
  return _dirlight.dirlight;
46
46
  }
47
47
  });
48
- Object.defineProperty(exports, "picking", {
48
+ Object.defineProperty(exports, "dotScreen", {
49
49
  enumerable: true,
50
50
  get: function get() {
51
- return _picking.picking;
51
+ return _dotscreen.dotScreen;
52
52
  }
53
53
  });
54
- Object.defineProperty(exports, "gouraudLighting", {
54
+ Object.defineProperty(exports, "edgeWork", {
55
55
  enumerable: true,
56
56
  get: function get() {
57
- return _phongLighting.gouraudLighting;
57
+ return _edgework.edgeWork;
58
58
  }
59
59
  });
60
- Object.defineProperty(exports, "phongLighting", {
60
+ Object.defineProperty(exports, "fp32", {
61
61
  enumerable: true,
62
62
  get: function get() {
63
- return _phongLighting.phongLighting;
63
+ return _fp.fp32;
64
64
  }
65
65
  });
66
- Object.defineProperty(exports, "pbr", {
66
+ Object.defineProperty(exports, "fp64", {
67
67
  enumerable: true,
68
68
  get: function get() {
69
- return _pbr.pbr;
69
+ return _fp2.fp64;
70
70
  }
71
71
  });
72
- Object.defineProperty(exports, "tiltShift", {
72
+ Object.defineProperty(exports, "fp64arithmetic", {
73
73
  enumerable: true,
74
74
  get: function get() {
75
- return _tiltshift.tiltShift;
75
+ return _fp2.fp64arithmetic;
76
76
  }
77
77
  });
78
- Object.defineProperty(exports, "triangleBlur", {
78
+ Object.defineProperty(exports, "fxaa", {
79
79
  enumerable: true,
80
80
  get: function get() {
81
- return _triangleblur.triangleBlur;
81
+ return _fxaa.fxaa;
82
82
  }
83
83
  });
84
- Object.defineProperty(exports, "zoomBlur", {
84
+ Object.defineProperty(exports, "gouraudLighting", {
85
85
  enumerable: true,
86
86
  get: function get() {
87
- return _zoomblur.zoomBlur;
87
+ return _phongLighting.gouraudLighting;
88
88
  }
89
89
  });
90
- Object.defineProperty(exports, "brightnessContrast", {
90
+ Object.defineProperty(exports, "hexagonalPixelate", {
91
91
  enumerable: true,
92
92
  get: function get() {
93
- return _brightnesscontrast.brightnessContrast;
93
+ return _hexagonalpixelate.hexagonalPixelate;
94
94
  }
95
95
  });
96
- Object.defineProperty(exports, "denoise", {
96
+ Object.defineProperty(exports, "hueSaturation", {
97
97
  enumerable: true,
98
98
  get: function get() {
99
- return _denoise.denoise;
99
+ return _huesaturation.hueSaturation;
100
100
  }
101
101
  });
102
- Object.defineProperty(exports, "hueSaturation", {
102
+ Object.defineProperty(exports, "ink", {
103
103
  enumerable: true,
104
104
  get: function get() {
105
- return _huesaturation.hueSaturation;
105
+ return _ink.ink;
106
106
  }
107
107
  });
108
- Object.defineProperty(exports, "noise", {
108
+ Object.defineProperty(exports, "lights", {
109
109
  enumerable: true,
110
110
  get: function get() {
111
- return _noise.noise;
111
+ return _lights.lights;
112
112
  }
113
113
  });
114
- Object.defineProperty(exports, "sepia", {
114
+ Object.defineProperty(exports, "magnify", {
115
115
  enumerable: true,
116
116
  get: function get() {
117
- return _sepia.sepia;
117
+ return _magnify.magnify;
118
118
  }
119
119
  });
120
- Object.defineProperty(exports, "vibrance", {
120
+ Object.defineProperty(exports, "noise", {
121
121
  enumerable: true,
122
122
  get: function get() {
123
- return _vibrance.vibrance;
123
+ return _noise.noise;
124
124
  }
125
125
  });
126
- Object.defineProperty(exports, "vignette", {
126
+ Object.defineProperty(exports, "pbr", {
127
127
  enumerable: true,
128
128
  get: function get() {
129
- return _vignette.vignette;
129
+ return _pbr.pbr;
130
130
  }
131
131
  });
132
- Object.defineProperty(exports, "colorHalftone", {
132
+ Object.defineProperty(exports, "phongLighting", {
133
133
  enumerable: true,
134
134
  get: function get() {
135
- return _colorhalftone.colorHalftone;
135
+ return _phongLighting.phongLighting;
136
136
  }
137
137
  });
138
- Object.defineProperty(exports, "dotScreen", {
138
+ Object.defineProperty(exports, "picking", {
139
139
  enumerable: true,
140
140
  get: function get() {
141
- return _dotscreen.dotScreen;
141
+ return _picking.picking;
142
142
  }
143
143
  });
144
- Object.defineProperty(exports, "edgeWork", {
144
+ Object.defineProperty(exports, "project", {
145
145
  enumerable: true,
146
146
  get: function get() {
147
- return _edgework.edgeWork;
147
+ return _project.project;
148
148
  }
149
149
  });
150
- Object.defineProperty(exports, "hexagonalPixelate", {
150
+ Object.defineProperty(exports, "random", {
151
151
  enumerable: true,
152
152
  get: function get() {
153
- return _hexagonalpixelate.hexagonalPixelate;
153
+ return _random.random;
154
154
  }
155
155
  });
156
- Object.defineProperty(exports, "ink", {
156
+ Object.defineProperty(exports, "sepia", {
157
157
  enumerable: true,
158
158
  get: function get() {
159
- return _ink.ink;
159
+ return _sepia.sepia;
160
160
  }
161
161
  });
162
- Object.defineProperty(exports, "magnify", {
162
+ Object.defineProperty(exports, "swirl", {
163
163
  enumerable: true,
164
164
  get: function get() {
165
- return _magnify.magnify;
165
+ return _swirl.swirl;
166
166
  }
167
167
  });
168
- Object.defineProperty(exports, "bulgePinch", {
168
+ Object.defineProperty(exports, "tiltShift", {
169
169
  enumerable: true,
170
170
  get: function get() {
171
- return _bulgepinch.bulgePinch;
171
+ return _tiltshift.tiltShift;
172
172
  }
173
173
  });
174
- Object.defineProperty(exports, "swirl", {
174
+ Object.defineProperty(exports, "triangleBlur", {
175
175
  enumerable: true,
176
176
  get: function get() {
177
- return _swirl.swirl;
177
+ return _triangleblur.triangleBlur;
178
178
  }
179
179
  });
180
- Object.defineProperty(exports, "_warp", {
180
+ Object.defineProperty(exports, "vibrance", {
181
181
  enumerable: true,
182
182
  get: function get() {
183
- return _warp.warp;
183
+ return _vibrance.vibrance;
184
184
  }
185
185
  });
186
- Object.defineProperty(exports, "fxaa", {
186
+ Object.defineProperty(exports, "vignette", {
187
187
  enumerable: true,
188
188
  get: function get() {
189
- return _fxaa.fxaa;
189
+ return _vignette.vignette;
190
190
  }
191
191
  });
192
- Object.defineProperty(exports, "_transform", {
192
+ Object.defineProperty(exports, "zoomBlur", {
193
193
  enumerable: true,
194
194
  get: function get() {
195
- return _transform.transform;
195
+ return _zoomblur.zoomBlur;
196
196
  }
197
197
  });
198
198
 
@@ -9,7 +9,7 @@ exports.lights = void 0;
9
9
 
10
10
  var _lights = _interopRequireDefault(require("./lights.glsl"));
11
11
 
12
- function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
12
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
13
13
 
14
14
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
15