@luma.gl/webgl 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 (152) hide show
  1. package/dist/dist.js +692 -816
  2. package/dist/dist.min.js +1 -1
  3. package/dist/es5/classes/accessor.js +31 -33
  4. package/dist/es5/classes/accessor.js.map +1 -1
  5. package/dist/es5/classes/buffer.js +24 -26
  6. package/dist/es5/classes/buffer.js.map +1 -1
  7. package/dist/es5/classes/clear.js.map +1 -1
  8. package/dist/es5/classes/copy-and-blit.js +3 -3
  9. package/dist/es5/classes/copy-and-blit.js.map +1 -1
  10. package/dist/es5/classes/framebuffer.js +70 -72
  11. package/dist/es5/classes/framebuffer.js.map +1 -1
  12. package/dist/es5/classes/program-configuration.js.map +1 -1
  13. package/dist/es5/classes/program.js +11 -13
  14. package/dist/es5/classes/program.js.map +1 -1
  15. package/dist/es5/classes/query.js +47 -49
  16. package/dist/es5/classes/query.js.map +1 -1
  17. package/dist/es5/classes/renderbuffer.js +37 -39
  18. package/dist/es5/classes/renderbuffer.js.map +1 -1
  19. package/dist/es5/classes/resource.js +29 -32
  20. package/dist/es5/classes/resource.js.map +1 -1
  21. package/dist/es5/classes/shader.js +38 -44
  22. package/dist/es5/classes/shader.js.map +1 -1
  23. package/dist/es5/classes/texture-2d.js +16 -17
  24. package/dist/es5/classes/texture-2d.js.map +1 -1
  25. package/dist/es5/classes/texture-3d.js +15 -17
  26. package/dist/es5/classes/texture-3d.js.map +1 -1
  27. package/dist/es5/classes/texture-cube.js +10 -12
  28. package/dist/es5/classes/texture-cube.js.map +1 -1
  29. package/dist/es5/classes/texture-formats.js +1 -1
  30. package/dist/es5/classes/texture.js +24 -26
  31. package/dist/es5/classes/texture.js.map +1 -1
  32. package/dist/es5/classes/transform-feedback.js +16 -22
  33. package/dist/es5/classes/transform-feedback.js.map +1 -1
  34. package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
  35. package/dist/es5/classes/uniforms.js +2 -2
  36. package/dist/es5/classes/vertex-array-object.js +69 -71
  37. package/dist/es5/classes/vertex-array-object.js.map +1 -1
  38. package/dist/es5/classes/vertex-array.js.map +1 -1
  39. package/dist/es5/debug/debug-program-configuration.js +1 -1
  40. package/dist/es5/debug/debug-program-configuration.js.map +1 -1
  41. package/dist/es5/debug/debug-uniforms.js +1 -1
  42. package/dist/es5/debug/debug-vertex-array.js.map +1 -1
  43. package/dist/es5/features/features.js +2 -2
  44. package/dist/es5/features/index.js +16 -16
  45. package/dist/es5/features/limits.js +1 -1
  46. package/dist/es5/glsl-utils/format-glsl-error.js.map +1 -1
  47. package/dist/es5/glsl-utils/index.js +11 -7
  48. package/dist/es5/index.js +104 -104
  49. package/dist/es5/init.d.ts +1 -1
  50. package/dist/es5/init.js +4 -4
  51. package/dist/es5/init.js.map +1 -1
  52. package/dist/es5/utils/array-utils-flat.js +2 -2
  53. package/dist/es5/utils/check-props.js.map +1 -1
  54. package/dist/es5/utils/format-value.js.map +1 -1
  55. package/dist/es5/utils/load-file.js +1 -1
  56. package/dist/es5/utils/utils.js +2 -2
  57. package/dist/es5/webgl-utils/attribute-utils.js +3 -3
  58. package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
  59. package/dist/es5/webgl-utils/constants-to-keys.js +1 -1
  60. package/dist/es5/webgl-utils/get-error.js +1 -1
  61. package/dist/es5/webgl-utils/request-animation-frame.js +1 -1
  62. package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
  63. package/dist/es5/webgl-utils/typed-array-utils.js +1 -1
  64. package/dist/esm/classes/accessor.js +12 -3
  65. package/dist/esm/classes/accessor.js.map +1 -1
  66. package/dist/esm/classes/buffer.js +41 -28
  67. package/dist/esm/classes/buffer.js.map +1 -1
  68. package/dist/esm/classes/clear.js +14 -12
  69. package/dist/esm/classes/clear.js.map +1 -1
  70. package/dist/esm/classes/copy-and-blit.js +27 -21
  71. package/dist/esm/classes/copy-and-blit.js.map +1 -1
  72. package/dist/esm/classes/framebuffer.js +89 -64
  73. package/dist/esm/classes/framebuffer.js.map +1 -1
  74. package/dist/esm/classes/program.js +40 -32
  75. package/dist/esm/classes/program.js.map +1 -1
  76. package/dist/esm/classes/query.js +11 -6
  77. package/dist/esm/classes/query.js.map +1 -1
  78. package/dist/esm/classes/renderbuffer.js +25 -19
  79. package/dist/esm/classes/renderbuffer.js.map +1 -1
  80. package/dist/esm/classes/resource.js +39 -28
  81. package/dist/esm/classes/resource.js.map +1 -1
  82. package/dist/esm/classes/shader.js +13 -10
  83. package/dist/esm/classes/shader.js.map +1 -1
  84. package/dist/esm/classes/texture-2d.js +2 -1
  85. package/dist/esm/classes/texture-2d.js.map +1 -1
  86. package/dist/esm/classes/texture-3d.js +17 -14
  87. package/dist/esm/classes/texture-3d.js.map +1 -1
  88. package/dist/esm/classes/texture-cube.js +23 -19
  89. package/dist/esm/classes/texture-cube.js.map +1 -1
  90. package/dist/esm/classes/texture.js +47 -35
  91. package/dist/esm/classes/texture.js.map +1 -1
  92. package/dist/esm/classes/transform-feedback.js +12 -6
  93. package/dist/esm/classes/transform-feedback.js.map +1 -1
  94. package/dist/esm/classes/uniforms.js +6 -6
  95. package/dist/esm/classes/uniforms.js.map +1 -1
  96. package/dist/esm/classes/vertex-array-object.js +17 -9
  97. package/dist/esm/classes/vertex-array-object.js.map +1 -1
  98. package/dist/esm/classes/vertex-array.js +17 -7
  99. package/dist/esm/classes/vertex-array.js.map +1 -1
  100. package/dist/esm/debug/debug-program-configuration.js +4 -4
  101. package/dist/esm/debug/debug-program-configuration.js.map +1 -1
  102. package/dist/esm/debug/debug-uniforms.js +16 -14
  103. package/dist/esm/debug/debug-uniforms.js.map +1 -1
  104. package/dist/esm/debug/debug-vertex-array.js +16 -14
  105. package/dist/esm/debug/debug-vertex-array.js.map +1 -1
  106. package/dist/esm/features/check-glsl-extension.js +3 -2
  107. package/dist/esm/features/check-glsl-extension.js.map +1 -1
  108. package/dist/esm/features/check-old-ie.js +2 -1
  109. package/dist/esm/features/check-old-ie.js.map +1 -1
  110. package/dist/esm/features/features.js +1 -1
  111. package/dist/esm/features/features.js.map +1 -1
  112. package/dist/esm/features/webgl-features-table.js +1 -1
  113. package/dist/esm/features/webgl-features-table.js.map +1 -1
  114. package/dist/esm/glsl-utils/format-glsl-error.js +9 -7
  115. package/dist/esm/glsl-utils/format-glsl-error.js.map +1 -1
  116. package/dist/esm/glsl-utils/get-shader-name.js +2 -1
  117. package/dist/esm/glsl-utils/get-shader-name.js.map +1 -1
  118. package/dist/esm/init.d.ts +1 -1
  119. package/dist/esm/init.js +4 -4
  120. package/dist/esm/init.js.map +1 -1
  121. package/dist/esm/utils/array-utils-flat.js +7 -6
  122. package/dist/esm/utils/array-utils-flat.js.map +1 -1
  123. package/dist/esm/utils/check-props.js +4 -4
  124. package/dist/esm/utils/check-props.js.map +1 -1
  125. package/dist/esm/utils/format-value.js +4 -3
  126. package/dist/esm/utils/format-value.js.map +1 -1
  127. package/dist/esm/utils/is-old-ie.js +2 -1
  128. package/dist/esm/utils/is-old-ie.js.map +1 -1
  129. package/dist/esm/utils/load-file.js +3 -2
  130. package/dist/esm/utils/load-file.js.map +1 -1
  131. package/dist/esm/utils/stub-methods.js +2 -3
  132. package/dist/esm/utils/stub-methods.js.map +1 -1
  133. package/dist/esm/utils/utils.js +3 -2
  134. package/dist/esm/utils/utils.js.map +1 -1
  135. package/dist/esm/webgl-utils/attribute-utils.js +11 -8
  136. package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
  137. package/dist/esm/webgl-utils/constants-to-keys.js +3 -3
  138. package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
  139. package/dist/esm/webgl-utils/get-error.js +1 -1
  140. package/dist/esm/webgl-utils/get-error.js.map +1 -1
  141. package/dist/esm/webgl-utils/texture-utils.js +1 -1
  142. package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
  143. package/dist/esm/webgl-utils/typed-array-utils.js +19 -15
  144. package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
  145. package/package.json +5 -5
  146. package/src/classes/framebuffer.js +1 -0
  147. package/src/classes/resource.js +11 -19
  148. package/src/classes/transform-feedback.js +1 -1
  149. package/src/classes/vertex-array-object.js +1 -1
  150. package/src/init.d.ts +1 -1
  151. package/src/init.js +1 -1
  152. package/src/webgl-utils/texture-utils.js +2 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/webgl-utils/attribute-utils.js"],"names":["assert","GL_BYTE","GL_UNSIGNED_BYTE","GL_SHORT","GL_UNSIGNED_SHORT","GL_POINTS","GL_LINES","GL_LINE_LOOP","GL_LINE_STRIP","GL_TRIANGLES","GL_TRIANGLE_STRIP","GL_TRIANGLE_FAN","GL_FLOAT","GL_FLOAT_VEC2","GL_FLOAT_VEC3","GL_FLOAT_VEC4","GL_INT","GL_INT_VEC2","GL_INT_VEC3","GL_INT_VEC4","GL_UNSIGNED_INT","GL_UNSIGNED_INT_VEC2","GL_UNSIGNED_INT_VEC3","GL_UNSIGNED_INT_VEC4","GL_BOOL","GL_BOOL_VEC2","GL_BOOL_VEC3","GL_BOOL_VEC4","GL_FLOAT_MAT2","GL_FLOAT_MAT3","GL_FLOAT_MAT4","GL_FLOAT_MAT2x3","GL_FLOAT_MAT2x4","GL_FLOAT_MAT3x2","GL_FLOAT_MAT3x4","GL_FLOAT_MAT4x2","GL_FLOAT_MAT4x3","COMPOSITE_GL_TYPES","getPrimitiveDrawMode","drawMode","getPrimitiveCount","vertexCount","getVertexCount","primitiveCount","decomposeCompositeGLType","compositeGLType","typeAndSize","type","components","getCompositeGLType","glType","compType","compComponents","name"],"mappings":"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","sourcesContent":["/* eslint-disable camelcase */\nimport {assert} from '../utils/assert';\n\nconst GL_BYTE = 0x1400;\nconst GL_UNSIGNED_BYTE = 0x1401;\nconst GL_SHORT = 0x1402;\nconst GL_UNSIGNED_SHORT = 0x1403;\n\nconst GL_POINTS = 0x0;\nconst GL_LINES = 0x1;\nconst GL_LINE_LOOP = 0x2;\nconst GL_LINE_STRIP = 0x3;\nconst GL_TRIANGLES = 0x4;\nconst GL_TRIANGLE_STRIP = 0x5;\nconst GL_TRIANGLE_FAN = 0x6;\n\n// Local constants - these will \"collapse\" during minification\nconst GL_FLOAT = 0x1406;\nconst GL_FLOAT_VEC2 = 0x8b50;\nconst GL_FLOAT_VEC3 = 0x8b51;\nconst GL_FLOAT_VEC4 = 0x8b52;\n\nconst GL_INT = 0x1404;\nconst GL_INT_VEC2 = 0x8b53;\nconst GL_INT_VEC3 = 0x8b54;\nconst GL_INT_VEC4 = 0x8b55;\n\nconst GL_UNSIGNED_INT = 0x1405;\nconst GL_UNSIGNED_INT_VEC2 = 0x8dc6;\nconst GL_UNSIGNED_INT_VEC3 = 0x8dc7;\nconst GL_UNSIGNED_INT_VEC4 = 0x8dc8;\n\nconst GL_BOOL = 0x8b56;\nconst GL_BOOL_VEC2 = 0x8b57;\nconst GL_BOOL_VEC3 = 0x8b58;\nconst GL_BOOL_VEC4 = 0x8b59;\n\nconst GL_FLOAT_MAT2 = 0x8b5a;\nconst GL_FLOAT_MAT3 = 0x8b5b;\nconst GL_FLOAT_MAT4 = 0x8b5c;\n\nconst GL_FLOAT_MAT2x3 = 0x8b65;\nconst GL_FLOAT_MAT2x4 = 0x8b66;\nconst GL_FLOAT_MAT3x2 = 0x8b67;\nconst GL_FLOAT_MAT3x4 = 0x8b68;\nconst GL_FLOAT_MAT4x2 = 0x8b69;\nconst GL_FLOAT_MAT4x3 = 0x8b6a;\n\n// Composite types table\nconst COMPOSITE_GL_TYPES = {\n [GL_FLOAT]: [GL_FLOAT, 1, 'float'],\n [GL_FLOAT_VEC2]: [GL_FLOAT, 2, 'vec2'],\n [GL_FLOAT_VEC3]: [GL_FLOAT, 3, 'vec3'],\n [GL_FLOAT_VEC4]: [GL_FLOAT, 4, 'vec4'],\n\n [GL_INT]: [GL_INT, 1, 'int'],\n [GL_INT_VEC2]: [GL_INT, 2, 'ivec2'],\n [GL_INT_VEC3]: [GL_INT, 3, 'ivec3'],\n [GL_INT_VEC4]: [GL_INT, 4, 'ivec4'],\n\n [GL_UNSIGNED_INT]: [GL_UNSIGNED_INT, 1, 'uint'],\n [GL_UNSIGNED_INT_VEC2]: [GL_UNSIGNED_INT, 2, 'uvec2'],\n [GL_UNSIGNED_INT_VEC3]: [GL_UNSIGNED_INT, 3, 'uvec3'],\n [GL_UNSIGNED_INT_VEC4]: [GL_UNSIGNED_INT, 4, 'uvec4'],\n\n [GL_BOOL]: [GL_FLOAT, 1, 'bool'],\n [GL_BOOL_VEC2]: [GL_FLOAT, 2, 'bvec2'],\n [GL_BOOL_VEC3]: [GL_FLOAT, 3, 'bvec3'],\n [GL_BOOL_VEC4]: [GL_FLOAT, 4, 'bvec4'],\n\n [GL_FLOAT_MAT2]: [GL_FLOAT, 8, 'mat2'], // 4\n [GL_FLOAT_MAT2x3]: [GL_FLOAT, 8, 'mat2x3'], // 6\n [GL_FLOAT_MAT2x4]: [GL_FLOAT, 8, 'mat2x4'], // 8\n\n [GL_FLOAT_MAT3]: [GL_FLOAT, 12, 'mat3'], // 9\n [GL_FLOAT_MAT3x2]: [GL_FLOAT, 12, 'mat3x2'], // 6\n [GL_FLOAT_MAT3x4]: [GL_FLOAT, 12, 'mat3x4'], // 12\n\n [GL_FLOAT_MAT4]: [GL_FLOAT, 16, 'mat4'], // 16\n [GL_FLOAT_MAT4x2]: [GL_FLOAT, 16, 'mat4x2'], // 8\n [GL_FLOAT_MAT4x3]: [GL_FLOAT, 16, 'mat4x3'] // 12\n};\n\n// Counts the number of complete primitives given a number of vertices and a drawMode\nexport function getPrimitiveDrawMode(drawMode) {\n switch (drawMode) {\n case GL_POINTS:\n return GL_POINTS;\n case GL_LINES:\n return GL_LINES;\n case GL_LINE_STRIP:\n return GL_LINES;\n case GL_LINE_LOOP:\n return GL_LINES;\n case GL_TRIANGLES:\n return GL_TRIANGLES;\n case GL_TRIANGLE_STRIP:\n return GL_TRIANGLES;\n case GL_TRIANGLE_FAN:\n return GL_TRIANGLES;\n default:\n assert(false);\n return 0;\n }\n}\n\n// Counts the number of complete \"primitives\" given a number of vertices and a drawMode\nexport function getPrimitiveCount({drawMode, vertexCount}) {\n switch (drawMode) {\n case GL_POINTS:\n case GL_LINE_LOOP:\n return vertexCount;\n case GL_LINES:\n return vertexCount / 2;\n case GL_LINE_STRIP:\n return vertexCount - 1;\n case GL_TRIANGLES:\n return vertexCount / 3;\n case GL_TRIANGLE_STRIP:\n case GL_TRIANGLE_FAN:\n return vertexCount - 2;\n default:\n assert(false);\n return 0;\n }\n}\n\n// Counts the number of vertices after splitting the vertex stream into separate \"primitives\"\nexport function getVertexCount({drawMode, vertexCount}) {\n const primitiveCount = getPrimitiveCount({drawMode, vertexCount});\n switch (getPrimitiveDrawMode(drawMode)) {\n case GL_POINTS:\n return primitiveCount;\n case GL_LINES:\n return primitiveCount * 2;\n case GL_TRIANGLES:\n return primitiveCount * 3;\n default:\n assert(false);\n return 0;\n }\n}\n\n// Decomposes a composite type GL.VEC3 into a basic type (GL.FLOAT) and components (3)\nexport function decomposeCompositeGLType(compositeGLType) {\n const typeAndSize = COMPOSITE_GL_TYPES[compositeGLType];\n if (!typeAndSize) {\n return null;\n }\n const [type, components] = typeAndSize;\n return {type, components};\n}\n\nexport function getCompositeGLType(type, components) {\n switch (type) {\n case GL_BYTE:\n case GL_UNSIGNED_BYTE:\n case GL_SHORT:\n case GL_UNSIGNED_SHORT:\n type = GL_FLOAT;\n break;\n default:\n }\n\n for (const glType in COMPOSITE_GL_TYPES) {\n const [compType, compComponents, name] = COMPOSITE_GL_TYPES[glType];\n if (compType === type && compComponents === components) {\n return {glType, name};\n }\n }\n return null;\n}\n"],"file":"attribute-utils.js"}
1
+ {"version":3,"sources":["../../../src/webgl-utils/attribute-utils.js"],"names":["assert","GL_BYTE","GL_UNSIGNED_BYTE","GL_SHORT","GL_UNSIGNED_SHORT","GL_POINTS","GL_LINES","GL_LINE_LOOP","GL_LINE_STRIP","GL_TRIANGLES","GL_TRIANGLE_STRIP","GL_TRIANGLE_FAN","GL_FLOAT","GL_FLOAT_VEC2","GL_FLOAT_VEC3","GL_FLOAT_VEC4","GL_INT","GL_INT_VEC2","GL_INT_VEC3","GL_INT_VEC4","GL_UNSIGNED_INT","GL_UNSIGNED_INT_VEC2","GL_UNSIGNED_INT_VEC3","GL_UNSIGNED_INT_VEC4","GL_BOOL","GL_BOOL_VEC2","GL_BOOL_VEC3","GL_BOOL_VEC4","GL_FLOAT_MAT2","GL_FLOAT_MAT3","GL_FLOAT_MAT4","GL_FLOAT_MAT2x3","GL_FLOAT_MAT2x4","GL_FLOAT_MAT3x2","GL_FLOAT_MAT3x4","GL_FLOAT_MAT4x2","GL_FLOAT_MAT4x3","COMPOSITE_GL_TYPES","getPrimitiveDrawMode","drawMode","getPrimitiveCount","vertexCount","getVertexCount","primitiveCount","decomposeCompositeGLType","compositeGLType","typeAndSize","type","components","getCompositeGLType","glType","compType","compComponents","name"],"mappings":"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","sourcesContent":["/* eslint-disable camelcase */\nimport {assert} from '../utils/assert';\n\nconst GL_BYTE = 0x1400;\nconst GL_UNSIGNED_BYTE = 0x1401;\nconst GL_SHORT = 0x1402;\nconst GL_UNSIGNED_SHORT = 0x1403;\n\nconst GL_POINTS = 0x0;\nconst GL_LINES = 0x1;\nconst GL_LINE_LOOP = 0x2;\nconst GL_LINE_STRIP = 0x3;\nconst GL_TRIANGLES = 0x4;\nconst GL_TRIANGLE_STRIP = 0x5;\nconst GL_TRIANGLE_FAN = 0x6;\n\n// Local constants - these will \"collapse\" during minification\nconst GL_FLOAT = 0x1406;\nconst GL_FLOAT_VEC2 = 0x8b50;\nconst GL_FLOAT_VEC3 = 0x8b51;\nconst GL_FLOAT_VEC4 = 0x8b52;\n\nconst GL_INT = 0x1404;\nconst GL_INT_VEC2 = 0x8b53;\nconst GL_INT_VEC3 = 0x8b54;\nconst GL_INT_VEC4 = 0x8b55;\n\nconst GL_UNSIGNED_INT = 0x1405;\nconst GL_UNSIGNED_INT_VEC2 = 0x8dc6;\nconst GL_UNSIGNED_INT_VEC3 = 0x8dc7;\nconst GL_UNSIGNED_INT_VEC4 = 0x8dc8;\n\nconst GL_BOOL = 0x8b56;\nconst GL_BOOL_VEC2 = 0x8b57;\nconst GL_BOOL_VEC3 = 0x8b58;\nconst GL_BOOL_VEC4 = 0x8b59;\n\nconst GL_FLOAT_MAT2 = 0x8b5a;\nconst GL_FLOAT_MAT3 = 0x8b5b;\nconst GL_FLOAT_MAT4 = 0x8b5c;\n\nconst GL_FLOAT_MAT2x3 = 0x8b65;\nconst GL_FLOAT_MAT2x4 = 0x8b66;\nconst GL_FLOAT_MAT3x2 = 0x8b67;\nconst GL_FLOAT_MAT3x4 = 0x8b68;\nconst GL_FLOAT_MAT4x2 = 0x8b69;\nconst GL_FLOAT_MAT4x3 = 0x8b6a;\n\n// Composite types table\nconst COMPOSITE_GL_TYPES = {\n [GL_FLOAT]: [GL_FLOAT, 1, 'float'],\n [GL_FLOAT_VEC2]: [GL_FLOAT, 2, 'vec2'],\n [GL_FLOAT_VEC3]: [GL_FLOAT, 3, 'vec3'],\n [GL_FLOAT_VEC4]: [GL_FLOAT, 4, 'vec4'],\n\n [GL_INT]: [GL_INT, 1, 'int'],\n [GL_INT_VEC2]: [GL_INT, 2, 'ivec2'],\n [GL_INT_VEC3]: [GL_INT, 3, 'ivec3'],\n [GL_INT_VEC4]: [GL_INT, 4, 'ivec4'],\n\n [GL_UNSIGNED_INT]: [GL_UNSIGNED_INT, 1, 'uint'],\n [GL_UNSIGNED_INT_VEC2]: [GL_UNSIGNED_INT, 2, 'uvec2'],\n [GL_UNSIGNED_INT_VEC3]: [GL_UNSIGNED_INT, 3, 'uvec3'],\n [GL_UNSIGNED_INT_VEC4]: [GL_UNSIGNED_INT, 4, 'uvec4'],\n\n [GL_BOOL]: [GL_FLOAT, 1, 'bool'],\n [GL_BOOL_VEC2]: [GL_FLOAT, 2, 'bvec2'],\n [GL_BOOL_VEC3]: [GL_FLOAT, 3, 'bvec3'],\n [GL_BOOL_VEC4]: [GL_FLOAT, 4, 'bvec4'],\n\n [GL_FLOAT_MAT2]: [GL_FLOAT, 8, 'mat2'], // 4\n [GL_FLOAT_MAT2x3]: [GL_FLOAT, 8, 'mat2x3'], // 6\n [GL_FLOAT_MAT2x4]: [GL_FLOAT, 8, 'mat2x4'], // 8\n\n [GL_FLOAT_MAT3]: [GL_FLOAT, 12, 'mat3'], // 9\n [GL_FLOAT_MAT3x2]: [GL_FLOAT, 12, 'mat3x2'], // 6\n [GL_FLOAT_MAT3x4]: [GL_FLOAT, 12, 'mat3x4'], // 12\n\n [GL_FLOAT_MAT4]: [GL_FLOAT, 16, 'mat4'], // 16\n [GL_FLOAT_MAT4x2]: [GL_FLOAT, 16, 'mat4x2'], // 8\n [GL_FLOAT_MAT4x3]: [GL_FLOAT, 16, 'mat4x3'] // 12\n};\n\n// Counts the number of complete primitives given a number of vertices and a drawMode\nexport function getPrimitiveDrawMode(drawMode) {\n switch (drawMode) {\n case GL_POINTS:\n return GL_POINTS;\n case GL_LINES:\n return GL_LINES;\n case GL_LINE_STRIP:\n return GL_LINES;\n case GL_LINE_LOOP:\n return GL_LINES;\n case GL_TRIANGLES:\n return GL_TRIANGLES;\n case GL_TRIANGLE_STRIP:\n return GL_TRIANGLES;\n case GL_TRIANGLE_FAN:\n return GL_TRIANGLES;\n default:\n assert(false);\n return 0;\n }\n}\n\n// Counts the number of complete \"primitives\" given a number of vertices and a drawMode\nexport function getPrimitiveCount({drawMode, vertexCount}) {\n switch (drawMode) {\n case GL_POINTS:\n case GL_LINE_LOOP:\n return vertexCount;\n case GL_LINES:\n return vertexCount / 2;\n case GL_LINE_STRIP:\n return vertexCount - 1;\n case GL_TRIANGLES:\n return vertexCount / 3;\n case GL_TRIANGLE_STRIP:\n case GL_TRIANGLE_FAN:\n return vertexCount - 2;\n default:\n assert(false);\n return 0;\n }\n}\n\n// Counts the number of vertices after splitting the vertex stream into separate \"primitives\"\nexport function getVertexCount({drawMode, vertexCount}) {\n const primitiveCount = getPrimitiveCount({drawMode, vertexCount});\n switch (getPrimitiveDrawMode(drawMode)) {\n case GL_POINTS:\n return primitiveCount;\n case GL_LINES:\n return primitiveCount * 2;\n case GL_TRIANGLES:\n return primitiveCount * 3;\n default:\n assert(false);\n return 0;\n }\n}\n\n// Decomposes a composite type GL.VEC3 into a basic type (GL.FLOAT) and components (3)\nexport function decomposeCompositeGLType(compositeGLType) {\n const typeAndSize = COMPOSITE_GL_TYPES[compositeGLType];\n if (!typeAndSize) {\n return null;\n }\n const [type, components] = typeAndSize;\n return {type, components};\n}\n\nexport function getCompositeGLType(type, components) {\n switch (type) {\n case GL_BYTE:\n case GL_UNSIGNED_BYTE:\n case GL_SHORT:\n case GL_UNSIGNED_SHORT:\n type = GL_FLOAT;\n break;\n default:\n }\n\n for (const glType in COMPOSITE_GL_TYPES) {\n const [compType, compComponents, name] = COMPOSITE_GL_TYPES[glType];\n if (compType === type && compComponents === components) {\n return {glType, name};\n }\n }\n return null;\n}\n"],"file":"attribute-utils.js"}
@@ -12,7 +12,7 @@ export function getKeyValue(gl, name) {
12
12
 
13
13
  name = name.replace(/^.*\./, '');
14
14
  const value = gl[name];
15
- assert(value !== undefined, `Accessing undefined constant GL.${name}`);
15
+ assert(value !== undefined, "Accessing undefined constant GL.".concat(name));
16
16
  return value;
17
17
  }
18
18
  export function getKey(gl, value) {
@@ -20,7 +20,7 @@ export function getKey(gl, value) {
20
20
 
21
21
  for (const key in gl) {
22
22
  if (gl[key] === value) {
23
- return `GL.${key}`;
23
+ return "GL.".concat(key);
24
24
  }
25
25
  }
26
26
 
@@ -32,7 +32,7 @@ export function getKeyType(gl, value) {
32
32
 
33
33
  for (const key in gl) {
34
34
  if (gl[key] === value) {
35
- return `GL.${key}`;
35
+ return "GL.".concat(key);
36
36
  }
37
37
  }
38
38
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/webgl-utils/constants-to-keys.js"],"names":["assert","getKeyValue","gl","name","number","Number","isNaN","replace","value","undefined","getKey","key","String","getKeyType"],"mappings":"AAAA,SAAQA,MAAR,QAAqB,iBAArB;AAGA,OAAO,SAASC,WAAT,CAAqBC,EAArB,EAAyBC,IAAzB,EAA+B;AAEpC,MAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;AAC5B,WAAOA,IAAP;AACD;;AAGD,QAAMC,MAAM,GAAGC,MAAM,CAACF,IAAD,CAArB;;AACA,MAAI,CAACG,KAAK,CAACF,MAAD,CAAV,EAAoB;AAClB,WAAOA,MAAP;AACD;;AAGDD,EAAAA,IAAI,GAAGA,IAAI,CAACI,OAAL,CAAa,OAAb,EAAsB,EAAtB,CAAP;AACA,QAAMC,KAAK,GAAGN,EAAE,CAACC,IAAD,CAAhB;AACAH,EAAAA,MAAM,CAACQ,KAAK,KAAKC,SAAX,EAAuB,mCAAkCN,IAAK,EAA9D,CAAN;AACA,SAAOK,KAAP;AACD;AAED,OAAO,SAASE,MAAT,CAAgBR,EAAhB,EAAoBM,KAApB,EAA2B;AAChCA,EAAAA,KAAK,GAAGH,MAAM,CAACG,KAAD,CAAd;;AACA,OAAK,MAAMG,GAAX,IAAkBT,EAAlB,EAAsB;AACpB,QAAIA,EAAE,CAACS,GAAD,CAAF,KAAYH,KAAhB,EAAuB;AACrB,aAAQ,MAAKG,GAAI,EAAjB;AACD;AACF;;AACD,SAAOC,MAAM,CAACJ,KAAD,CAAb;AACD;AAED,OAAO,SAASK,UAAT,CAAoBX,EAApB,EAAwBM,KAAxB,EAA+B;AACpCR,EAAAA,MAAM,CAACQ,KAAK,KAAKC,SAAX,EAAsB,eAAtB,CAAN;AACAD,EAAAA,KAAK,GAAGH,MAAM,CAACG,KAAD,CAAd;;AACA,OAAK,MAAMG,GAAX,IAAkBT,EAAlB,EAAsB;AACpB,QAAIA,EAAE,CAACS,GAAD,CAAF,KAAYH,KAAhB,EAAuB;AACrB,aAAQ,MAAKG,GAAI,EAAjB;AACD;AACF;;AACD,SAAOC,MAAM,CAACJ,KAAD,CAAb;AACD","sourcesContent":["import {assert} from '../utils/assert';\n\n// Resolve a WebGL enumeration name (returns itself if already a number)\nexport function getKeyValue(gl, name) {\n // If not a string, return (assume number)\n if (typeof name !== 'string') {\n return name;\n }\n\n // If string converts to number, return number\n const number = Number(name);\n if (!isNaN(number)) {\n return number;\n }\n\n // Look up string, after removing any 'GL.' or 'gl.' prefix\n name = name.replace(/^.*\\./, '');\n const value = gl[name];\n assert(value !== undefined, `Accessing undefined constant GL.${name}`);\n return value;\n}\n\nexport function getKey(gl, value) {\n value = Number(value);\n for (const key in gl) {\n if (gl[key] === value) {\n return `GL.${key}`;\n }\n }\n return String(value);\n}\n\nexport function getKeyType(gl, value) {\n assert(value !== undefined, 'undefined key');\n value = Number(value);\n for (const key in gl) {\n if (gl[key] === value) {\n return `GL.${key}`;\n }\n }\n return String(value);\n}\n"],"file":"constants-to-keys.js"}
1
+ {"version":3,"sources":["../../../src/webgl-utils/constants-to-keys.js"],"names":["assert","getKeyValue","gl","name","number","Number","isNaN","replace","value","undefined","getKey","key","String","getKeyType"],"mappings":"AAAA,SAAQA,MAAR,QAAqB,iBAArB;AAGA,OAAO,SAASC,WAAT,CAAqBC,EAArB,EAAyBC,IAAzB,EAA+B;AAEpC,MAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;AAC5B,WAAOA,IAAP;AACD;;AAGD,QAAMC,MAAM,GAAGC,MAAM,CAACF,IAAD,CAArB;;AACA,MAAI,CAACG,KAAK,CAACF,MAAD,CAAV,EAAoB;AAClB,WAAOA,MAAP;AACD;;AAGDD,EAAAA,IAAI,GAAGA,IAAI,CAACI,OAAL,CAAa,OAAb,EAAsB,EAAtB,CAAP;AACA,QAAMC,KAAK,GAAGN,EAAE,CAACC,IAAD,CAAhB;AACAH,EAAAA,MAAM,CAACQ,KAAK,KAAKC,SAAX,4CAAyDN,IAAzD,EAAN;AACA,SAAOK,KAAP;AACD;AAED,OAAO,SAASE,MAAT,CAAgBR,EAAhB,EAAoBM,KAApB,EAA2B;AAChCA,EAAAA,KAAK,GAAGH,MAAM,CAACG,KAAD,CAAd;;AACA,OAAK,MAAMG,GAAX,IAAkBT,EAAlB,EAAsB;AACpB,QAAIA,EAAE,CAACS,GAAD,CAAF,KAAYH,KAAhB,EAAuB;AACrB,0BAAaG,GAAb;AACD;AACF;;AACD,SAAOC,MAAM,CAACJ,KAAD,CAAb;AACD;AAED,OAAO,SAASK,UAAT,CAAoBX,EAApB,EAAwBM,KAAxB,EAA+B;AACpCR,EAAAA,MAAM,CAACQ,KAAK,KAAKC,SAAX,EAAsB,eAAtB,CAAN;AACAD,EAAAA,KAAK,GAAGH,MAAM,CAACG,KAAD,CAAd;;AACA,OAAK,MAAMG,GAAX,IAAkBT,EAAlB,EAAsB;AACpB,QAAIA,EAAE,CAACS,GAAD,CAAF,KAAYH,KAAhB,EAAuB;AACrB,0BAAaG,GAAb;AACD;AACF;;AACD,SAAOC,MAAM,CAACJ,KAAD,CAAb;AACD","sourcesContent":["import {assert} from '../utils/assert';\n\n// Resolve a WebGL enumeration name (returns itself if already a number)\nexport function getKeyValue(gl, name) {\n // If not a string, return (assume number)\n if (typeof name !== 'string') {\n return name;\n }\n\n // If string converts to number, return number\n const number = Number(name);\n if (!isNaN(number)) {\n return number;\n }\n\n // Look up string, after removing any 'GL.' or 'gl.' prefix\n name = name.replace(/^.*\\./, '');\n const value = gl[name];\n assert(value !== undefined, `Accessing undefined constant GL.${name}`);\n return value;\n}\n\nexport function getKey(gl, value) {\n value = Number(value);\n for (const key in gl) {\n if (gl[key] === value) {\n return `GL.${key}`;\n }\n }\n return String(value);\n}\n\nexport function getKeyType(gl, value) {\n assert(value !== undefined, 'undefined key');\n value = Number(value);\n for (const key in gl) {\n if (gl[key] === value) {\n return `GL.${key}`;\n }\n }\n return String(value);\n}\n"],"file":"constants-to-keys.js"}
@@ -15,7 +15,7 @@ const GL_ERROR_MESSAGES = {
15
15
  };
16
16
 
17
17
  function glGetErrorMessage(gl, glError) {
18
- return GL_ERROR_MESSAGES[glError] || `WebGL unknown error ${glError}`;
18
+ return GL_ERROR_MESSAGES[glError] || "WebGL unknown error ".concat(glError);
19
19
  }
20
20
 
21
21
  export function glGetError(gl) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/webgl-utils/get-error.js"],"names":["GL_NO_ERROR","GL_INVALID_ENUM","GL_INVALID_VALUE","GL_INVALID_OPERATION","GL_OUT_OF_MEMORY","GL_CONTEXT_LOST_WEBGL","GL_INVALID_FRAMEBUFFER_OPERATION","GL_ERROR_MESSAGES","glGetErrorMessage","gl","glError","glGetError","errorStack","getError","push","length","Error","join","glCheckError","debug","error"],"mappings":"AAIA,MAAMA,WAAW,GAAG,CAApB;AACA,MAAMC,eAAe,GAAG,MAAxB;AACA,MAAMC,gBAAgB,GAAG,MAAzB;AACA,MAAMC,oBAAoB,GAAG,MAA7B;AACA,MAAMC,gBAAgB,GAAG,MAAzB;AACA,MAAMC,qBAAqB,GAAG,MAA9B;AACA,MAAMC,gCAAgC,GAAG,MAAzC;AAIA,MAAMC,iBAAiB,GAAG;AAIxB,GAACF,qBAAD,GAAyB,oBAJD;AAMxB,GAACJ,eAAD,GAAmB,mCANK;AAQxB,GAACC,gBAAD,GAAoB,qBARI;AAUxB,GAACC,oBAAD,GAAwB,yBAVA;AAaxB,GAACG,gCAAD,GAAoC,qCAbZ;AAexB,GAACF,gBAAD,GAAoB;AAfI,CAA1B;;AAkBA,SAASI,iBAAT,CAA2BC,EAA3B,EAA+BC,OAA/B,EAAwC;AACtC,SAAOH,iBAAiB,CAACG,OAAD,CAAjB,IAA+B,uBAAsBA,OAAQ,EAApE;AACD;;AAGD,OAAO,SAASC,UAAT,CAAoBF,EAApB,EAAwB;AAE7B,QAAMG,UAAU,GAAG,EAAnB;AACA,MAAIF,OAAO,GAAGD,EAAE,CAACI,QAAH,EAAd;;AACA,SAAOH,OAAO,KAAKV,WAAnB,EAAgC;AAC9BY,IAAAA,UAAU,CAACE,IAAX,CAAgBN,iBAAiB,CAACC,EAAD,EAAKC,OAAL,CAAjC;AACAA,IAAAA,OAAO,GAAGD,EAAE,CAACI,QAAH,EAAV;AACD;;AACD,SAAOD,UAAU,CAACG,MAAX,GAAoB,IAAIC,KAAJ,CAAUJ,UAAU,CAACK,IAAX,CAAgB,IAAhB,CAAV,CAApB,GAAuD,IAA9D;AACD;AAED,OAAO,SAASC,YAAT,CAAsBT,EAAtB,EAA0B;AAC/B,MAAIA,EAAE,CAACU,KAAP,EAAc;AACZ,UAAMC,KAAK,GAAGT,UAAU,CAACF,EAAD,CAAxB;;AACA,QAAIW,KAAJ,EAAW;AACT,YAAMA,KAAN;AACD;AACF;AACF","sourcesContent":["// Helper definitions for validation of webgl parameters\n/* eslint-disable no-inline-comments, max-len */\n\n// Errors - Constants returned from getError().\nconst GL_NO_ERROR = 0; // Returned from getError.\nconst GL_INVALID_ENUM = 0x0500; // Returned from getError.\nconst GL_INVALID_VALUE = 0x0501; // Returned from getError.\nconst GL_INVALID_OPERATION = 0x0502; // Returned from getError.\nconst GL_OUT_OF_MEMORY = 0x0505; // Returned from getError.\nconst GL_CONTEXT_LOST_WEBGL = 0x9242; // Returned from getError.\nconst GL_INVALID_FRAMEBUFFER_OPERATION = 0x0506;\n\n// GL errors\n\nconst GL_ERROR_MESSAGES = {\n // If the WebGL context is lost, this error is returned on the\n // first call to getError. Afterwards and until the context has been\n // restored, it returns gl.NO_ERROR.\n [GL_CONTEXT_LOST_WEBGL]: 'WebGL context lost',\n // An unacceptable value has been specified for an enumerated argument.\n [GL_INVALID_ENUM]: 'WebGL invalid enumerated argument',\n // A numeric argument is out of range.\n [GL_INVALID_VALUE]: 'WebGL invalid value',\n // The specified command is not allowed for the current state.\n [GL_INVALID_OPERATION]: 'WebGL invalid operation',\n // The currently bound framebuffer is not framebuffer complete\n // when trying to render to or to read from it.\n [GL_INVALID_FRAMEBUFFER_OPERATION]: 'WebGL invalid framebuffer operation',\n // Not enough memory is left to execute the command.\n [GL_OUT_OF_MEMORY]: 'WebGL out of memory'\n};\n\nfunction glGetErrorMessage(gl, glError) {\n return GL_ERROR_MESSAGES[glError] || `WebGL unknown error ${glError}`;\n}\n\n// Returns an Error representing the Latest webGl error or null\nexport function glGetError(gl) {\n // Loop to ensure all errors are cleared\n const errorStack = [];\n let glError = gl.getError();\n while (glError !== GL_NO_ERROR) {\n errorStack.push(glGetErrorMessage(gl, glError));\n glError = gl.getError();\n }\n return errorStack.length ? new Error(errorStack.join('\\n')) : null;\n}\n\nexport function glCheckError(gl) {\n if (gl.debug) {\n const error = glGetError(gl);\n if (error) {\n throw error;\n }\n }\n}\n"],"file":"get-error.js"}
1
+ {"version":3,"sources":["../../../src/webgl-utils/get-error.js"],"names":["GL_NO_ERROR","GL_INVALID_ENUM","GL_INVALID_VALUE","GL_INVALID_OPERATION","GL_OUT_OF_MEMORY","GL_CONTEXT_LOST_WEBGL","GL_INVALID_FRAMEBUFFER_OPERATION","GL_ERROR_MESSAGES","glGetErrorMessage","gl","glError","glGetError","errorStack","getError","push","length","Error","join","glCheckError","debug","error"],"mappings":"AAIA,MAAMA,WAAW,GAAG,CAApB;AACA,MAAMC,eAAe,GAAG,MAAxB;AACA,MAAMC,gBAAgB,GAAG,MAAzB;AACA,MAAMC,oBAAoB,GAAG,MAA7B;AACA,MAAMC,gBAAgB,GAAG,MAAzB;AACA,MAAMC,qBAAqB,GAAG,MAA9B;AACA,MAAMC,gCAAgC,GAAG,MAAzC;AAIA,MAAMC,iBAAiB,GAAG;AAIxB,GAACF,qBAAD,GAAyB,oBAJD;AAMxB,GAACJ,eAAD,GAAmB,mCANK;AAQxB,GAACC,gBAAD,GAAoB,qBARI;AAUxB,GAACC,oBAAD,GAAwB,yBAVA;AAaxB,GAACG,gCAAD,GAAoC,qCAbZ;AAexB,GAACF,gBAAD,GAAoB;AAfI,CAA1B;;AAkBA,SAASI,iBAAT,CAA2BC,EAA3B,EAA+BC,OAA/B,EAAwC;AACtC,SAAOH,iBAAiB,CAACG,OAAD,CAAjB,kCAAqDA,OAArD,CAAP;AACD;;AAGD,OAAO,SAASC,UAAT,CAAoBF,EAApB,EAAwB;AAE7B,QAAMG,UAAU,GAAG,EAAnB;AACA,MAAIF,OAAO,GAAGD,EAAE,CAACI,QAAH,EAAd;;AACA,SAAOH,OAAO,KAAKV,WAAnB,EAAgC;AAC9BY,IAAAA,UAAU,CAACE,IAAX,CAAgBN,iBAAiB,CAACC,EAAD,EAAKC,OAAL,CAAjC;AACAA,IAAAA,OAAO,GAAGD,EAAE,CAACI,QAAH,EAAV;AACD;;AACD,SAAOD,UAAU,CAACG,MAAX,GAAoB,IAAIC,KAAJ,CAAUJ,UAAU,CAACK,IAAX,CAAgB,IAAhB,CAAV,CAApB,GAAuD,IAA9D;AACD;AAED,OAAO,SAASC,YAAT,CAAsBT,EAAtB,EAA0B;AAC/B,MAAIA,EAAE,CAACU,KAAP,EAAc;AACZ,UAAMC,KAAK,GAAGT,UAAU,CAACF,EAAD,CAAxB;;AACA,QAAIW,KAAJ,EAAW;AACT,YAAMA,KAAN;AACD;AACF;AACF","sourcesContent":["// Helper definitions for validation of webgl parameters\n/* eslint-disable no-inline-comments, max-len */\n\n// Errors - Constants returned from getError().\nconst GL_NO_ERROR = 0; // Returned from getError.\nconst GL_INVALID_ENUM = 0x0500; // Returned from getError.\nconst GL_INVALID_VALUE = 0x0501; // Returned from getError.\nconst GL_INVALID_OPERATION = 0x0502; // Returned from getError.\nconst GL_OUT_OF_MEMORY = 0x0505; // Returned from getError.\nconst GL_CONTEXT_LOST_WEBGL = 0x9242; // Returned from getError.\nconst GL_INVALID_FRAMEBUFFER_OPERATION = 0x0506;\n\n// GL errors\n\nconst GL_ERROR_MESSAGES = {\n // If the WebGL context is lost, this error is returned on the\n // first call to getError. Afterwards and until the context has been\n // restored, it returns gl.NO_ERROR.\n [GL_CONTEXT_LOST_WEBGL]: 'WebGL context lost',\n // An unacceptable value has been specified for an enumerated argument.\n [GL_INVALID_ENUM]: 'WebGL invalid enumerated argument',\n // A numeric argument is out of range.\n [GL_INVALID_VALUE]: 'WebGL invalid value',\n // The specified command is not allowed for the current state.\n [GL_INVALID_OPERATION]: 'WebGL invalid operation',\n // The currently bound framebuffer is not framebuffer complete\n // when trying to render to or to read from it.\n [GL_INVALID_FRAMEBUFFER_OPERATION]: 'WebGL invalid framebuffer operation',\n // Not enough memory is left to execute the command.\n [GL_OUT_OF_MEMORY]: 'WebGL out of memory'\n};\n\nfunction glGetErrorMessage(gl, glError) {\n return GL_ERROR_MESSAGES[glError] || `WebGL unknown error ${glError}`;\n}\n\n// Returns an Error representing the Latest webGl error or null\nexport function glGetError(gl) {\n // Loop to ensure all errors are cleared\n const errorStack = [];\n let glError = gl.getError();\n while (glError !== GL_NO_ERROR) {\n errorStack.push(glGetErrorMessage(gl, glError));\n glError = gl.getError();\n }\n return errorStack.length ? new Error(errorStack.join('\\n')) : null;\n}\n\nexport function glCheckError(gl) {\n if (gl.debug) {\n const error = glGetError(gl);\n if (error) {\n throw error;\n }\n }\n}\n"],"file":"get-error.js"}
@@ -35,7 +35,7 @@ export function toFramebuffer(texture, opts) {
35
35
  id
36
36
  } = texture;
37
37
  const framebuffer = new Framebuffer(gl, Object.assign({}, opts, {
38
- id: `framebuffer-for-${id}`,
38
+ id: "framebuffer-for-".concat(id),
39
39
  width,
40
40
  height,
41
41
  attachments: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/webgl-utils/texture-utils.js"],"names":["Texture2D","TextureCube","Texture3D","Framebuffer","assert","cloneTextureFrom","refTexture","overrides","TextureType","constructor","gl","width","height","format","type","dataFormat","border","mipmaps","textureOptions","Object","assign","toFramebuffer","texture","opts","id","framebuffer","attachments"],"mappings":"AACA,OAAOA,SAAP,MAAsB,uBAAtB;AACA,OAAOC,WAAP,MAAwB,yBAAxB;AACA,OAAOC,SAAP,MAAsB,uBAAtB;AACA,OAAOC,WAAP,MAAwB,wBAAxB;AAEA,SAAQC,MAAR,QAAqB,iBAArB;AAIA,OAAO,SAASC,gBAAT,CAA0BC,UAA1B,EAAsCC,SAAtC,EAAiD;AACtDH,EAAAA,MAAM,CACJE,UAAU,YAAYN,SAAtB,IACEM,UAAU,YAAYL,WADxB,IAEEK,UAAU,YAAYJ,SAHpB,CAAN;AAMA,QAAMM,WAAW,GAAGF,UAAU,CAACG,WAA/B;AAEA,QAAM;AAACC,IAAAA,EAAD;AAAKC,IAAAA,KAAL;AAAYC,IAAAA,MAAZ;AAAoBC,IAAAA,MAApB;AAA4BC,IAAAA,IAA5B;AAAkCC,IAAAA,UAAlC;AAA8CC,IAAAA,MAA9C;AAAsDC,IAAAA;AAAtD,MAAiEX,UAAvE;AAEA,QAAMY,cAAc,GAAGC,MAAM,CAACC,MAAP,CACrB;AACET,IAAAA,KADF;AAEEC,IAAAA,MAFF;AAGEC,IAAAA,MAHF;AAIEC,IAAAA,IAJF;AAKEC,IAAAA,UALF;AAMEC,IAAAA,MANF;AAOEC,IAAAA;AAPF,GADqB,EAUrBV,SAVqB,CAAvB;AAcA,SAAO,IAAIC,WAAJ,CAAgBE,EAAhB,EAAoBQ,cAApB,CAAP;AACD;AAKD,OAAO,SAASG,aAAT,CAAuBC,OAAvB,EAAgCC,IAAhC,EAAsC;AAC3C,QAAM;AAACb,IAAAA,EAAD;AAAKC,IAAAA,KAAL;AAAYC,IAAAA,MAAZ;AAAoBY,IAAAA;AAApB,MAA0BF,OAAhC;AACA,QAAMG,WAAW,GAAG,IAAItB,WAAJ,CAClBO,EADkB,EAElBS,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBG,IAAlB,EAAwB;AACtBC,IAAAA,EAAE,EAAG,mBAAkBA,EAAG,EADJ;AAEtBb,IAAAA,KAFsB;AAGtBC,IAAAA,MAHsB;AAItBc,IAAAA,WAAW,EAAE;AACX,eAAwBJ;AADb;AAJS,GAAxB,CAFkB,CAApB;AAWA,SAAOG,WAAP;AACD","sourcesContent":["// TODO: Two subdirectories must not depend on each other (classes vs utils)!\nimport Texture2D from '../classes/texture-2d';\nimport TextureCube from '../classes/texture-cube';\nimport Texture3D from '../classes/texture-3d';\nimport Framebuffer from '../classes/framebuffer';\nimport GL from '@luma.gl/constants';\nimport {assert} from '../utils/assert';\n\n// Clone a new texture object from a reference texture object.\n/** @type {import('./texture-utils').cloneTextureFrom} */\nexport function cloneTextureFrom(refTexture, overrides) {\n assert(\n refTexture instanceof Texture2D ||\n refTexture instanceof TextureCube ||\n refTexture instanceof Texture3D\n );\n\n const TextureType = refTexture.constructor;\n\n const {gl, width, height, format, type, dataFormat, border, mipmaps} = refTexture;\n\n const textureOptions = Object.assign(\n {\n width,\n height,\n format,\n type,\n dataFormat,\n border,\n mipmaps\n },\n overrides\n );\n\n // TODO: move this to `Texture` class as instance method and use this.constructor\n return new TextureType(gl, textureOptions);\n}\n\n// Wraps a given texture into a framebuffer object, that can be further used\n// to read data from the texture object.\n/** @type {import('./texture-utils').toFramebuffer} */\nexport function toFramebuffer(texture, opts) {\n const {gl, width, height, id} = texture;\n const framebuffer = new Framebuffer(\n gl,\n Object.assign({}, opts, {\n id: `framebuffer-for-${id}`,\n width,\n height,\n attachments: {\n [GL.COLOR_ATTACHMENT0]: texture\n }\n })\n );\n return framebuffer;\n}\n"],"file":"texture-utils.js"}
1
+ {"version":3,"sources":["../../../src/webgl-utils/texture-utils.js"],"names":["Texture2D","TextureCube","Texture3D","Framebuffer","assert","cloneTextureFrom","refTexture","overrides","TextureType","constructor","gl","width","height","format","type","dataFormat","border","mipmaps","textureOptions","Object","assign","toFramebuffer","texture","opts","id","framebuffer","attachments"],"mappings":"AACA,OAAOA,SAAP,MAAsB,uBAAtB;AACA,OAAOC,WAAP,MAAwB,yBAAxB;AACA,OAAOC,SAAP,MAAsB,uBAAtB;AACA,OAAOC,WAAP,MAAwB,wBAAxB;AAEA,SAAQC,MAAR,QAAqB,iBAArB;AAIA,OAAO,SAASC,gBAAT,CAA0BC,UAA1B,EAAsCC,SAAtC,EAAiD;AACtDH,EAAAA,MAAM,CACJE,UAAU,YAAYN,SAAtB,IACEM,UAAU,YAAYL,WADxB,IAEEK,UAAU,YAAYJ,SAHpB,CAAN;AAMA,QAAMM,WAAW,GAAGF,UAAU,CAACG,WAA/B;AAGA,QAAM;AAACC,IAAAA,EAAD;AAAKC,IAAAA,KAAL;AAAYC,IAAAA,MAAZ;AAAoBC,IAAAA,MAApB;AAA4BC,IAAAA,IAA5B;AAAkCC,IAAAA,UAAlC;AAA8CC,IAAAA,MAA9C;AAAsDC,IAAAA;AAAtD,MAAiEX,UAAvE;AAEA,QAAMY,cAAc,GAAGC,MAAM,CAACC,MAAP,CACrB;AACET,IAAAA,KADF;AAEEC,IAAAA,MAFF;AAGEC,IAAAA,MAHF;AAIEC,IAAAA,IAJF;AAKEC,IAAAA,UALF;AAMEC,IAAAA,MANF;AAOEC,IAAAA;AAPF,GADqB,EAUrBV,SAVqB,CAAvB;AAeA,SAAO,IAAIC,WAAJ,CAAgBE,EAAhB,EAAoBQ,cAApB,CAAP;AACD;AAKD,OAAO,SAASG,aAAT,CAAuBC,OAAvB,EAAgCC,IAAhC,EAAsC;AAC3C,QAAM;AAACb,IAAAA,EAAD;AAAKC,IAAAA,KAAL;AAAYC,IAAAA,MAAZ;AAAoBY,IAAAA;AAApB,MAA0BF,OAAhC;AACA,QAAMG,WAAW,GAAG,IAAItB,WAAJ,CAClBO,EADkB,EAElBS,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBG,IAAlB,EAAwB;AACtBC,IAAAA,EAAE,4BAAqBA,EAArB,CADoB;AAEtBb,IAAAA,KAFsB;AAGtBC,IAAAA,MAHsB;AAItBc,IAAAA,WAAW,EAAE;AACX,eAAwBJ;AADb;AAJS,GAAxB,CAFkB,CAApB;AAWA,SAAOG,WAAP;AACD","sourcesContent":["// TODO: Two subdirectories must not depend on each other (classes vs utils)!\nimport Texture2D from '../classes/texture-2d';\nimport TextureCube from '../classes/texture-cube';\nimport Texture3D from '../classes/texture-3d';\nimport Framebuffer from '../classes/framebuffer';\nimport GL from '@luma.gl/constants';\nimport {assert} from '../utils/assert';\n\n// Clone a new texture object from a reference texture object.\n/** @type {import('./texture-utils').cloneTextureFrom} */\nexport function cloneTextureFrom(refTexture, overrides) {\n assert(\n refTexture instanceof Texture2D ||\n refTexture instanceof TextureCube ||\n refTexture instanceof Texture3D\n );\n\n const TextureType = refTexture.constructor;\n\n // @ts-expect-error\n const {gl, width, height, format, type, dataFormat, border, mipmaps} = refTexture;\n\n const textureOptions = Object.assign(\n {\n width,\n height,\n format,\n type,\n dataFormat,\n border,\n mipmaps\n },\n overrides\n );\n\n // TODO: move this to `Texture` class as instance method and use this.constructor\n // @ts-expect-error\n return new TextureType(gl, textureOptions);\n}\n\n// Wraps a given texture into a framebuffer object, that can be further used\n// to read data from the texture object.\n/** @type {import('./texture-utils').toFramebuffer} */\nexport function toFramebuffer(texture, opts) {\n const {gl, width, height, id} = texture;\n const framebuffer = new Framebuffer(\n gl,\n Object.assign({}, opts, {\n id: `framebuffer-for-${id}`,\n width,\n height,\n attachments: {\n [GL.COLOR_ATTACHMENT0]: texture\n }\n })\n );\n return framebuffer;\n}\n"],"file":"texture-utils.js"}
@@ -31,9 +31,11 @@ export function getGLTypeFromTypedArray(arrayOrType) {
31
31
  throw new Error(ERR_TYPE_DEDUCTION);
32
32
  }
33
33
  }
34
- export function getTypedArrayFromGLType(glType, {
35
- clamped = true
36
- } = {}) {
34
+ export function getTypedArrayFromGLType(glType) {
35
+ let {
36
+ clamped = true
37
+ } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
38
+
37
39
  switch (glType) {
38
40
  case 5126:
39
41
  return Float32Array;
@@ -63,13 +65,14 @@ export function getTypedArrayFromGLType(glType, {
63
65
  throw new Error('Failed to deduce typed array type from GL constant');
64
66
  }
65
67
  }
66
- export function flipRows({
67
- data,
68
- width,
69
- height,
70
- bytesPerPixel = 4,
71
- temp
72
- }) {
68
+ export function flipRows(_ref) {
69
+ let {
70
+ data,
71
+ width,
72
+ height,
73
+ bytesPerPixel = 4,
74
+ temp
75
+ } = _ref;
73
76
  const bytesPerRow = width * bytesPerPixel;
74
77
  temp = temp || new Uint8Array(bytesPerRow);
75
78
 
@@ -81,11 +84,12 @@ export function flipRows({
81
84
  data.set(temp, bottomOffset);
82
85
  }
83
86
  }
84
- export function scalePixels({
85
- data,
86
- width,
87
- height
88
- }) {
87
+ export function scalePixels(_ref2) {
88
+ let {
89
+ data,
90
+ width,
91
+ height
92
+ } = _ref2;
89
93
  const newWidth = Math.round(width / 2);
90
94
  const newHeight = Math.round(height / 2);
91
95
  const newData = new Uint8Array(newWidth * newHeight * 4);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/webgl-utils/typed-array-utils.js"],"names":["ERR_TYPE_DEDUCTION","getGLTypeFromTypedArray","arrayOrType","type","ArrayBuffer","isView","constructor","Float32Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","Int8Array","Int16Array","Int32Array","Error","getTypedArrayFromGLType","glType","clamped","flipRows","data","width","height","bytesPerPixel","temp","bytesPerRow","y","topOffset","bottomOffset","set","subarray","copyWithin","scalePixels","newWidth","Math","round","newHeight","newData","x","c"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\n\nconst ERR_TYPE_DEDUCTION = 'Failed to deduce GL constant from typed array';\n\n// Converts TYPED ARRAYS to corresponding GL constant\n// Used to auto deduce gl parameter types\nexport function getGLTypeFromTypedArray(arrayOrType) {\n // If typed array, look up constructor\n const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;\n switch (type) {\n case Float32Array:\n return GL.FLOAT;\n case Uint16Array:\n return GL.UNSIGNED_SHORT;\n case Uint32Array:\n return GL.UNSIGNED_INT;\n case Uint8Array:\n return GL.UNSIGNED_BYTE;\n case Uint8ClampedArray:\n return GL.UNSIGNED_BYTE;\n case Int8Array:\n return GL.BYTE;\n case Int16Array:\n return GL.SHORT;\n case Int32Array:\n return GL.INT;\n default:\n throw new Error(ERR_TYPE_DEDUCTION);\n }\n}\n\n// Converts GL constant to corresponding TYPED ARRAY\n// Used to auto deduce gl parameter types\n\n/* eslint-disable complexity */\nexport function getTypedArrayFromGLType(glType, {clamped = true} = {}) {\n // Sorted in some order of likelihood to reduce amount of comparisons\n switch (glType) {\n case GL.FLOAT:\n return Float32Array;\n case GL.UNSIGNED_SHORT:\n case GL.UNSIGNED_SHORT_5_6_5:\n case GL.UNSIGNED_SHORT_4_4_4_4:\n case GL.UNSIGNED_SHORT_5_5_5_1:\n return Uint16Array;\n case GL.UNSIGNED_INT:\n return Uint32Array;\n case GL.UNSIGNED_BYTE:\n return clamped ? Uint8ClampedArray : Uint8Array;\n case GL.BYTE:\n return Int8Array;\n case GL.SHORT:\n return Int16Array;\n case GL.INT:\n return Int32Array;\n default:\n throw new Error('Failed to deduce typed array type from GL constant');\n }\n}\n/* eslint-enable complexity */\n\n// Flip rows (can be used on arrays returned from `Framebuffer.readPixels`)\n// https://stackoverflow.com/questions/41969562/\n// how-can-i-flip-the-result-of-webglrenderingcontext-readpixels\nexport function flipRows({data, width, height, bytesPerPixel = 4, temp}) {\n const bytesPerRow = width * bytesPerPixel;\n\n // make a temp buffer to hold one row\n temp = temp || new Uint8Array(bytesPerRow);\n for (let y = 0; y < height / 2; ++y) {\n const topOffset = y * bytesPerRow;\n const bottomOffset = (height - y - 1) * bytesPerRow;\n // make copy of a row on the top half\n temp.set(data.subarray(topOffset, topOffset + bytesPerRow));\n // copy a row from the bottom half to the top\n data.copyWithin(topOffset, bottomOffset, bottomOffset + bytesPerRow);\n // copy the copy of the top half row to the bottom half\n data.set(temp, bottomOffset);\n }\n}\n\nexport function scalePixels({data, width, height}) {\n const newWidth = Math.round(width / 2);\n const newHeight = Math.round(height / 2);\n const newData = new Uint8Array(newWidth * newHeight * 4);\n for (let y = 0; y < newHeight; y++) {\n for (let x = 0; x < newWidth; x++) {\n for (let c = 0; c < 4; c++) {\n newData[(y * newWidth + x) * 4 + c] = data[(y * 2 * width + x * 2) * 4 + c];\n }\n }\n }\n return {data: newData, width: newWidth, height: newHeight};\n}\n"],"file":"typed-array-utils.js"}
1
+ {"version":3,"sources":["../../../src/webgl-utils/typed-array-utils.js"],"names":["ERR_TYPE_DEDUCTION","getGLTypeFromTypedArray","arrayOrType","type","ArrayBuffer","isView","constructor","Float32Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","Int8Array","Int16Array","Int32Array","Error","getTypedArrayFromGLType","glType","clamped","flipRows","data","width","height","bytesPerPixel","temp","bytesPerRow","y","topOffset","bottomOffset","set","subarray","copyWithin","scalePixels","newWidth","Math","round","newHeight","newData","x","c"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\n\nconst ERR_TYPE_DEDUCTION = 'Failed to deduce GL constant from typed array';\n\n// Converts TYPED ARRAYS to corresponding GL constant\n// Used to auto deduce gl parameter types\nexport function getGLTypeFromTypedArray(arrayOrType) {\n // If typed array, look up constructor\n const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;\n switch (type) {\n case Float32Array:\n return GL.FLOAT;\n case Uint16Array:\n return GL.UNSIGNED_SHORT;\n case Uint32Array:\n return GL.UNSIGNED_INT;\n case Uint8Array:\n return GL.UNSIGNED_BYTE;\n case Uint8ClampedArray:\n return GL.UNSIGNED_BYTE;\n case Int8Array:\n return GL.BYTE;\n case Int16Array:\n return GL.SHORT;\n case Int32Array:\n return GL.INT;\n default:\n throw new Error(ERR_TYPE_DEDUCTION);\n }\n}\n\n// Converts GL constant to corresponding TYPED ARRAY\n// Used to auto deduce gl parameter types\n\n/* eslint-disable complexity */\nexport function getTypedArrayFromGLType(glType, {clamped = true} = {}) {\n // Sorted in some order of likelihood to reduce amount of comparisons\n switch (glType) {\n case GL.FLOAT:\n return Float32Array;\n case GL.UNSIGNED_SHORT:\n case GL.UNSIGNED_SHORT_5_6_5:\n case GL.UNSIGNED_SHORT_4_4_4_4:\n case GL.UNSIGNED_SHORT_5_5_5_1:\n return Uint16Array;\n case GL.UNSIGNED_INT:\n return Uint32Array;\n case GL.UNSIGNED_BYTE:\n return clamped ? Uint8ClampedArray : Uint8Array;\n case GL.BYTE:\n return Int8Array;\n case GL.SHORT:\n return Int16Array;\n case GL.INT:\n return Int32Array;\n default:\n throw new Error('Failed to deduce typed array type from GL constant');\n }\n}\n/* eslint-enable complexity */\n\n// Flip rows (can be used on arrays returned from `Framebuffer.readPixels`)\n// https://stackoverflow.com/questions/41969562/\n// how-can-i-flip-the-result-of-webglrenderingcontext-readpixels\nexport function flipRows({data, width, height, bytesPerPixel = 4, temp}) {\n const bytesPerRow = width * bytesPerPixel;\n\n // make a temp buffer to hold one row\n temp = temp || new Uint8Array(bytesPerRow);\n for (let y = 0; y < height / 2; ++y) {\n const topOffset = y * bytesPerRow;\n const bottomOffset = (height - y - 1) * bytesPerRow;\n // make copy of a row on the top half\n temp.set(data.subarray(topOffset, topOffset + bytesPerRow));\n // copy a row from the bottom half to the top\n data.copyWithin(topOffset, bottomOffset, bottomOffset + bytesPerRow);\n // copy the copy of the top half row to the bottom half\n data.set(temp, bottomOffset);\n }\n}\n\nexport function scalePixels({data, width, height}) {\n const newWidth = Math.round(width / 2);\n const newHeight = Math.round(height / 2);\n const newData = new Uint8Array(newWidth * newHeight * 4);\n for (let y = 0; y < newHeight; y++) {\n for (let x = 0; x < newWidth; x++) {\n for (let c = 0; c < 4; c++) {\n newData[(y * newWidth + x) * 4 + c] = data[(y * 2 * width + x * 2) * 4 + c];\n }\n }\n }\n return {data: newData, width: newWidth, height: newHeight};\n}\n"],"file":"typed-array-utils.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luma.gl/webgl",
3
- "version": "8.5.15",
3
+ "version": "8.5.17",
4
4
  "description": "WebGL2 Classes",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -35,10 +35,10 @@
35
35
  },
36
36
  "dependencies": {
37
37
  "@babel/runtime": "^7.0.0",
38
- "@luma.gl/constants": "8.5.15",
39
- "@luma.gl/gltools": "8.5.15",
38
+ "@luma.gl/constants": "8.5.17",
39
+ "@luma.gl/gltools": "8.5.17",
40
40
  "@probe.gl/env": "^3.5.0",
41
- "probe.gl": "^3.4.0"
41
+ "@probe.gl/stats": "^3.5.0"
42
42
  },
43
- "gitHead": "2a9dceee72071b3a6df63e94736c6a68da357efb"
43
+ "gitHead": "d97aab89c8585b92cf6aa68ea32c823568a7329e"
44
44
  }
@@ -442,6 +442,7 @@ export default class Framebuffer extends Resource {
442
442
  }
443
443
  message = message || `Framebuffer ${this.id}`;
444
444
  const image = copyToDataUrl(this, {targetMaxHeight: 100});
445
+ // @ts-expect-error
445
446
  log.image({logLevel, message, image}, message)();
446
447
  return this;
447
448
  }
@@ -1,5 +1,5 @@
1
1
  import {isWebGL2, assertWebGLContext} from '@luma.gl/gltools';
2
- import {lumaStats, StatsManager} from '../init';
2
+ import {lumaStats} from '../init';
3
3
  import {getKey, getKeyValue} from '../webgl-utils/constants-to-keys';
4
4
  import {assert} from '../utils/assert';
5
5
  import {uid} from '../utils/utils';
@@ -44,7 +44,6 @@ export default class Resource {
44
44
  // Only meaningful for resources that allocate GPU memory
45
45
  this.byteLength = 0;
46
46
 
47
- this._initStats();
48
47
  this._addStats();
49
48
  }
50
49
 
@@ -279,10 +278,6 @@ export default class Resource {
279
278
  return this.gl.luma;
280
279
  }
281
280
 
282
- _initStats() {
283
- this.gl.stats = this.gl.stats || new StatsManager();
284
- }
285
-
286
281
  _addStats() {
287
282
  const name = this[Symbol.toStringTag];
288
283
  const stats = lumaStats.get('Resource Counts');
@@ -300,29 +295,26 @@ export default class Resource {
300
295
  }
301
296
 
302
297
  _trackAllocatedMemory(bytes, name = this[Symbol.toStringTag]) {
303
- this._doTrackAllocatedMemory(bytes, name);
304
- this._doTrackAllocatedMemory(bytes, name, this.gl.stats.get(`Memory Usage`));
298
+ this._trackAllocatedMemoryForContext(bytes, name);
299
+ this._trackAllocatedMemoryForContext(bytes, name, this.gl.canvas && this.gl.canvas.id);
305
300
  }
306
301
 
307
- _doTrackAllocatedMemory(
308
- bytes,
309
- name = this[Symbol.toStringTag],
310
- stats = lumaStats.get(`Memory Usage`)
311
- ) {
302
+ _trackAllocatedMemoryForContext(bytes, name = this[Symbol.toStringTag], id = '') {
303
+ const stats = lumaStats.get(`Memory Usage${id}`);
304
+
312
305
  stats.get('GPU Memory').addCount(bytes);
313
306
  stats.get(`${name} Memory`).addCount(bytes);
314
307
  this.byteLength = bytes;
315
308
  }
316
309
 
317
310
  _trackDeallocatedMemory(name = this[Symbol.toStringTag]) {
318
- this._doTrackDeallocatedMemory(name);
319
- this._doTrackDeallocatedMemory(name, this.gl.stats.get(`Memory Usage`));
311
+ this._trackDeallocatedMemoryForContext(name);
312
+ this._trackDeallocatedMemoryForContext(name, this.gl.canvas && this.gl.canvas.id);
320
313
  }
321
314
 
322
- _doTrackDeallocatedMemory(
323
- name = this[Symbol.toStringTag],
324
- stats = lumaStats.get(`Memory Usage`)
325
- ) {
315
+ _trackDeallocatedMemoryForContext(name = this[Symbol.toStringTag], id = '') {
316
+ const stats = lumaStats.get(`Memory Usage${id}`);
317
+
326
318
  stats.get('GPU Memory').subtractCount(this.byteLength);
327
319
  stats.get(`${name} Memory`).subtractCount(this.byteLength);
328
320
  this.byteLength = 0;
@@ -70,7 +70,7 @@ export default class TransformFeedback extends Resource {
70
70
 
71
71
  if (location < 0) {
72
72
  this.unused[locationOrName] = buffer;
73
- log.warn(() => `${this.id} unused varying buffer ${locationOrName}`)();
73
+ log.warn(`${this.id} unused varying buffer ${locationOrName}`)();
74
74
  return this;
75
75
  }
76
76
 
@@ -4,7 +4,7 @@ import Buffer from './buffer';
4
4
  import {isWebGL2} from '@luma.gl/gltools';
5
5
  import {getScratchArray, fillArray} from '../utils/array-utils-flat';
6
6
  import {assert} from '../utils/assert';
7
- import {getBrowser} from 'probe.gl';
7
+ import {getBrowser} from '@probe.gl/env';
8
8
 
9
9
  const ERR_ELEMENTS = 'elements must be GL.ELEMENT_ARRAY_BUFFER';
10
10
 
package/src/init.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import {Stats} from 'probe.gl';
1
+ import {Stats} from '@probe.gl/stats';
2
2
 
3
3
  export class StatsManager {
4
4
  constructor();
package/src/init.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import {log} from '@luma.gl/gltools';
2
- import {Stats} from 'probe.gl';
2
+ import {Stats} from '@probe.gl/stats';
3
3
  import {isBrowser} from '@probe.gl/env';
4
4
 
5
5
  // Version detection using babel plugin
@@ -17,6 +17,7 @@ export function cloneTextureFrom(refTexture, overrides) {
17
17
 
18
18
  const TextureType = refTexture.constructor;
19
19
 
20
+ // @ts-expect-error
20
21
  const {gl, width, height, format, type, dataFormat, border, mipmaps} = refTexture;
21
22
 
22
23
  const textureOptions = Object.assign(
@@ -33,6 +34,7 @@ export function cloneTextureFrom(refTexture, overrides) {
33
34
  );
34
35
 
35
36
  // TODO: move this to `Texture` class as instance method and use this.constructor
37
+ // @ts-expect-error
36
38
  return new TextureType(gl, textureOptions);
37
39
  }
38
40