@luma.gl/webgl 8.5.15 → 8.5.16

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 (194) hide show
  1. package/dist/dist.js +732 -848
  2. package/dist/dist.min.js +1 -1
  3. package/dist/es5/bundle.js.map +1 -1
  4. package/dist/es5/classes/accessor.js +31 -33
  5. package/dist/es5/classes/accessor.js.map +1 -1
  6. package/dist/es5/classes/buffer.js +24 -26
  7. package/dist/es5/classes/buffer.js.map +1 -1
  8. package/dist/es5/classes/clear.js.map +1 -1
  9. package/dist/es5/classes/copy-and-blit.js +3 -3
  10. package/dist/es5/classes/copy-and-blit.js.map +1 -1
  11. package/dist/es5/classes/framebuffer.js +70 -72
  12. package/dist/es5/classes/framebuffer.js.map +1 -1
  13. package/dist/es5/classes/program-configuration.js.map +1 -1
  14. package/dist/es5/classes/program.js +11 -13
  15. package/dist/es5/classes/program.js.map +1 -1
  16. package/dist/es5/classes/query.js +47 -49
  17. package/dist/es5/classes/query.js.map +1 -1
  18. package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
  19. package/dist/es5/classes/renderbuffer.js +37 -39
  20. package/dist/es5/classes/renderbuffer.js.map +1 -1
  21. package/dist/es5/classes/resource.js +13 -15
  22. package/dist/es5/classes/resource.js.map +1 -1
  23. package/dist/es5/classes/shader.js +38 -44
  24. package/dist/es5/classes/shader.js.map +1 -1
  25. package/dist/es5/classes/texture-2d.js +16 -17
  26. package/dist/es5/classes/texture-2d.js.map +1 -1
  27. package/dist/es5/classes/texture-3d.js +15 -17
  28. package/dist/es5/classes/texture-3d.js.map +1 -1
  29. package/dist/es5/classes/texture-cube.js +10 -12
  30. package/dist/es5/classes/texture-cube.js.map +1 -1
  31. package/dist/es5/classes/texture-formats.js +1 -1
  32. package/dist/es5/classes/texture-formats.js.map +1 -1
  33. package/dist/es5/classes/texture.js +24 -26
  34. package/dist/es5/classes/texture.js.map +1 -1
  35. package/dist/es5/classes/transform-feedback.js +16 -22
  36. package/dist/es5/classes/transform-feedback.js.map +1 -1
  37. package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
  38. package/dist/es5/classes/uniforms.js +2 -2
  39. package/dist/es5/classes/uniforms.js.map +1 -1
  40. package/dist/es5/classes/vertex-array-object.js +69 -71
  41. package/dist/es5/classes/vertex-array-object.js.map +1 -1
  42. package/dist/es5/classes/vertex-array.js.map +1 -1
  43. package/dist/es5/debug/debug-program-configuration.js +1 -1
  44. package/dist/es5/debug/debug-program-configuration.js.map +1 -1
  45. package/dist/es5/debug/debug-uniforms.js +1 -1
  46. package/dist/es5/debug/debug-uniforms.js.map +1 -1
  47. package/dist/es5/debug/debug-vertex-array.js.map +1 -1
  48. package/dist/es5/features/check-glsl-extension.js.map +1 -1
  49. package/dist/es5/features/check-old-ie.js.map +1 -1
  50. package/dist/es5/features/features.js +2 -2
  51. package/dist/es5/features/features.js.map +1 -1
  52. package/dist/es5/features/index.js +16 -16
  53. package/dist/es5/features/index.js.map +1 -1
  54. package/dist/es5/features/limits.js +1 -1
  55. package/dist/es5/features/limits.js.map +1 -1
  56. package/dist/es5/features/webgl-features-table.js.map +1 -1
  57. package/dist/es5/features/webgl-limits-table.js.map +1 -1
  58. package/dist/es5/glsl-utils/format-glsl-error.js.map +1 -1
  59. package/dist/es5/glsl-utils/get-shader-name.js.map +1 -1
  60. package/dist/es5/glsl-utils/get-shader-type-name.js.map +1 -1
  61. package/dist/es5/glsl-utils/get-shader-version.js.map +1 -1
  62. package/dist/es5/glsl-utils/index.js +11 -7
  63. package/dist/es5/glsl-utils/index.js.map +1 -1
  64. package/dist/es5/index.js +104 -104
  65. package/dist/es5/index.js.map +1 -1
  66. package/dist/es5/init.d.ts +1 -1
  67. package/dist/es5/init.js +4 -4
  68. package/dist/es5/init.js.map +1 -1
  69. package/dist/es5/utils/array-utils-flat.js +2 -2
  70. package/dist/es5/utils/array-utils-flat.js.map +1 -1
  71. package/dist/es5/utils/assert.js.map +1 -1
  72. package/dist/es5/utils/check-props.js.map +1 -1
  73. package/dist/es5/utils/format-value.js.map +1 -1
  74. package/dist/es5/utils/is-old-ie.js.map +1 -1
  75. package/dist/es5/utils/load-file.js +1 -1
  76. package/dist/es5/utils/load-file.js.map +1 -1
  77. package/dist/es5/utils/stub-methods.js.map +1 -1
  78. package/dist/es5/utils/utils.js +2 -2
  79. package/dist/es5/utils/utils.js.map +1 -1
  80. package/dist/es5/webgl-utils/attribute-utils.js +3 -3
  81. package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
  82. package/dist/es5/webgl-utils/constants-to-keys.js +1 -1
  83. package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
  84. package/dist/es5/webgl-utils/format-utils.js.map +1 -1
  85. package/dist/es5/webgl-utils/get-error.js +1 -1
  86. package/dist/es5/webgl-utils/get-error.js.map +1 -1
  87. package/dist/es5/webgl-utils/request-animation-frame.js +1 -1
  88. package/dist/es5/webgl-utils/request-animation-frame.js.map +1 -1
  89. package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
  90. package/dist/es5/webgl-utils/typed-array-utils.js +1 -1
  91. package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
  92. package/dist/esm/bundle.js.map +1 -1
  93. package/dist/esm/classes/accessor.js +12 -3
  94. package/dist/esm/classes/accessor.js.map +1 -1
  95. package/dist/esm/classes/buffer.js +41 -28
  96. package/dist/esm/classes/buffer.js.map +1 -1
  97. package/dist/esm/classes/clear.js +14 -12
  98. package/dist/esm/classes/clear.js.map +1 -1
  99. package/dist/esm/classes/copy-and-blit.js +27 -21
  100. package/dist/esm/classes/copy-and-blit.js.map +1 -1
  101. package/dist/esm/classes/framebuffer.js +89 -64
  102. package/dist/esm/classes/framebuffer.js.map +1 -1
  103. package/dist/esm/classes/program-configuration.js.map +1 -1
  104. package/dist/esm/classes/program.js +40 -32
  105. package/dist/esm/classes/program.js.map +1 -1
  106. package/dist/esm/classes/query.js +11 -6
  107. package/dist/esm/classes/query.js.map +1 -1
  108. package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
  109. package/dist/esm/classes/renderbuffer.js +25 -19
  110. package/dist/esm/classes/renderbuffer.js.map +1 -1
  111. package/dist/esm/classes/resource.js +34 -19
  112. package/dist/esm/classes/resource.js.map +1 -1
  113. package/dist/esm/classes/shader.js +13 -10
  114. package/dist/esm/classes/shader.js.map +1 -1
  115. package/dist/esm/classes/texture-2d.js +2 -1
  116. package/dist/esm/classes/texture-2d.js.map +1 -1
  117. package/dist/esm/classes/texture-3d.js +17 -14
  118. package/dist/esm/classes/texture-3d.js.map +1 -1
  119. package/dist/esm/classes/texture-cube.js +23 -19
  120. package/dist/esm/classes/texture-cube.js.map +1 -1
  121. package/dist/esm/classes/texture-formats.js.map +1 -1
  122. package/dist/esm/classes/texture.js +47 -35
  123. package/dist/esm/classes/texture.js.map +1 -1
  124. package/dist/esm/classes/transform-feedback.js +12 -6
  125. package/dist/esm/classes/transform-feedback.js.map +1 -1
  126. package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
  127. package/dist/esm/classes/uniforms.js +6 -6
  128. package/dist/esm/classes/uniforms.js.map +1 -1
  129. package/dist/esm/classes/vertex-array-object.js +17 -9
  130. package/dist/esm/classes/vertex-array-object.js.map +1 -1
  131. package/dist/esm/classes/vertex-array.js +17 -7
  132. package/dist/esm/classes/vertex-array.js.map +1 -1
  133. package/dist/esm/debug/debug-program-configuration.js +4 -4
  134. package/dist/esm/debug/debug-program-configuration.js.map +1 -1
  135. package/dist/esm/debug/debug-uniforms.js +16 -14
  136. package/dist/esm/debug/debug-uniforms.js.map +1 -1
  137. package/dist/esm/debug/debug-vertex-array.js +16 -14
  138. package/dist/esm/debug/debug-vertex-array.js.map +1 -1
  139. package/dist/esm/features/check-glsl-extension.js +3 -2
  140. package/dist/esm/features/check-glsl-extension.js.map +1 -1
  141. package/dist/esm/features/check-old-ie.js +2 -1
  142. package/dist/esm/features/check-old-ie.js.map +1 -1
  143. package/dist/esm/features/features.js +1 -1
  144. package/dist/esm/features/features.js.map +1 -1
  145. package/dist/esm/features/index.js.map +1 -1
  146. package/dist/esm/features/limits.js.map +1 -1
  147. package/dist/esm/features/webgl-features-table.js +1 -1
  148. package/dist/esm/features/webgl-features-table.js.map +1 -1
  149. package/dist/esm/features/webgl-limits-table.js.map +1 -1
  150. package/dist/esm/glsl-utils/format-glsl-error.js +9 -7
  151. package/dist/esm/glsl-utils/format-glsl-error.js.map +1 -1
  152. package/dist/esm/glsl-utils/get-shader-name.js +2 -1
  153. package/dist/esm/glsl-utils/get-shader-name.js.map +1 -1
  154. package/dist/esm/glsl-utils/get-shader-type-name.js.map +1 -1
  155. package/dist/esm/glsl-utils/get-shader-version.js.map +1 -1
  156. package/dist/esm/glsl-utils/index.js.map +1 -1
  157. package/dist/esm/index.js.map +1 -1
  158. package/dist/esm/init.d.ts +1 -1
  159. package/dist/esm/init.js +4 -4
  160. package/dist/esm/init.js.map +1 -1
  161. package/dist/esm/utils/array-utils-flat.js +7 -6
  162. package/dist/esm/utils/array-utils-flat.js.map +1 -1
  163. package/dist/esm/utils/assert.js.map +1 -1
  164. package/dist/esm/utils/check-props.js +4 -4
  165. package/dist/esm/utils/check-props.js.map +1 -1
  166. package/dist/esm/utils/format-value.js +4 -3
  167. package/dist/esm/utils/format-value.js.map +1 -1
  168. package/dist/esm/utils/is-old-ie.js +2 -1
  169. package/dist/esm/utils/is-old-ie.js.map +1 -1
  170. package/dist/esm/utils/load-file.js +3 -2
  171. package/dist/esm/utils/load-file.js.map +1 -1
  172. package/dist/esm/utils/stub-methods.js +2 -3
  173. package/dist/esm/utils/stub-methods.js.map +1 -1
  174. package/dist/esm/utils/utils.js +3 -2
  175. package/dist/esm/utils/utils.js.map +1 -1
  176. package/dist/esm/webgl-utils/attribute-utils.js +11 -8
  177. package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
  178. package/dist/esm/webgl-utils/constants-to-keys.js +3 -3
  179. package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
  180. package/dist/esm/webgl-utils/format-utils.js.map +1 -1
  181. package/dist/esm/webgl-utils/get-error.js +1 -1
  182. package/dist/esm/webgl-utils/get-error.js.map +1 -1
  183. package/dist/esm/webgl-utils/request-animation-frame.js.map +1 -1
  184. package/dist/esm/webgl-utils/texture-utils.js +1 -1
  185. package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
  186. package/dist/esm/webgl-utils/typed-array-utils.js +19 -15
  187. package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
  188. package/package.json +5 -5
  189. package/src/classes/framebuffer.js +1 -0
  190. package/src/classes/transform-feedback.js +1 -1
  191. package/src/classes/vertex-array-object.js +1 -1
  192. package/src/init.d.ts +1 -1
  193. package/src/init.js +1 -1
  194. package/src/webgl-utils/texture-utils.js +2 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/debug/debug-vertex-array.js"],"names":["getDebugTableForVertexArray","vertexArray","header","configuration","table","elements","ELEMENT_ARRAY_BUFFER","getDebugTableRow","attributes","values","attributeLocation","info","_getAttributeInfo","rowHeader","name","accessor","accessors","location","getGLSLDeclaration","attribute","gl","type","size","verts","bytes","isInteger","marker","value","String","replace","indexOf","Buffer","buffer","getDebugData","data","changed","byteLength","BYTES_PER_ELEMENT","format","instanced","divisor","length","constructor","typeAndName"],"mappings":"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","sourcesContent":["import Buffer from '../classes/buffer';\nimport {getKey} from '../webgl-utils/constants-to-keys';\nimport {getCompositeGLType} from '../webgl-utils/attribute-utils';\nimport {formatValue} from '../utils/format-value';\n\n// Creates object suitable as input for console.table\nexport function getDebugTableForVertexArray({vertexArray, header = 'Attributes'}) {\n if (!vertexArray.configuration) {\n return {};\n }\n\n const table = {}; // {[header]: {}};\n\n // Add index (elements) if available\n if (vertexArray.elements) {\n // const elements = Object.assign({size: 1}, vertexArray.elements);\n table.ELEMENT_ARRAY_BUFFER = getDebugTableRow(vertexArray, vertexArray.elements, null, header);\n }\n\n // Add used attributes\n const attributes = vertexArray.values;\n\n for (const attributeLocation in attributes) {\n const info = vertexArray._getAttributeInfo(attributeLocation);\n if (info) {\n let rowHeader = `${attributeLocation}: ${info.name}`;\n const accessor = vertexArray.accessors[info.location];\n if (accessor) {\n rowHeader = `${attributeLocation}: ${getGLSLDeclaration(info.name, accessor)}`;\n }\n table[rowHeader] = getDebugTableRow(\n vertexArray,\n attributes[attributeLocation],\n accessor,\n header\n );\n }\n }\n\n return table;\n}\n\n/* eslint-disable max-statements */\nfunction getDebugTableRow(vertexArray, attribute, accessor, header) {\n const {gl} = vertexArray;\n\n if (!attribute) {\n return {\n [header]: 'null',\n 'Format ': 'N/A'\n };\n }\n\n let type = 'NOT PROVIDED';\n let size = 1;\n let verts = 0;\n let bytes = 0;\n\n let isInteger;\n let marker;\n let value;\n\n if (accessor) {\n type = accessor.type;\n size = accessor.size;\n\n // Generate a type name by dropping Array from Float32Array etc.\n type = String(type).replace('Array', '');\n\n // Look for 'nt' to detect integer types, e.g. Int32Array, Uint32Array\n isInteger = type.indexOf('nt') !== -1;\n }\n\n if (attribute instanceof Buffer) {\n const buffer = attribute;\n\n const {data, changed} = buffer.getDebugData();\n marker = changed ? '*' : '';\n\n value = data;\n // @ts-ignore\n bytes = buffer.byteLength;\n // @ts-ignore\n verts = bytes / data.BYTES_PER_ELEMENT / size;\n\n let format;\n\n if (accessor) {\n const instanced = accessor.divisor > 0;\n format = `${instanced ? 'I ' : 'P '} ${verts} (x${size}=${bytes} bytes ${getKey(gl, type)})`;\n } else {\n // element buffer\n isInteger = true;\n format = `${bytes} bytes`;\n }\n\n return {\n [header]: `${marker}${formatValue(value, {size, isInteger})}`,\n 'Format ': format\n };\n }\n\n // CONSTANT VALUE\n value = attribute;\n size = attribute.length;\n // Generate a type name by dropping Array from Float32Array etc.\n type = String(attribute.constructor.name).replace('Array', '');\n // Look for 'nt' to detect integer types, e.g. Int32Array, Uint32Array\n isInteger = type.indexOf('nt') !== -1;\n\n return {\n [header]: `${formatValue(value, {size, isInteger})} (constant)`,\n 'Format ': `${size}x${type} (constant)`\n };\n}\n/* eslint-ensable max-statements */\n\nfunction getGLSLDeclaration(name, accessor) {\n const {type, size} = accessor;\n const typeAndName = getCompositeGLType(type, size);\n return typeAndName ? `${name} (${typeAndName.name})` : name;\n}\n"],"file":"debug-vertex-array.js"}
1
+ {"version":3,"file":"debug-vertex-array.js","names":["getDebugTableForVertexArray","vertexArray","header","configuration","table","elements","ELEMENT_ARRAY_BUFFER","getDebugTableRow","attributes","values","attributeLocation","info","_getAttributeInfo","rowHeader","name","accessor","accessors","location","getGLSLDeclaration","attribute","gl","type","size","verts","bytes","isInteger","marker","value","String","replace","indexOf","Buffer","buffer","getDebugData","data","changed","byteLength","BYTES_PER_ELEMENT","format","instanced","divisor","getKey","formatValue","length","constructor","typeAndName","getCompositeGLType"],"sources":["../../../src/debug/debug-vertex-array.js"],"sourcesContent":["import Buffer from '../classes/buffer';\nimport {getKey} from '../webgl-utils/constants-to-keys';\nimport {getCompositeGLType} from '../webgl-utils/attribute-utils';\nimport {formatValue} from '../utils/format-value';\n\n// Creates object suitable as input for console.table\nexport function getDebugTableForVertexArray({vertexArray, header = 'Attributes'}) {\n if (!vertexArray.configuration) {\n return {};\n }\n\n const table = {}; // {[header]: {}};\n\n // Add index (elements) if available\n if (vertexArray.elements) {\n // const elements = Object.assign({size: 1}, vertexArray.elements);\n table.ELEMENT_ARRAY_BUFFER = getDebugTableRow(vertexArray, vertexArray.elements, null, header);\n }\n\n // Add used attributes\n const attributes = vertexArray.values;\n\n for (const attributeLocation in attributes) {\n const info = vertexArray._getAttributeInfo(attributeLocation);\n if (info) {\n let rowHeader = `${attributeLocation}: ${info.name}`;\n const accessor = vertexArray.accessors[info.location];\n if (accessor) {\n rowHeader = `${attributeLocation}: ${getGLSLDeclaration(info.name, accessor)}`;\n }\n table[rowHeader] = getDebugTableRow(\n vertexArray,\n attributes[attributeLocation],\n accessor,\n header\n );\n }\n }\n\n return table;\n}\n\n/* eslint-disable max-statements */\nfunction getDebugTableRow(vertexArray, attribute, accessor, header) {\n const {gl} = vertexArray;\n\n if (!attribute) {\n return {\n [header]: 'null',\n 'Format ': 'N/A'\n };\n }\n\n let type = 'NOT PROVIDED';\n let size = 1;\n let verts = 0;\n let bytes = 0;\n\n let isInteger;\n let marker;\n let value;\n\n if (accessor) {\n type = accessor.type;\n size = accessor.size;\n\n // Generate a type name by dropping Array from Float32Array etc.\n type = String(type).replace('Array', '');\n\n // Look for 'nt' to detect integer types, e.g. Int32Array, Uint32Array\n isInteger = type.indexOf('nt') !== -1;\n }\n\n if (attribute instanceof Buffer) {\n const buffer = attribute;\n\n const {data, changed} = buffer.getDebugData();\n marker = changed ? '*' : '';\n\n value = data;\n // @ts-ignore\n bytes = buffer.byteLength;\n // @ts-ignore\n verts = bytes / data.BYTES_PER_ELEMENT / size;\n\n let format;\n\n if (accessor) {\n const instanced = accessor.divisor > 0;\n format = `${instanced ? 'I ' : 'P '} ${verts} (x${size}=${bytes} bytes ${getKey(gl, type)})`;\n } else {\n // element buffer\n isInteger = true;\n format = `${bytes} bytes`;\n }\n\n return {\n [header]: `${marker}${formatValue(value, {size, isInteger})}`,\n 'Format ': format\n };\n }\n\n // CONSTANT VALUE\n value = attribute;\n size = attribute.length;\n // Generate a type name by dropping Array from Float32Array etc.\n type = String(attribute.constructor.name).replace('Array', '');\n // Look for 'nt' to detect integer types, e.g. Int32Array, Uint32Array\n isInteger = type.indexOf('nt') !== -1;\n\n return {\n [header]: `${formatValue(value, {size, isInteger})} (constant)`,\n 'Format ': `${size}x${type} (constant)`\n };\n}\n/* eslint-ensable max-statements */\n\nfunction getGLSLDeclaration(name, accessor) {\n const {type, size} = accessor;\n const typeAndName = getCompositeGLType(type, size);\n return typeAndName ? `${name} (${typeAndName.name})` : name;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/features/check-glsl-extension.js"],"names":["compiledGlslExtensions","canCompileGLGSExtension","gl","cap","options","feature","WEBGL_FEATURES","extensionName","source","shader","createShader","shaderSource","compileShader","canCompile","getShaderParameter","deleteShader"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAMA,IAAMA,sBAAsB,GAAG,EAA/B;;AAGe,SAASC,uBAAT,CAAiCC,EAAjC,EAAqCC,GAArC,EAAwD;AAAA,MAAdC,OAAc,uEAAJ,EAAI;AACrE,MAAMC,OAAO,GAAGC,4BAAeH,GAAf,CAAhB;AACA,sBAAOE,OAAP,EAAgBF,GAAhB;;AAEA,MAAI,CAAC,yBAAQC,OAAR,CAAL,EAAuB;AACrB,WAAO,IAAP;AACD;;AAED,MAAID,GAAG,IAAIH,sBAAX,EAAmC;AACjC,WAAOA,sBAAsB,CAACG,GAAD,CAA7B;AACD;;AAED,MAAMI,aAAa,GAAGF,OAAO,CAAC,CAAD,CAA7B;AACA,MAAMG,MAAM,2BAAoBD,aAApB,kCAAZ;AAEA,MAAME,MAAM,GAAGP,EAAE,CAACQ,YAAH,OAAf;AACAR,EAAAA,EAAE,CAACS,YAAH,CAAgBF,MAAhB,EAAwBD,MAAxB;AACAN,EAAAA,EAAE,CAACU,aAAH,CAAiBH,MAAjB;AACA,MAAMI,UAAU,GAAGX,EAAE,CAACY,kBAAH,CAAsBL,MAAtB,QAAnB;AACAP,EAAAA,EAAE,CAACa,YAAH,CAAgBN,MAAhB;AACAT,EAAAA,sBAAsB,CAACG,GAAD,CAAtB,GAA8BU,UAA9B;AACA,SAAOA,UAAP;AACD","sourcesContent":["import isOldIE from './check-old-ie';\nimport WEBGL_FEATURES from './webgl-features-table';\nimport {assert} from '../utils/assert';\n\n// Enables feature detection in IE11 due to a bug where gl.getExtension may return true\n// but fail to compile when the extension is enabled in the shader. Specifically,\n// the OES_standard_derivatives extension fails to compile in IE11 even though its included\n// in the list of supported extensions.\nconst compiledGlslExtensions = {};\n\n// options allows user agent to be overridden for testing\nexport default function canCompileGLGSExtension(gl, cap, options = {}) {\n const feature = WEBGL_FEATURES[cap];\n assert(feature, cap);\n\n if (!isOldIE(options)) {\n return true;\n }\n\n if (cap in compiledGlslExtensions) {\n return compiledGlslExtensions[cap];\n }\n\n const extensionName = feature[0];\n const source = `#extension GL_${extensionName} : enable\\nvoid main(void) {}`;\n\n const shader = gl.createShader(gl.VERTEX_SHADER);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n const canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n gl.deleteShader(shader);\n compiledGlslExtensions[cap] = canCompile;\n return canCompile;\n}\n"],"file":"check-glsl-extension.js"}
1
+ {"version":3,"file":"check-glsl-extension.js","names":["compiledGlslExtensions","canCompileGLGSExtension","gl","cap","options","feature","WEBGL_FEATURES","assert","isOldIE","extensionName","source","shader","createShader","shaderSource","compileShader","canCompile","getShaderParameter","deleteShader"],"sources":["../../../src/features/check-glsl-extension.js"],"sourcesContent":["import isOldIE from './check-old-ie';\nimport WEBGL_FEATURES from './webgl-features-table';\nimport {assert} from '../utils/assert';\n\n// Enables feature detection in IE11 due to a bug where gl.getExtension may return true\n// but fail to compile when the extension is enabled in the shader. Specifically,\n// the OES_standard_derivatives extension fails to compile in IE11 even though its included\n// in the list of supported extensions.\nconst compiledGlslExtensions = {};\n\n// options allows user agent to be overridden for testing\nexport default function canCompileGLGSExtension(gl, cap, options = {}) {\n const feature = WEBGL_FEATURES[cap];\n assert(feature, cap);\n\n if (!isOldIE(options)) {\n return true;\n }\n\n if (cap in compiledGlslExtensions) {\n return compiledGlslExtensions[cap];\n }\n\n const extensionName = feature[0];\n const source = `#extension GL_${extensionName} : enable\\nvoid main(void) {}`;\n\n const shader = gl.createShader(gl.VERTEX_SHADER);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n const canCompile = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n gl.deleteShader(shader);\n compiledGlslExtensions[cap] = canCompile;\n return canCompile;\n}\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AAMA,IAAMA,sBAAsB,GAAG,EAA/B;;AAGe,SAASC,uBAAT,CAAiCC,EAAjC,EAAqCC,GAArC,EAAwD;EAAA,IAAdC,OAAc,uEAAJ,EAAI;EACrE,IAAMC,OAAO,GAAGC,2BAAA,CAAeH,GAAf,CAAhB;EACA,IAAAI,cAAA,EAAOF,OAAP,EAAgBF,GAAhB;;EAEA,IAAI,CAAC,IAAAK,mBAAA,EAAQJ,OAAR,CAAL,EAAuB;IACrB,OAAO,IAAP;EACD;;EAED,IAAID,GAAG,IAAIH,sBAAX,EAAmC;IACjC,OAAOA,sBAAsB,CAACG,GAAD,CAA7B;EACD;;EAED,IAAMM,aAAa,GAAGJ,OAAO,CAAC,CAAD,CAA7B;EACA,IAAMK,MAAM,2BAAoBD,aAApB,kCAAZ;EAEA,IAAME,MAAM,GAAGT,EAAE,CAACU,YAAH,OAAf;EACAV,EAAE,CAACW,YAAH,CAAgBF,MAAhB,EAAwBD,MAAxB;EACAR,EAAE,CAACY,aAAH,CAAiBH,MAAjB;EACA,IAAMI,UAAU,GAAGb,EAAE,CAACc,kBAAH,CAAsBL,MAAtB,QAAnB;EACAT,EAAE,CAACe,YAAH,CAAgBN,MAAhB;EACAX,sBAAsB,CAACG,GAAD,CAAtB,GAA8BY,UAA9B;EACA,OAAOA,UAAP;AACD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/features/check-old-ie.js"],"names":["isOldIE","opts","navigator","window","userAgent","isMSIE","indexOf","isTrident"],"mappings":";;;;;;;AACe,SAASA,OAAT,GAA4B;AAAA,MAAXC,IAAW,uEAAJ,EAAI;AACzC,MAAMC,SAAS,GAAI,OAAOC,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,CAACD,SAAzC,IAAuD,EAAzE;AAEA,MAAME,SAAS,GAAGH,IAAI,CAACG,SAAL,IAAkBF,SAAS,CAACE,SAA5B,IAAyC,EAA3D;AAGA,MAAMC,MAAM,GAAGD,SAAS,CAACE,OAAV,CAAkB,OAAlB,MAA+B,CAAC,CAA/C;AACA,MAAMC,SAAS,GAAGH,SAAS,CAACE,OAAV,CAAkB,UAAlB,MAAkC,CAAC,CAArD;AACA,SAAOD,MAAM,IAAIE,SAAjB;AACD","sourcesContent":["// opts allows user agent to be overridden for testing\nexport default function isOldIE(opts = {}) {\n const navigator = (typeof window !== 'undefined' && window.navigator) || {};\n // @ts-ignore\n const userAgent = opts.userAgent || navigator.userAgent || '';\n // We only care about older versions of IE (IE 11 and below). Newer versions of IE (Edge)\n // have much better web standards support.\n const isMSIE = userAgent.indexOf('MSIE ') !== -1;\n const isTrident = userAgent.indexOf('Trident/') !== -1;\n return isMSIE || isTrident;\n}\n"],"file":"check-old-ie.js"}
1
+ {"version":3,"file":"check-old-ie.js","names":["isOldIE","opts","navigator","window","userAgent","isMSIE","indexOf","isTrident"],"sources":["../../../src/features/check-old-ie.js"],"sourcesContent":["// opts allows user agent to be overridden for testing\nexport default function isOldIE(opts = {}) {\n const navigator = (typeof window !== 'undefined' && window.navigator) || {};\n // @ts-ignore\n const userAgent = opts.userAgent || navigator.userAgent || '';\n // We only care about older versions of IE (IE 11 and below). Newer versions of IE (Edge)\n // have much better web standards support.\n const isMSIE = userAgent.indexOf('MSIE ') !== -1;\n const isTrident = userAgent.indexOf('Trident/') !== -1;\n return isMSIE || isTrident;\n}\n"],"mappings":";;;;;;;AACe,SAASA,OAAT,GAA4B;EAAA,IAAXC,IAAW,uEAAJ,EAAI;EACzC,IAAMC,SAAS,GAAI,OAAOC,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,CAACD,SAAzC,IAAuD,EAAzE;EAEA,IAAME,SAAS,GAAGH,IAAI,CAACG,SAAL,IAAkBF,SAAS,CAACE,SAA5B,IAAyC,EAA3D;EAGA,IAAMC,MAAM,GAAGD,SAAS,CAACE,OAAV,CAAkB,OAAlB,MAA+B,CAAC,CAA/C;EACA,IAAMC,SAAS,GAAGH,SAAS,CAACE,OAAV,CAAkB,UAAlB,MAAkC,CAAC,CAArD;EACA,OAAOD,MAAM,IAAIE,SAAjB;AACD"}
@@ -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.getFeatures = getFeatures;
8
9
  exports.hasFeature = hasFeature;
9
10
  exports.hasFeatures = hasFeatures;
10
- exports.getFeatures = getFeatures;
11
11
 
12
12
  var _webglFeaturesTable = _interopRequireDefault(require("./webgl-features-table"));
13
13
 
@@ -15,7 +15,7 @@ var _gltools = require("@luma.gl/gltools");
15
15
 
16
16
  var _assert = require("../utils/assert");
17
17
 
18
- 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; } } }; }
18
+ 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; } } }; }
19
19
 
20
20
  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); }
21
21
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/features/features.js"],"names":["LOG_UNSUPPORTED_FEATURE","hasFeature","gl","feature","hasFeatures","features","Array","isArray","every","isFeatureSupported","getFeatures","luma","caps","cap","WEBGL_FEATURES","undefined","queryFeature","log","isSupported","featureDefinition","extension","Boolean","getExtension"],"mappings":"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","sourcesContent":["// Feature detection for WebGL\n//\n// Provides a function that enables simple checking of which WebGL features are\n// available in an WebGL1 or WebGL2 environment.\n\nimport WEBGL_FEATURES from './webgl-features-table';\nimport {isWebGL2, log} from '@luma.gl/gltools';\nimport {assert} from '../utils/assert';\n\nconst LOG_UNSUPPORTED_FEATURE = 2;\n\n// Check one feature\nexport function hasFeature(gl, feature) {\n return hasFeatures(gl, feature);\n}\n\n// Check one or more features\nexport function hasFeatures(gl, features) {\n features = Array.isArray(features) ? features : [features];\n return features.every(feature => {\n return isFeatureSupported(gl, feature);\n });\n}\n\n// Return a list of supported features\nexport function getFeatures(gl) {\n gl.luma = gl.luma || {};\n gl.luma.caps = gl.luma.caps || {};\n for (const cap in WEBGL_FEATURES) {\n if (gl.luma.caps[cap] === undefined) {\n gl.luma.caps[cap] = isFeatureSupported(gl, cap);\n }\n }\n return gl.luma.caps;\n}\n\n// TODO - cache the value\nfunction isFeatureSupported(gl, cap) {\n gl.luma = gl.luma || {};\n gl.luma.caps = gl.luma.caps || {};\n\n if (gl.luma.caps[cap] === undefined) {\n gl.luma.caps[cap] = queryFeature(gl, cap);\n }\n\n if (!gl.luma.caps[cap]) {\n log.log(LOG_UNSUPPORTED_FEATURE, `Feature: ${cap} not supported`)();\n }\n\n return gl.luma.caps[cap];\n}\n\nfunction queryFeature(gl, cap) {\n const feature = WEBGL_FEATURES[cap];\n assert(feature, cap);\n\n let isSupported;\n\n // Get extension name from table\n const featureDefinition = isWebGL2(gl) ? feature[1] || feature[0] : feature[0];\n\n // Check if the value is dependent on checking one or more extensions\n if (typeof featureDefinition === 'function') {\n isSupported = featureDefinition(gl);\n } else if (Array.isArray(featureDefinition)) {\n isSupported = true;\n for (const extension of featureDefinition) {\n isSupported = isSupported && Boolean(gl.getExtension(extension));\n }\n } else if (typeof featureDefinition === 'string') {\n isSupported = Boolean(gl.getExtension(featureDefinition));\n } else if (typeof featureDefinition === 'boolean') {\n isSupported = featureDefinition;\n } else {\n assert(false);\n }\n\n return isSupported;\n}\n"],"file":"features.js"}
1
+ {"version":3,"file":"features.js","names":["LOG_UNSUPPORTED_FEATURE","hasFeature","gl","feature","hasFeatures","features","Array","isArray","every","isFeatureSupported","getFeatures","luma","caps","cap","WEBGL_FEATURES","undefined","queryFeature","log","assert","isSupported","featureDefinition","isWebGL2","extension","Boolean","getExtension"],"sources":["../../../src/features/features.js"],"sourcesContent":["// Feature detection for WebGL\n//\n// Provides a function that enables simple checking of which WebGL features are\n// available in an WebGL1 or WebGL2 environment.\n\nimport WEBGL_FEATURES from './webgl-features-table';\nimport {isWebGL2, log} from '@luma.gl/gltools';\nimport {assert} from '../utils/assert';\n\nconst LOG_UNSUPPORTED_FEATURE = 2;\n\n// Check one feature\nexport function hasFeature(gl, feature) {\n return hasFeatures(gl, feature);\n}\n\n// Check one or more features\nexport function hasFeatures(gl, features) {\n features = Array.isArray(features) ? features : [features];\n return features.every(feature => {\n return isFeatureSupported(gl, feature);\n });\n}\n\n// Return a list of supported features\nexport function getFeatures(gl) {\n gl.luma = gl.luma || {};\n gl.luma.caps = gl.luma.caps || {};\n for (const cap in WEBGL_FEATURES) {\n if (gl.luma.caps[cap] === undefined) {\n gl.luma.caps[cap] = isFeatureSupported(gl, cap);\n }\n }\n return gl.luma.caps;\n}\n\n// TODO - cache the value\nfunction isFeatureSupported(gl, cap) {\n gl.luma = gl.luma || {};\n gl.luma.caps = gl.luma.caps || {};\n\n if (gl.luma.caps[cap] === undefined) {\n gl.luma.caps[cap] = queryFeature(gl, cap);\n }\n\n if (!gl.luma.caps[cap]) {\n log.log(LOG_UNSUPPORTED_FEATURE, `Feature: ${cap} not supported`)();\n }\n\n return gl.luma.caps[cap];\n}\n\nfunction queryFeature(gl, cap) {\n const feature = WEBGL_FEATURES[cap];\n assert(feature, cap);\n\n let isSupported;\n\n // Get extension name from table\n const featureDefinition = isWebGL2(gl) ? feature[1] || feature[0] : feature[0];\n\n // Check if the value is dependent on checking one or more extensions\n if (typeof featureDefinition === 'function') {\n isSupported = featureDefinition(gl);\n } else if (Array.isArray(featureDefinition)) {\n isSupported = true;\n for (const extension of featureDefinition) {\n isSupported = isSupported && Boolean(gl.getExtension(extension));\n }\n } else if (typeof featureDefinition === 'string') {\n isSupported = Boolean(gl.getExtension(featureDefinition));\n } else if (typeof featureDefinition === 'boolean') {\n isSupported = featureDefinition;\n } else {\n assert(false);\n }\n\n return isSupported;\n}\n"],"mappings":"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"}
@@ -5,52 +5,52 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- Object.defineProperty(exports, "getContextInfo", {
8
+ Object.defineProperty(exports, "FEATURES", {
9
9
  enumerable: true,
10
10
  get: function get() {
11
- return _limits.getContextInfo;
11
+ return _webglFeaturesTable.FEATURES;
12
12
  }
13
13
  });
14
- Object.defineProperty(exports, "getGLContextInfo", {
14
+ Object.defineProperty(exports, "canCompileGLGSExtension", {
15
15
  enumerable: true,
16
16
  get: function get() {
17
- return _limits.getGLContextInfo;
17
+ return _checkGlslExtension.default;
18
18
  }
19
19
  });
20
- Object.defineProperty(exports, "getContextLimits", {
20
+ Object.defineProperty(exports, "getContextInfo", {
21
21
  enumerable: true,
22
22
  get: function get() {
23
- return _limits.getContextLimits;
23
+ return _limits.getContextInfo;
24
24
  }
25
25
  });
26
- Object.defineProperty(exports, "FEATURES", {
26
+ Object.defineProperty(exports, "getContextLimits", {
27
27
  enumerable: true,
28
28
  get: function get() {
29
- return _webglFeaturesTable.FEATURES;
29
+ return _limits.getContextLimits;
30
30
  }
31
31
  });
32
- Object.defineProperty(exports, "hasFeature", {
32
+ Object.defineProperty(exports, "getFeatures", {
33
33
  enumerable: true,
34
34
  get: function get() {
35
- return _features.hasFeature;
35
+ return _features.getFeatures;
36
36
  }
37
37
  });
38
- Object.defineProperty(exports, "hasFeatures", {
38
+ Object.defineProperty(exports, "getGLContextInfo", {
39
39
  enumerable: true,
40
40
  get: function get() {
41
- return _features.hasFeatures;
41
+ return _limits.getGLContextInfo;
42
42
  }
43
43
  });
44
- Object.defineProperty(exports, "getFeatures", {
44
+ Object.defineProperty(exports, "hasFeature", {
45
45
  enumerable: true,
46
46
  get: function get() {
47
- return _features.getFeatures;
47
+ return _features.hasFeature;
48
48
  }
49
49
  });
50
- Object.defineProperty(exports, "canCompileGLGSExtension", {
50
+ Object.defineProperty(exports, "hasFeatures", {
51
51
  enumerable: true,
52
52
  get: function get() {
53
- return _checkGlslExtension.default;
53
+ return _features.hasFeatures;
54
54
  }
55
55
  });
56
56
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/features/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA","sourcesContent":["export {getContextInfo, getGLContextInfo, getContextLimits} from './limits';\nexport {FEATURES} from './webgl-features-table';\nexport {hasFeature, hasFeatures, getFeatures} from './features';\n\nexport {default as canCompileGLGSExtension} from './check-glsl-extension';\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/features/index.js"],"sourcesContent":["export {getContextInfo, getGLContextInfo, getContextLimits} from './limits';\nexport {FEATURES} from './webgl-features-table';\nexport {hasFeature, hasFeatures, getFeatures} from './features';\n\nexport {default as canCompileGLGSExtension} from './check-glsl-extension';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA"}
@@ -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.getContextInfo = getContextInfo;
8
9
  exports.getContextLimits = getContextLimits;
9
10
  exports.getGLContextInfo = getGLContextInfo;
10
- exports.getContextInfo = getContextInfo;
11
11
 
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
13
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/features/limits.js"],"names":["getContextLimits","gl","luma","limits","webgl1MinLimits","webgl2MinLimits","isWebgl2","parameter","WEBGL_LIMITS","limit","webgl1MinLimit","gl1","webgl2MinLimit","gl2","minLimit","limitNotAvailable","getExtension","extension","value","getParameter","getGLContextInfo","info","vendor","renderer","vendorMasked","rendererMasked","version","shadingLanguageVersion","getContextInfo","Object","assign"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;AAEO,SAASA,gBAAT,CAA0BC,EAA1B,EAA8B;AACnCA,EAAAA,EAAE,CAACC,IAAH,GAAUD,EAAE,CAACC,IAAH,IAAW,EAArB;;AAEA,MAAI,CAACD,EAAE,CAACC,IAAH,CAAQC,MAAb,EAAqB;AACnBF,IAAAA,EAAE,CAACC,IAAH,CAAQC,MAAR,GAAiB,EAAjB;AACAF,IAAAA,EAAE,CAACC,IAAH,CAAQE,eAAR,GAA0B,EAA1B;AACAH,IAAAA,EAAE,CAACC,IAAH,CAAQG,eAAR,GAA0B,EAA1B;AAEA,QAAMC,QAAQ,GAAG,uBAASL,EAAT,CAAjB;;AAGA,SAAK,IAAMM,SAAX,IAAwBC,yBAAxB,EAAsC;AACpC,UAAMC,KAAK,GAAGD,0BAAaD,SAAb,CAAd;AAEA,UAAMG,cAAc,GAAGD,KAAK,CAACE,GAA7B;AACA,UAAMC,cAAc,GAAG,SAASH,KAAT,GAAiBA,KAAK,CAACI,GAAvB,GAA6BJ,KAAK,CAACE,GAA1D;AACA,UAAMG,QAAQ,GAAGR,QAAQ,GAAGM,cAAH,GAAoBF,cAA7C;AAGA,UAAMK,iBAAiB,GACpB,SAASN,KAAT,IAAkB,CAACH,QAApB,IAEC,eAAeG,KAAf,IAAwB,CAACR,EAAE,CAACe,YAAH,CAAgBP,KAAK,CAACQ,SAAtB,CAH5B;AAKA,UAAMC,KAAK,GAAGH,iBAAiB,GAAGD,QAAH,GAAcb,EAAE,CAACkB,YAAH,CAAgBZ,SAAhB,CAA7C;AACAN,MAAAA,EAAE,CAACC,IAAH,CAAQC,MAAR,CAAeI,SAAf,IAA4BW,KAA5B;AACAjB,MAAAA,EAAE,CAACC,IAAH,CAAQE,eAAR,CAAwBG,SAAxB,IAAqCG,cAArC;AACAT,MAAAA,EAAE,CAACC,IAAH,CAAQG,eAAR,CAAwBE,SAAxB,IAAqCK,cAArC;AACD;AACF;;AAED,SAAOX,EAAE,CAACC,IAAH,CAAQC,MAAf;AACD;;AAEM,SAASiB,gBAAT,CAA0BnB,EAA1B,EAA8B;AACnCA,EAAAA,EAAE,CAACC,IAAH,GAAUD,EAAE,CAACC,IAAH,IAAW,EAArB;AAEA,MAAMmB,IAAI,GAAG,kCAAoBpB,EAApB,CAAb;;AACA,MAAI,CAACA,EAAE,CAACC,IAAH,CAAQmB,IAAb,EAAmB;AAAA;;AACjBpB,IAAAA,EAAE,CAACC,IAAH,CAAQmB,IAAR,4EAC8BA,IAAI,CAACC,MADnC,uDAEgCD,IAAI,CAACE,QAFrC,sDAGeF,IAAI,CAACG,YAHpB,sDAIiBH,IAAI,CAACI,cAJtB,sDAKgBJ,IAAI,CAACK,OALrB,uDAMiCL,IAAI,CAACM,sBANtC;AAQD;;AAED,SAAO1B,EAAE,CAACC,IAAH,CAAQmB,IAAf;AACD;;AAEM,SAASO,cAAT,CAAwB3B,EAAxB,EAA4B;AACjC,SAAO4B,MAAM,CAACC,MAAP,CAAc,kCAAoB7B,EAApB,CAAd,EAAuC;AAC5CE,IAAAA,MAAM,EAAEH,gBAAgB,CAACC,EAAD,CADoB;AAE5CoB,IAAAA,IAAI,EAAED,gBAAgB,CAACnB,EAAD,CAFsB;AAG5CG,IAAAA,eAAe,EAAEH,EAAE,CAACC,IAAH,CAAQE,eAHmB;AAI5CC,IAAAA,eAAe,EAAEJ,EAAE,CAACC,IAAH,CAAQG;AAJmB,GAAvC,CAAP;AAMD","sourcesContent":["import GL from '@luma.gl/constants';\n\nimport WEBGL_LIMITS from './webgl-limits-table';\nimport {isWebGL2, getContextDebugInfo} from '@luma.gl/gltools';\n\nexport function getContextLimits(gl) {\n gl.luma = gl.luma || {};\n\n if (!gl.luma.limits) {\n gl.luma.limits = {};\n gl.luma.webgl1MinLimits = {};\n gl.luma.webgl2MinLimits = {};\n\n const isWebgl2 = isWebGL2(gl);\n\n // WEBGL limits\n for (const parameter in WEBGL_LIMITS) {\n const limit = WEBGL_LIMITS[parameter];\n\n const webgl1MinLimit = limit.gl1;\n const webgl2MinLimit = 'gl2' in limit ? limit.gl2 : limit.gl1;\n const minLimit = isWebgl2 ? webgl2MinLimit : webgl1MinLimit;\n\n // Check if we can query for this limit\n const limitNotAvailable =\n ('gl2' in limit && !isWebgl2) ||\n // @ts-ignore\n ('extension' in limit && !gl.getExtension(limit.extension));\n\n const value = limitNotAvailable ? minLimit : gl.getParameter(parameter);\n gl.luma.limits[parameter] = value;\n gl.luma.webgl1MinLimits[parameter] = webgl1MinLimit;\n gl.luma.webgl2MinLimits[parameter] = webgl2MinLimit;\n }\n }\n\n return gl.luma.limits;\n}\n\nexport function getGLContextInfo(gl) {\n gl.luma = gl.luma || {};\n\n const info = getContextDebugInfo(gl);\n if (!gl.luma.info) {\n gl.luma.info = {\n [GL.UNMASKED_VENDOR_WEBGL]: info.vendor,\n [GL.UNMASKED_RENDERER_WEBGL]: info.renderer,\n [GL.VENDOR]: info.vendorMasked,\n [GL.RENDERER]: info.rendererMasked,\n [GL.VERSION]: info.version,\n [GL.SHADING_LANGUAGE_VERSION]: info.shadingLanguageVersion\n };\n }\n\n return gl.luma.info;\n}\n\nexport function getContextInfo(gl) {\n return Object.assign(getContextDebugInfo(gl), {\n limits: getContextLimits(gl),\n info: getGLContextInfo(gl),\n webgl1MinLimits: gl.luma.webgl1MinLimits,\n webgl2MinLimits: gl.luma.webgl2MinLimits\n });\n}\n"],"file":"limits.js"}
1
+ {"version":3,"file":"limits.js","names":["getContextLimits","gl","luma","limits","webgl1MinLimits","webgl2MinLimits","isWebgl2","isWebGL2","parameter","WEBGL_LIMITS","limit","webgl1MinLimit","gl1","webgl2MinLimit","gl2","minLimit","limitNotAvailable","getExtension","extension","value","getParameter","getGLContextInfo","info","getContextDebugInfo","vendor","renderer","vendorMasked","rendererMasked","version","shadingLanguageVersion","getContextInfo","Object","assign"],"sources":["../../../src/features/limits.js"],"sourcesContent":["import GL from '@luma.gl/constants';\n\nimport WEBGL_LIMITS from './webgl-limits-table';\nimport {isWebGL2, getContextDebugInfo} from '@luma.gl/gltools';\n\nexport function getContextLimits(gl) {\n gl.luma = gl.luma || {};\n\n if (!gl.luma.limits) {\n gl.luma.limits = {};\n gl.luma.webgl1MinLimits = {};\n gl.luma.webgl2MinLimits = {};\n\n const isWebgl2 = isWebGL2(gl);\n\n // WEBGL limits\n for (const parameter in WEBGL_LIMITS) {\n const limit = WEBGL_LIMITS[parameter];\n\n const webgl1MinLimit = limit.gl1;\n const webgl2MinLimit = 'gl2' in limit ? limit.gl2 : limit.gl1;\n const minLimit = isWebgl2 ? webgl2MinLimit : webgl1MinLimit;\n\n // Check if we can query for this limit\n const limitNotAvailable =\n ('gl2' in limit && !isWebgl2) ||\n // @ts-ignore\n ('extension' in limit && !gl.getExtension(limit.extension));\n\n const value = limitNotAvailable ? minLimit : gl.getParameter(parameter);\n gl.luma.limits[parameter] = value;\n gl.luma.webgl1MinLimits[parameter] = webgl1MinLimit;\n gl.luma.webgl2MinLimits[parameter] = webgl2MinLimit;\n }\n }\n\n return gl.luma.limits;\n}\n\nexport function getGLContextInfo(gl) {\n gl.luma = gl.luma || {};\n\n const info = getContextDebugInfo(gl);\n if (!gl.luma.info) {\n gl.luma.info = {\n [GL.UNMASKED_VENDOR_WEBGL]: info.vendor,\n [GL.UNMASKED_RENDERER_WEBGL]: info.renderer,\n [GL.VENDOR]: info.vendorMasked,\n [GL.RENDERER]: info.rendererMasked,\n [GL.VERSION]: info.version,\n [GL.SHADING_LANGUAGE_VERSION]: info.shadingLanguageVersion\n };\n }\n\n return gl.luma.info;\n}\n\nexport function getContextInfo(gl) {\n return Object.assign(getContextDebugInfo(gl), {\n limits: getContextLimits(gl),\n info: getGLContextInfo(gl),\n webgl1MinLimits: gl.luma.webgl1MinLimits,\n webgl2MinLimits: gl.luma.webgl2MinLimits\n });\n}\n"],"mappings":";;;;;;;;;;;;;AAEA;;AACA;;AAEO,SAASA,gBAAT,CAA0BC,EAA1B,EAA8B;EACnCA,EAAE,CAACC,IAAH,GAAUD,EAAE,CAACC,IAAH,IAAW,EAArB;;EAEA,IAAI,CAACD,EAAE,CAACC,IAAH,CAAQC,MAAb,EAAqB;IACnBF,EAAE,CAACC,IAAH,CAAQC,MAAR,GAAiB,EAAjB;IACAF,EAAE,CAACC,IAAH,CAAQE,eAAR,GAA0B,EAA1B;IACAH,EAAE,CAACC,IAAH,CAAQG,eAAR,GAA0B,EAA1B;IAEA,IAAMC,QAAQ,GAAG,IAAAC,iBAAA,EAASN,EAAT,CAAjB;;IAGA,KAAK,IAAMO,SAAX,IAAwBC,yBAAxB,EAAsC;MACpC,IAAMC,KAAK,GAAGD,yBAAA,CAAaD,SAAb,CAAd;MAEA,IAAMG,cAAc,GAAGD,KAAK,CAACE,GAA7B;MACA,IAAMC,cAAc,GAAG,SAASH,KAAT,GAAiBA,KAAK,CAACI,GAAvB,GAA6BJ,KAAK,CAACE,GAA1D;MACA,IAAMG,QAAQ,GAAGT,QAAQ,GAAGO,cAAH,GAAoBF,cAA7C;MAGA,IAAMK,iBAAiB,GACpB,SAASN,KAAT,IAAkB,CAACJ,QAApB,IAEC,eAAeI,KAAf,IAAwB,CAACT,EAAE,CAACgB,YAAH,CAAgBP,KAAK,CAACQ,SAAtB,CAH5B;MAKA,IAAMC,KAAK,GAAGH,iBAAiB,GAAGD,QAAH,GAAcd,EAAE,CAACmB,YAAH,CAAgBZ,SAAhB,CAA7C;MACAP,EAAE,CAACC,IAAH,CAAQC,MAAR,CAAeK,SAAf,IAA4BW,KAA5B;MACAlB,EAAE,CAACC,IAAH,CAAQE,eAAR,CAAwBI,SAAxB,IAAqCG,cAArC;MACAV,EAAE,CAACC,IAAH,CAAQG,eAAR,CAAwBG,SAAxB,IAAqCK,cAArC;IACD;EACF;;EAED,OAAOZ,EAAE,CAACC,IAAH,CAAQC,MAAf;AACD;;AAEM,SAASkB,gBAAT,CAA0BpB,EAA1B,EAA8B;EACnCA,EAAE,CAACC,IAAH,GAAUD,EAAE,CAACC,IAAH,IAAW,EAArB;EAEA,IAAMoB,IAAI,GAAG,IAAAC,4BAAA,EAAoBtB,EAApB,CAAb;;EACA,IAAI,CAACA,EAAE,CAACC,IAAH,CAAQoB,IAAb,EAAmB;IAAA;;IACjBrB,EAAE,CAACC,IAAH,CAAQoB,IAAR,4EAC8BA,IAAI,CAACE,MADnC,uDAEgCF,IAAI,CAACG,QAFrC,sDAGeH,IAAI,CAACI,YAHpB,sDAIiBJ,IAAI,CAACK,cAJtB,sDAKgBL,IAAI,CAACM,OALrB,uDAMiCN,IAAI,CAACO,sBANtC;EAQD;;EAED,OAAO5B,EAAE,CAACC,IAAH,CAAQoB,IAAf;AACD;;AAEM,SAASQ,cAAT,CAAwB7B,EAAxB,EAA4B;EACjC,OAAO8B,MAAM,CAACC,MAAP,CAAc,IAAAT,4BAAA,EAAoBtB,EAApB,CAAd,EAAuC;IAC5CE,MAAM,EAAEH,gBAAgB,CAACC,EAAD,CADoB;IAE5CqB,IAAI,EAAED,gBAAgB,CAACpB,EAAD,CAFsB;IAG5CG,eAAe,EAAEH,EAAE,CAACC,IAAH,CAAQE,eAHmB;IAI5CC,eAAe,EAAEJ,EAAE,CAACC,IAAH,CAAQG;EAJmB,CAAvC,CAAP;AAMD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/features/webgl-features-table.js"],"names":["FEATURES","WEBGL2","VERTEX_ARRAY_OBJECT","TIMER_QUERY","INSTANCED_RENDERING","MULTIPLE_RENDER_TARGETS","ELEMENT_INDEX_UINT32","BLEND_EQUATION_MINMAX","FLOAT_BLEND","COLOR_ENCODING_SRGB","TEXTURE_DEPTH","TEXTURE_FLOAT","TEXTURE_HALF_FLOAT","TEXTURE_FILTER_LINEAR_FLOAT","TEXTURE_FILTER_LINEAR_HALF_FLOAT","TEXTURE_FILTER_ANISOTROPIC","COLOR_ATTACHMENT_RGBA32F","COLOR_ATTACHMENT_FLOAT","COLOR_ATTACHMENT_HALF_FLOAT","GLSL_FRAG_DATA","GLSL_FRAG_DEPTH","GLSL_DERIVATIVES","GLSL_TEXTURE_LOD","checkFloat32ColorAttachment","gl","testTexture","Texture2D","format","type","dataFormat","testFb","Framebuffer","id","check","attachments","status","getStatus","delete"],"mappings":"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","sourcesContent":["import Framebuffer from '../classes/framebuffer';\nimport Texture2D from '../classes/texture-2d';\n// TODO - this should be the default export, test cases need updating\nexport const FEATURES = {\n WEBGL2: 'WEBGL2',\n\n // API SUPPORT\n VERTEX_ARRAY_OBJECT: 'VERTEX_ARRAY_OBJECT',\n TIMER_QUERY: 'TIMER_QUERY',\n INSTANCED_RENDERING: 'INSTANCED_RENDERING',\n MULTIPLE_RENDER_TARGETS: 'MULTIPLE_RENDER_TARGETS',\n\n // FEATURES\n ELEMENT_INDEX_UINT32: 'ELEMENT_INDEX_UINT32',\n\n // BLENDING\n BLEND_EQUATION_MINMAX: 'BLEND_EQUATION_MINMAX',\n FLOAT_BLEND: 'FLOAT_BLEND',\n\n // TEXTURES: '// TEXTURES', RENDERBUFFERS\n COLOR_ENCODING_SRGB: 'COLOR_ENCODING_SRGB',\n\n // TEXTURES\n TEXTURE_DEPTH: 'TEXTURE_DEPTH',\n TEXTURE_FLOAT: 'TEXTURE_FLOAT',\n TEXTURE_HALF_FLOAT: 'TEXTURE_HALF_FLOAT',\n\n TEXTURE_FILTER_LINEAR_FLOAT: 'TEXTURE_FILTER_LINEAR_FLOAT',\n TEXTURE_FILTER_LINEAR_HALF_FLOAT: 'TEXTURE_FILTER_LINEAR_HALF_FLOAT',\n TEXTURE_FILTER_ANISOTROPIC: 'TEXTURE_FILTER_ANISOTROPIC',\n\n // FRAMEBUFFERS: '// FRAMEBUFFERS', TEXTURES AND RENDERBUFFERS\n COLOR_ATTACHMENT_RGBA32F: 'COLOR_ATTACHMENT_RGBA32F',\n COLOR_ATTACHMENT_FLOAT: 'COLOR_ATTACHMENT_FLOAT',\n COLOR_ATTACHMENT_HALF_FLOAT: 'COLOR_ATTACHMENT_HALF_FLOAT',\n\n // GLSL extensions\n GLSL_FRAG_DATA: 'GLSL_FRAG_DATA',\n GLSL_FRAG_DEPTH: 'GLSL_FRAG_DEPTH',\n GLSL_DERIVATIVES: 'GLSL_DERIVATIVES',\n GLSL_TEXTURE_LOD: 'GLSL_TEXTURE_LOD'\n};\n\n// function to test if Float 32 bit format texture can be bound as color attachment\nfunction checkFloat32ColorAttachment(gl) {\n const testTexture = new Texture2D(gl, {\n format: gl.RGBA,\n type: gl.FLOAT,\n dataFormat: gl.RGBA\n });\n const testFb = new Framebuffer(gl, {\n id: `test-framebuffer`,\n check: false,\n attachments: {\n [gl.COLOR_ATTACHMENT0]: testTexture\n }\n });\n const status = testFb.getStatus();\n testTexture.delete();\n testFb.delete();\n return status === gl.FRAMEBUFFER_COMPLETE;\n}\n\n// Defines luma.gl \"feature\" names and semantics\n// Format: 'feature-name: [WebGL1 support, WebGL2 support] / [WebGL1 and WebGL2 support]', when support is 'string' it is the name of the extension\nexport default {\n [FEATURES.WEBGL2]: [false, true],\n\n // API SUPPORT\n [FEATURES.VERTEX_ARRAY_OBJECT]: ['OES_vertex_array_object', true],\n [FEATURES.TIMER_QUERY]: ['EXT_disjoint_timer_query', 'EXT_disjoint_timer_query_webgl2'],\n [FEATURES.INSTANCED_RENDERING]: ['ANGLE_instanced_arrays', true],\n [FEATURES.MULTIPLE_RENDER_TARGETS]: ['WEBGL_draw_buffers', true],\n\n // FEATURES\n [FEATURES.ELEMENT_INDEX_UINT32]: ['OES_element_index_uint', true],\n\n // BLENDING\n [FEATURES.BLEND_EQUATION_MINMAX]: ['EXT_blend_minmax', true],\n [FEATURES.FLOAT_BLEND]: ['EXT_float_blend'],\n\n // TEXTURES, RENDERBUFFERS\n [FEATURES.COLOR_ENCODING_SRGB]: ['EXT_sRGB', true],\n\n // TEXTURES\n [FEATURES.TEXTURE_DEPTH]: ['WEBGL_depth_texture', true],\n [FEATURES.TEXTURE_FLOAT]: ['OES_texture_float', true],\n [FEATURES.TEXTURE_HALF_FLOAT]: ['OES_texture_half_float', true],\n\n [FEATURES.TEXTURE_FILTER_LINEAR_FLOAT]: ['OES_texture_float_linear'],\n [FEATURES.TEXTURE_FILTER_LINEAR_HALF_FLOAT]: ['OES_texture_half_float_linear'],\n [FEATURES.TEXTURE_FILTER_ANISOTROPIC]: ['EXT_texture_filter_anisotropic'],\n\n // FRAMEBUFFERS, TEXTURES AND RENDERBUFFERS\n [FEATURES.COLOR_ATTACHMENT_RGBA32F]: [checkFloat32ColorAttachment, 'EXT_color_buffer_float'],\n [FEATURES.COLOR_ATTACHMENT_FLOAT]: [false, 'EXT_color_buffer_float'],\n [FEATURES.COLOR_ATTACHMENT_HALF_FLOAT]: ['EXT_color_buffer_half_float'],\n\n // GLSL extensions\n [FEATURES.GLSL_FRAG_DATA]: ['WEBGL_draw_buffers', true],\n [FEATURES.GLSL_FRAG_DEPTH]: ['EXT_frag_depth', true],\n [FEATURES.GLSL_DERIVATIVES]: ['OES_standard_derivatives', true],\n [FEATURES.GLSL_TEXTURE_LOD]: ['EXT_shader_texture_lod', true]\n};\n"],"file":"webgl-features-table.js"}
1
+ {"version":3,"file":"webgl-features-table.js","names":["FEATURES","WEBGL2","VERTEX_ARRAY_OBJECT","TIMER_QUERY","INSTANCED_RENDERING","MULTIPLE_RENDER_TARGETS","ELEMENT_INDEX_UINT32","BLEND_EQUATION_MINMAX","FLOAT_BLEND","COLOR_ENCODING_SRGB","TEXTURE_DEPTH","TEXTURE_FLOAT","TEXTURE_HALF_FLOAT","TEXTURE_FILTER_LINEAR_FLOAT","TEXTURE_FILTER_LINEAR_HALF_FLOAT","TEXTURE_FILTER_ANISOTROPIC","COLOR_ATTACHMENT_RGBA32F","COLOR_ATTACHMENT_FLOAT","COLOR_ATTACHMENT_HALF_FLOAT","GLSL_FRAG_DATA","GLSL_FRAG_DEPTH","GLSL_DERIVATIVES","GLSL_TEXTURE_LOD","checkFloat32ColorAttachment","gl","testTexture","Texture2D","format","type","dataFormat","testFb","Framebuffer","id","check","attachments","status","getStatus","delete"],"sources":["../../../src/features/webgl-features-table.js"],"sourcesContent":["import Framebuffer from '../classes/framebuffer';\nimport Texture2D from '../classes/texture-2d';\n// TODO - this should be the default export, test cases need updating\nexport const FEATURES = {\n WEBGL2: 'WEBGL2',\n\n // API SUPPORT\n VERTEX_ARRAY_OBJECT: 'VERTEX_ARRAY_OBJECT',\n TIMER_QUERY: 'TIMER_QUERY',\n INSTANCED_RENDERING: 'INSTANCED_RENDERING',\n MULTIPLE_RENDER_TARGETS: 'MULTIPLE_RENDER_TARGETS',\n\n // FEATURES\n ELEMENT_INDEX_UINT32: 'ELEMENT_INDEX_UINT32',\n\n // BLENDING\n BLEND_EQUATION_MINMAX: 'BLEND_EQUATION_MINMAX',\n FLOAT_BLEND: 'FLOAT_BLEND',\n\n // TEXTURES: '// TEXTURES', RENDERBUFFERS\n COLOR_ENCODING_SRGB: 'COLOR_ENCODING_SRGB',\n\n // TEXTURES\n TEXTURE_DEPTH: 'TEXTURE_DEPTH',\n TEXTURE_FLOAT: 'TEXTURE_FLOAT',\n TEXTURE_HALF_FLOAT: 'TEXTURE_HALF_FLOAT',\n\n TEXTURE_FILTER_LINEAR_FLOAT: 'TEXTURE_FILTER_LINEAR_FLOAT',\n TEXTURE_FILTER_LINEAR_HALF_FLOAT: 'TEXTURE_FILTER_LINEAR_HALF_FLOAT',\n TEXTURE_FILTER_ANISOTROPIC: 'TEXTURE_FILTER_ANISOTROPIC',\n\n // FRAMEBUFFERS: '// FRAMEBUFFERS', TEXTURES AND RENDERBUFFERS\n COLOR_ATTACHMENT_RGBA32F: 'COLOR_ATTACHMENT_RGBA32F',\n COLOR_ATTACHMENT_FLOAT: 'COLOR_ATTACHMENT_FLOAT',\n COLOR_ATTACHMENT_HALF_FLOAT: 'COLOR_ATTACHMENT_HALF_FLOAT',\n\n // GLSL extensions\n GLSL_FRAG_DATA: 'GLSL_FRAG_DATA',\n GLSL_FRAG_DEPTH: 'GLSL_FRAG_DEPTH',\n GLSL_DERIVATIVES: 'GLSL_DERIVATIVES',\n GLSL_TEXTURE_LOD: 'GLSL_TEXTURE_LOD'\n};\n\n// function to test if Float 32 bit format texture can be bound as color attachment\nfunction checkFloat32ColorAttachment(gl) {\n const testTexture = new Texture2D(gl, {\n format: gl.RGBA,\n type: gl.FLOAT,\n dataFormat: gl.RGBA\n });\n const testFb = new Framebuffer(gl, {\n id: `test-framebuffer`,\n check: false,\n attachments: {\n [gl.COLOR_ATTACHMENT0]: testTexture\n }\n });\n const status = testFb.getStatus();\n testTexture.delete();\n testFb.delete();\n return status === gl.FRAMEBUFFER_COMPLETE;\n}\n\n// Defines luma.gl \"feature\" names and semantics\n// Format: 'feature-name: [WebGL1 support, WebGL2 support] / [WebGL1 and WebGL2 support]', when support is 'string' it is the name of the extension\nexport default {\n [FEATURES.WEBGL2]: [false, true],\n\n // API SUPPORT\n [FEATURES.VERTEX_ARRAY_OBJECT]: ['OES_vertex_array_object', true],\n [FEATURES.TIMER_QUERY]: ['EXT_disjoint_timer_query', 'EXT_disjoint_timer_query_webgl2'],\n [FEATURES.INSTANCED_RENDERING]: ['ANGLE_instanced_arrays', true],\n [FEATURES.MULTIPLE_RENDER_TARGETS]: ['WEBGL_draw_buffers', true],\n\n // FEATURES\n [FEATURES.ELEMENT_INDEX_UINT32]: ['OES_element_index_uint', true],\n\n // BLENDING\n [FEATURES.BLEND_EQUATION_MINMAX]: ['EXT_blend_minmax', true],\n [FEATURES.FLOAT_BLEND]: ['EXT_float_blend'],\n\n // TEXTURES, RENDERBUFFERS\n [FEATURES.COLOR_ENCODING_SRGB]: ['EXT_sRGB', true],\n\n // TEXTURES\n [FEATURES.TEXTURE_DEPTH]: ['WEBGL_depth_texture', true],\n [FEATURES.TEXTURE_FLOAT]: ['OES_texture_float', true],\n [FEATURES.TEXTURE_HALF_FLOAT]: ['OES_texture_half_float', true],\n\n [FEATURES.TEXTURE_FILTER_LINEAR_FLOAT]: ['OES_texture_float_linear'],\n [FEATURES.TEXTURE_FILTER_LINEAR_HALF_FLOAT]: ['OES_texture_half_float_linear'],\n [FEATURES.TEXTURE_FILTER_ANISOTROPIC]: ['EXT_texture_filter_anisotropic'],\n\n // FRAMEBUFFERS, TEXTURES AND RENDERBUFFERS\n [FEATURES.COLOR_ATTACHMENT_RGBA32F]: [checkFloat32ColorAttachment, 'EXT_color_buffer_float'],\n [FEATURES.COLOR_ATTACHMENT_FLOAT]: [false, 'EXT_color_buffer_float'],\n [FEATURES.COLOR_ATTACHMENT_HALF_FLOAT]: ['EXT_color_buffer_half_float'],\n\n // GLSL extensions\n [FEATURES.GLSL_FRAG_DATA]: ['WEBGL_draw_buffers', true],\n [FEATURES.GLSL_FRAG_DEPTH]: ['EXT_frag_depth', true],\n [FEATURES.GLSL_DERIVATIVES]: ['OES_standard_derivatives', true],\n [FEATURES.GLSL_TEXTURE_LOD]: ['EXT_shader_texture_lod', true]\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/features/webgl-limits-table.js"],"names":["gl1","Float32Array","gl2","Int32Array","negative"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\n\nexport default {\n [GL.ALIASED_LINE_WIDTH_RANGE]: {gl1: new Float32Array([1, 1])},\n [GL.ALIASED_POINT_SIZE_RANGE]: {gl1: new Float32Array([1, 1])},\n [GL.MAX_TEXTURE_SIZE]: {gl1: 64, gl2: 2048}, // GLint\n [GL.MAX_CUBE_MAP_TEXTURE_SIZE]: {gl1: 16}, // GLint\n [GL.MAX_TEXTURE_IMAGE_UNITS]: {gl1: 8}, // GLint\n [GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS]: {gl1: 8}, // GLint\n [GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS]: {gl1: 0}, // GLint\n [GL.MAX_RENDERBUFFER_SIZE]: {gl1: 1}, // GLint\n [GL.MAX_VARYING_VECTORS]: {gl1: 8}, // GLint\n [GL.MAX_VERTEX_ATTRIBS]: {gl1: 8}, // GLint\n [GL.MAX_VERTEX_UNIFORM_VECTORS]: {gl1: 128}, // GLint\n [GL.MAX_FRAGMENT_UNIFORM_VECTORS]: {gl1: 16}, // GLint\n [GL.MAX_VIEWPORT_DIMS]: {gl1: new Int32Array([0, 0])},\n\n // Extensions\n // [GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT]: {gl1: 1.0, extension: 'EXT_texture_filter_anisotropic'},\n\n // WebGL2 Limits\n [GL.MAX_3D_TEXTURE_SIZE]: {gl1: 0, gl2: 256}, // GLint\n [GL.MAX_ARRAY_TEXTURE_LAYERS]: {gl1: 0, gl2: 256}, // GLint\n [GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]: {gl1: 0, gl2: 0}, // GLint64\n [GL.MAX_COLOR_ATTACHMENTS]: {gl1: 0, gl2: 4}, // GLint\n [GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint64\n [GL.MAX_COMBINED_UNIFORM_BLOCKS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint64\n [GL.MAX_DRAW_BUFFERS]: {gl1: 0, gl2: 4}, // GLint\n [GL.MAX_ELEMENT_INDEX]: {gl1: 0, gl2: 0}, // GLint64\n [GL.MAX_ELEMENTS_INDICES]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_ELEMENTS_VERTICES]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_FRAGMENT_INPUT_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_FRAGMENT_UNIFORM_BLOCKS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_FRAGMENT_UNIFORM_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_SAMPLES]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_SERVER_WAIT_TIMEOUT]: {gl1: 0, gl2: 0}, // GLint64\n [GL.MAX_TEXTURE_LOD_BIAS]: {gl1: 0, gl2: 0}, // GLfloat\n [GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_UNIFORM_BLOCK_SIZE]: {gl1: 0, gl2: 0}, // GLint64\n [GL.MAX_UNIFORM_BUFFER_BINDINGS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_VARYING_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_VERTEX_OUTPUT_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_VERTEX_UNIFORM_BLOCKS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_VERTEX_UNIFORM_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MIN_PROGRAM_TEXEL_OFFSET]: {gl1: 0, gl2: -8, negative: true}, // GLint\n [GL.MAX_PROGRAM_TEXEL_OFFSET]: {gl1: 0, gl2: 7}, // GLint\n [GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT]: {gl1: 0, gl2: 0} // GLint\n};\n"],"file":"webgl-limits-table.js"}
1
+ {"version":3,"file":"webgl-limits-table.js","names":["gl1","Float32Array","gl2","Int32Array","negative"],"sources":["../../../src/features/webgl-limits-table.js"],"sourcesContent":["import GL from '@luma.gl/constants';\n\nexport default {\n [GL.ALIASED_LINE_WIDTH_RANGE]: {gl1: new Float32Array([1, 1])},\n [GL.ALIASED_POINT_SIZE_RANGE]: {gl1: new Float32Array([1, 1])},\n [GL.MAX_TEXTURE_SIZE]: {gl1: 64, gl2: 2048}, // GLint\n [GL.MAX_CUBE_MAP_TEXTURE_SIZE]: {gl1: 16}, // GLint\n [GL.MAX_TEXTURE_IMAGE_UNITS]: {gl1: 8}, // GLint\n [GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS]: {gl1: 8}, // GLint\n [GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS]: {gl1: 0}, // GLint\n [GL.MAX_RENDERBUFFER_SIZE]: {gl1: 1}, // GLint\n [GL.MAX_VARYING_VECTORS]: {gl1: 8}, // GLint\n [GL.MAX_VERTEX_ATTRIBS]: {gl1: 8}, // GLint\n [GL.MAX_VERTEX_UNIFORM_VECTORS]: {gl1: 128}, // GLint\n [GL.MAX_FRAGMENT_UNIFORM_VECTORS]: {gl1: 16}, // GLint\n [GL.MAX_VIEWPORT_DIMS]: {gl1: new Int32Array([0, 0])},\n\n // Extensions\n // [GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT]: {gl1: 1.0, extension: 'EXT_texture_filter_anisotropic'},\n\n // WebGL2 Limits\n [GL.MAX_3D_TEXTURE_SIZE]: {gl1: 0, gl2: 256}, // GLint\n [GL.MAX_ARRAY_TEXTURE_LAYERS]: {gl1: 0, gl2: 256}, // GLint\n [GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]: {gl1: 0, gl2: 0}, // GLint64\n [GL.MAX_COLOR_ATTACHMENTS]: {gl1: 0, gl2: 4}, // GLint\n [GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint64\n [GL.MAX_COMBINED_UNIFORM_BLOCKS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint64\n [GL.MAX_DRAW_BUFFERS]: {gl1: 0, gl2: 4}, // GLint\n [GL.MAX_ELEMENT_INDEX]: {gl1: 0, gl2: 0}, // GLint64\n [GL.MAX_ELEMENTS_INDICES]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_ELEMENTS_VERTICES]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_FRAGMENT_INPUT_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_FRAGMENT_UNIFORM_BLOCKS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_FRAGMENT_UNIFORM_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_SAMPLES]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_SERVER_WAIT_TIMEOUT]: {gl1: 0, gl2: 0}, // GLint64\n [GL.MAX_TEXTURE_LOD_BIAS]: {gl1: 0, gl2: 0}, // GLfloat\n [GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_UNIFORM_BLOCK_SIZE]: {gl1: 0, gl2: 0}, // GLint64\n [GL.MAX_UNIFORM_BUFFER_BINDINGS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_VARYING_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_VERTEX_OUTPUT_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_VERTEX_UNIFORM_BLOCKS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MAX_VERTEX_UNIFORM_COMPONENTS]: {gl1: 0, gl2: 0}, // GLint\n [GL.MIN_PROGRAM_TEXEL_OFFSET]: {gl1: 0, gl2: -8, negative: true}, // GLint\n [GL.MAX_PROGRAM_TEXEL_OFFSET]: {gl1: 0, gl2: 7}, // GLint\n [GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT]: {gl1: 0, gl2: 0} // GLint\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/glsl-utils/format-glsl-error.js"],"names":["formatGLSLCompilerError","errLog","src","shaderType","parseGLSLCompilerError","shaderName","errors","warnings","errorStrings","split","name","shaderDescription","i","length","errorString","segments","type","line","parseInt","isNaN","Error","lines","addLineNumbers","formatErrors","message","error","column","err","substring","join","trim","padLeft","string","start","delim","maxDigits","String","map","lineNumber","digits","prefix","result"],"mappings":"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","sourcesContent":["// TODO - formatGLSLCompilerError should not depend on this\nimport getShaderName from './get-shader-name';\nimport getShaderTypeName from './get-shader-type-name';\n\n// Formats GLSL compiler error log into single string\nexport default function formatGLSLCompilerError(errLog, src, shaderType) {\n const {shaderName, errors, warnings} = parseGLSLCompilerError(errLog, src, shaderType);\n return `GLSL compilation error in ${shaderName}\\n\\n${errors}\\n${warnings}`;\n}\n\n/**\n * Parse a GLSL compiler error log into a string showing the source code around each error.\n * Based on https://github.com/wwwtyro/gl-format-compiler-error (public domain)\n */\n/* eslint-disable no-continue, max-statements */\nexport function parseGLSLCompilerError(errLog, src, shaderType, shaderName) {\n const errorStrings = errLog.split(/\\r?\\n/);\n const errors = {};\n const warnings = {};\n\n // Patch the shader name\n const name = shaderName || getShaderName(src) || '(unnamed)';\n const shaderDescription = `${getShaderTypeName(shaderType)} shader ${name}`;\n\n // Parse the error - note: browser and driver dependent\n for (let i = 0; i < errorStrings.length; i++) {\n const errorString = errorStrings[i];\n if (errorString.length <= 1) {\n continue;\n }\n const segments = errorString.split(':');\n const type = segments[0];\n const line = parseInt(segments[2], 10);\n if (isNaN(line)) {\n throw new Error(`GLSL compilation error in ${shaderDescription}: ${errLog}`);\n }\n if (type !== 'WARNING') {\n errors[line] = errorString;\n } else {\n warnings[line] = errorString;\n }\n }\n\n // Format the error inline with the code\n const lines = addLineNumbers(src);\n\n return {\n shaderName: shaderDescription,\n errors: formatErrors(errors, lines),\n warnings: formatErrors(warnings, lines)\n };\n}\n\n// helper function, outputs annotated errors or warnings\nfunction formatErrors(errors, lines) {\n let message = '';\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n if (!errors[i + 3] && !errors[i + 2] && !errors[i + 1]) {\n continue;\n }\n message += `${line}\\n`;\n if (errors[i + 1]) {\n const error = errors[i + 1];\n const segments = error.split(':', 3);\n const type = segments[0];\n const column = parseInt(segments[1], 10) || 0;\n const err = error.substring(segments.join(':').length + 1).trim();\n message += padLeft(`^^^ ${type}: ${err}\\n\\n`, column);\n }\n }\n return message;\n}\n\n/**\n * Prepends line numbers to each line of a string.\n * The line numbers will be left-padded with spaces to ensure an\n * aligned layout when rendered using monospace fonts.\n * @param {String} string - multi-line string to add line numbers to\n * @param {Number} start=1 - number of spaces to add\n * @param {String} delim =': ' - injected between line number and original line\n * @return {String[]} strings - array of string, one per line, with line numbers added\n */\nfunction addLineNumbers(string, start = 1, delim = ': ') {\n const lines = string.split(/\\r?\\n/);\n const maxDigits = String(lines.length + start - 1).length;\n return lines.map((line, i) => {\n const lineNumber = String(i + start);\n const digits = lineNumber.length;\n const prefix = padLeft(lineNumber, maxDigits - digits);\n return prefix + delim + line;\n });\n}\n\n/**\n * Pads a string with a number of spaces (space characters) to the left\n * @param {String} string - string to pad\n * @param {Number} digits - number of spaces to add\n * @return {String} string - The padded string\n */\nfunction padLeft(string, digits) {\n let result = '';\n for (let i = 0; i < digits; ++i) {\n result += ' ';\n }\n return `${result}${string}`;\n}\n"],"file":"format-glsl-error.js"}
1
+ {"version":3,"file":"format-glsl-error.js","names":["formatGLSLCompilerError","errLog","src","shaderType","parseGLSLCompilerError","shaderName","errors","warnings","errorStrings","split","name","getShaderName","shaderDescription","getShaderTypeName","i","length","errorString","segments","type","line","parseInt","isNaN","Error","lines","addLineNumbers","formatErrors","message","error","column","err","substring","join","trim","padLeft","string","start","delim","maxDigits","String","map","lineNumber","digits","prefix","result"],"sources":["../../../src/glsl-utils/format-glsl-error.js"],"sourcesContent":["// TODO - formatGLSLCompilerError should not depend on this\nimport getShaderName from './get-shader-name';\nimport getShaderTypeName from './get-shader-type-name';\n\n// Formats GLSL compiler error log into single string\nexport default function formatGLSLCompilerError(errLog, src, shaderType) {\n const {shaderName, errors, warnings} = parseGLSLCompilerError(errLog, src, shaderType);\n return `GLSL compilation error in ${shaderName}\\n\\n${errors}\\n${warnings}`;\n}\n\n/**\n * Parse a GLSL compiler error log into a string showing the source code around each error.\n * Based on https://github.com/wwwtyro/gl-format-compiler-error (public domain)\n */\n/* eslint-disable no-continue, max-statements */\nexport function parseGLSLCompilerError(errLog, src, shaderType, shaderName) {\n const errorStrings = errLog.split(/\\r?\\n/);\n const errors = {};\n const warnings = {};\n\n // Patch the shader name\n const name = shaderName || getShaderName(src) || '(unnamed)';\n const shaderDescription = `${getShaderTypeName(shaderType)} shader ${name}`;\n\n // Parse the error - note: browser and driver dependent\n for (let i = 0; i < errorStrings.length; i++) {\n const errorString = errorStrings[i];\n if (errorString.length <= 1) {\n continue;\n }\n const segments = errorString.split(':');\n const type = segments[0];\n const line = parseInt(segments[2], 10);\n if (isNaN(line)) {\n throw new Error(`GLSL compilation error in ${shaderDescription}: ${errLog}`);\n }\n if (type !== 'WARNING') {\n errors[line] = errorString;\n } else {\n warnings[line] = errorString;\n }\n }\n\n // Format the error inline with the code\n const lines = addLineNumbers(src);\n\n return {\n shaderName: shaderDescription,\n errors: formatErrors(errors, lines),\n warnings: formatErrors(warnings, lines)\n };\n}\n\n// helper function, outputs annotated errors or warnings\nfunction formatErrors(errors, lines) {\n let message = '';\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n if (!errors[i + 3] && !errors[i + 2] && !errors[i + 1]) {\n continue;\n }\n message += `${line}\\n`;\n if (errors[i + 1]) {\n const error = errors[i + 1];\n const segments = error.split(':', 3);\n const type = segments[0];\n const column = parseInt(segments[1], 10) || 0;\n const err = error.substring(segments.join(':').length + 1).trim();\n message += padLeft(`^^^ ${type}: ${err}\\n\\n`, column);\n }\n }\n return message;\n}\n\n/**\n * Prepends line numbers to each line of a string.\n * The line numbers will be left-padded with spaces to ensure an\n * aligned layout when rendered using monospace fonts.\n * @param {String} string - multi-line string to add line numbers to\n * @param {Number} start=1 - number of spaces to add\n * @param {String} delim =': ' - injected between line number and original line\n * @return {String[]} strings - array of string, one per line, with line numbers added\n */\nfunction addLineNumbers(string, start = 1, delim = ': ') {\n const lines = string.split(/\\r?\\n/);\n const maxDigits = String(lines.length + start - 1).length;\n return lines.map((line, i) => {\n const lineNumber = String(i + start);\n const digits = lineNumber.length;\n const prefix = padLeft(lineNumber, maxDigits - digits);\n return prefix + delim + line;\n });\n}\n\n/**\n * Pads a string with a number of spaces (space characters) to the left\n * @param {String} string - string to pad\n * @param {Number} digits - number of spaces to add\n * @return {String} string - The padded string\n */\nfunction padLeft(string, digits) {\n let result = '';\n for (let i = 0; i < digits; ++i) {\n result += ' ';\n }\n return `${result}${string}`;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/glsl-utils/get-shader-name.js"],"names":["getShaderName","shader","defaultName","SHADER_NAME_REGEXP","match"],"mappings":";;;;;;;AAEe,SAASA,aAAT,CAAuBC,MAAvB,EAAwD;AAAA,MAAzBC,WAAyB,uEAAX,SAAW;AACrE,MAAMC,kBAAkB,GAAG,mDAA3B;AACA,MAAMC,KAAK,GAAGH,MAAM,CAACG,KAAP,CAAaD,kBAAb,CAAd;AACA,SAAOC,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAR,GAAcF,WAA1B;AACD","sourcesContent":["// Supports GLSLIFY style naming of shaders\n// #define SHADER_NAME ...\nexport default function getShaderName(shader, defaultName = 'unnamed') {\n const SHADER_NAME_REGEXP = /#define[\\s*]SHADER_NAME[\\s*]([A-Za-z0-9_-]+)[\\s*]/;\n const match = shader.match(SHADER_NAME_REGEXP);\n return match ? match[1] : defaultName;\n}\n"],"file":"get-shader-name.js"}
1
+ {"version":3,"file":"get-shader-name.js","names":["getShaderName","shader","defaultName","SHADER_NAME_REGEXP","match"],"sources":["../../../src/glsl-utils/get-shader-name.js"],"sourcesContent":["// Supports GLSLIFY style naming of shaders\n// #define SHADER_NAME ...\nexport default function getShaderName(shader, defaultName = 'unnamed') {\n const SHADER_NAME_REGEXP = /#define[\\s*]SHADER_NAME[\\s*]([A-Za-z0-9_-]+)[\\s*]/;\n const match = shader.match(SHADER_NAME_REGEXP);\n return match ? match[1] : defaultName;\n}\n"],"mappings":";;;;;;;AAEe,SAASA,aAAT,CAAuBC,MAAvB,EAAwD;EAAA,IAAzBC,WAAyB,uEAAX,SAAW;EACrE,IAAMC,kBAAkB,GAAG,mDAA3B;EACA,IAAMC,KAAK,GAAGH,MAAM,CAACG,KAAP,CAAaD,kBAAb,CAAd;EACA,OAAOC,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAR,GAAcF,WAA1B;AACD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/glsl-utils/get-shader-type-name.js"],"names":["GL_FRAGMENT_SHADER","GL_VERTEX_SHADER","getShaderTypeName","type"],"mappings":";;;;;;AAAA,IAAMA,kBAAkB,GAAG,MAA3B;AACA,IAAMC,gBAAgB,GAAG,MAAzB;;AAEe,SAASC,iBAAT,CAA2BC,IAA3B,EAAiC;AAC9C,UAAQA,IAAR;AACE,SAAKH,kBAAL;AACE,aAAO,UAAP;;AACF,SAAKC,gBAAL;AACE,aAAO,QAAP;;AACF;AACE,aAAO,cAAP;AANJ;AAQD","sourcesContent":["const GL_FRAGMENT_SHADER = 0x8b30;\nconst GL_VERTEX_SHADER = 0x8b31;\n\nexport default function getShaderTypeName(type) {\n switch (type) {\n case GL_FRAGMENT_SHADER:\n return 'fragment';\n case GL_VERTEX_SHADER:\n return 'vertex';\n default:\n return 'unknown type';\n }\n}\n"],"file":"get-shader-type-name.js"}
1
+ {"version":3,"file":"get-shader-type-name.js","names":["GL_FRAGMENT_SHADER","GL_VERTEX_SHADER","getShaderTypeName","type"],"sources":["../../../src/glsl-utils/get-shader-type-name.js"],"sourcesContent":["const GL_FRAGMENT_SHADER = 0x8b30;\nconst GL_VERTEX_SHADER = 0x8b31;\n\nexport default function getShaderTypeName(type) {\n switch (type) {\n case GL_FRAGMENT_SHADER:\n return 'fragment';\n case GL_VERTEX_SHADER:\n return 'vertex';\n default:\n return 'unknown type';\n }\n}\n"],"mappings":";;;;;;AAAA,IAAMA,kBAAkB,GAAG,MAA3B;AACA,IAAMC,gBAAgB,GAAG,MAAzB;;AAEe,SAASC,iBAAT,CAA2BC,IAA3B,EAAiC;EAC9C,QAAQA,IAAR;IACE,KAAKH,kBAAL;MACE,OAAO,UAAP;;IACF,KAAKC,gBAAL;MACE,OAAO,QAAP;;IACF;MACE,OAAO,cAAP;EANJ;AAQD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/glsl-utils/get-shader-version.js"],"names":["getShaderVersion","source","version","words","match","length","v","parseInt","Number","isFinite"],"mappings":";;;;;;;AACe,SAASA,gBAAT,CAA0BC,MAA1B,EAAkC;AAC/C,MAAIC,OAAO,GAAG,GAAd;AACA,MAAMC,KAAK,GAAGF,MAAM,CAACG,KAAP,CAAa,SAAb,CAAd;;AACA,MAAID,KAAK,CAACE,MAAN,IAAgB,CAAhB,IAAqBF,KAAK,CAAC,CAAD,CAAL,KAAa,UAAtC,EAAkD;AAChD,QAAMG,CAAC,GAAGC,QAAQ,CAACJ,KAAK,CAAC,CAAD,CAAN,EAAW,EAAX,CAAlB;;AACA,QAAIK,MAAM,CAACC,QAAP,CAAgBH,CAAhB,CAAJ,EAAwB;AACtBJ,MAAAA,OAAO,GAAGI,CAAV;AACD;AACF;;AACD,SAAOJ,OAAP;AACD","sourcesContent":["// returns GLSL shader version of given shader string\nexport default function getShaderVersion(source) {\n let version = 100;\n const words = source.match(/[^\\s]+/g);\n if (words.length >= 2 && words[0] === '#version') {\n const v = parseInt(words[1], 10);\n if (Number.isFinite(v)) {\n version = v;\n }\n }\n return version;\n}\n"],"file":"get-shader-version.js"}
1
+ {"version":3,"file":"get-shader-version.js","names":["getShaderVersion","source","version","words","match","length","v","parseInt","Number","isFinite"],"sources":["../../../src/glsl-utils/get-shader-version.js"],"sourcesContent":["// returns GLSL shader version of given shader string\nexport default function getShaderVersion(source) {\n let version = 100;\n const words = source.match(/[^\\s]+/g);\n if (words.length >= 2 && words[0] === '#version') {\n const v = parseInt(words[1], 10);\n if (Number.isFinite(v)) {\n version = v;\n }\n }\n return version;\n}\n"],"mappings":";;;;;;;AACe,SAASA,gBAAT,CAA0BC,MAA1B,EAAkC;EAC/C,IAAIC,OAAO,GAAG,GAAd;EACA,IAAMC,KAAK,GAAGF,MAAM,CAACG,KAAP,CAAa,SAAb,CAAd;;EACA,IAAID,KAAK,CAACE,MAAN,IAAgB,CAAhB,IAAqBF,KAAK,CAAC,CAAD,CAAL,KAAa,UAAtC,EAAkD;IAChD,IAAMG,CAAC,GAAGC,QAAQ,CAACJ,KAAK,CAAC,CAAD,CAAN,EAAW,EAAX,CAAlB;;IACA,IAAIK,MAAM,CAACC,QAAP,CAAgBH,CAAhB,CAAJ,EAAwB;MACtBJ,OAAO,GAAGI,CAAV;IACD;EACF;;EACD,OAAOJ,OAAP;AACD"}
@@ -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
@@ -13,16 +13,16 @@ Object.defineProperty(exports, "formatGLSLCompilerError", {
13
13
  return _formatGlslError.default;
14
14
  }
15
15
  });
16
- Object.defineProperty(exports, "parseGLSLCompilerError", {
16
+ Object.defineProperty(exports, "getShaderName", {
17
17
  enumerable: true,
18
18
  get: function get() {
19
- return _formatGlslError.parseGLSLCompilerError;
19
+ return _getShaderName.default;
20
20
  }
21
21
  });
22
- Object.defineProperty(exports, "getShaderName", {
22
+ Object.defineProperty(exports, "getShaderTypeName", {
23
23
  enumerable: true,
24
24
  get: function get() {
25
- return _getShaderName.default;
25
+ return _getShaderTypeName.default;
26
26
  }
27
27
  });
28
28
  Object.defineProperty(exports, "getShaderVersion", {
@@ -31,10 +31,10 @@ Object.defineProperty(exports, "getShaderVersion", {
31
31
  return _getShaderVersion.default;
32
32
  }
33
33
  });
34
- Object.defineProperty(exports, "getShaderTypeName", {
34
+ Object.defineProperty(exports, "parseGLSLCompilerError", {
35
35
  enumerable: true,
36
36
  get: function get() {
37
- return _getShaderTypeName.default;
37
+ return _formatGlslError.parseGLSLCompilerError;
38
38
  }
39
39
  });
40
40
 
@@ -45,4 +45,8 @@ var _getShaderName = _interopRequireDefault(require("./get-shader-name"));
45
45
  var _getShaderVersion = _interopRequireDefault(require("./get-shader-version"));
46
46
 
47
47
  var _getShaderTypeName = _interopRequireDefault(require("./get-shader-type-name"));
48
+
49
+ 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); }
50
+
51
+ 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; }
48
52
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/glsl-utils/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAGA;;AACA;;AAEA","sourcesContent":["// PARSE SHADER ERRORS\nexport {default as formatGLSLCompilerError, parseGLSLCompilerError} from './format-glsl-error';\n\n// PARSE SHADER SOURCE\nexport {default as getShaderName} from './get-shader-name';\nexport {default as getShaderVersion} from './get-shader-version';\n\nexport {default as getShaderTypeName} from './get-shader-type-name';\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/glsl-utils/index.js"],"sourcesContent":["// PARSE SHADER ERRORS\nexport {default as formatGLSLCompilerError, parseGLSLCompilerError} from './format-glsl-error';\n\n// PARSE SHADER SOURCE\nexport {default as getShaderName} from './get-shader-name';\nexport {default as getShaderVersion} from './get-shader-version';\n\nexport {default as getShaderTypeName} from './get-shader-type-name';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AAGA;;AACA;;AAEA"}