@codexo/exojs 2.1.0

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 (467) hide show
  1. package/CHANGELOG.md +119 -0
  2. package/README.md +137 -0
  3. package/dist/esm/audio/AbstractMedia.d.ts +45 -0
  4. package/dist/esm/audio/AbstractMedia.js +98 -0
  5. package/dist/esm/audio/AbstractMedia.js.map +1 -0
  6. package/dist/esm/audio/AudioAnalyser.d.ts +30 -0
  7. package/dist/esm/audio/AudioAnalyser.js +82 -0
  8. package/dist/esm/audio/AudioAnalyser.js.map +1 -0
  9. package/dist/esm/audio/Media.d.ts +25 -0
  10. package/dist/esm/audio/Music.d.ts +20 -0
  11. package/dist/esm/audio/Music.js +118 -0
  12. package/dist/esm/audio/Music.js.map +1 -0
  13. package/dist/esm/audio/Sound.d.ts +56 -0
  14. package/dist/esm/audio/Sound.js +393 -0
  15. package/dist/esm/audio/Sound.js.map +1 -0
  16. package/dist/esm/audio/audio-context.d.ts +11 -0
  17. package/dist/esm/audio/audio-context.js +115 -0
  18. package/dist/esm/audio/audio-context.js.map +1 -0
  19. package/dist/esm/audio/index.d.ts +6 -0
  20. package/dist/esm/core/Application.d.ts +76 -0
  21. package/dist/esm/core/Application.js +198 -0
  22. package/dist/esm/core/Application.js.map +1 -0
  23. package/dist/esm/core/Bounds.d.ts +19 -0
  24. package/dist/esm/core/Bounds.js +61 -0
  25. package/dist/esm/core/Bounds.js.map +1 -0
  26. package/dist/esm/core/Clock.d.ts +18 -0
  27. package/dist/esm/core/Clock.js +67 -0
  28. package/dist/esm/core/Clock.js.map +1 -0
  29. package/dist/esm/core/Color.d.ts +176 -0
  30. package/dist/esm/core/Color.js +261 -0
  31. package/dist/esm/core/Color.js.map +1 -0
  32. package/dist/esm/core/Quadtree.d.ts +20 -0
  33. package/dist/esm/core/Quadtree.js +84 -0
  34. package/dist/esm/core/Quadtree.js.map +1 -0
  35. package/dist/esm/core/Scene.d.ts +83 -0
  36. package/dist/esm/core/Scene.js +82 -0
  37. package/dist/esm/core/Scene.js.map +1 -0
  38. package/dist/esm/core/SceneManager.d.ts +66 -0
  39. package/dist/esm/core/SceneManager.js +395 -0
  40. package/dist/esm/core/SceneManager.js.map +1 -0
  41. package/dist/esm/core/SceneNode.d.ts +58 -0
  42. package/dist/esm/core/SceneNode.js +176 -0
  43. package/dist/esm/core/SceneNode.js.map +1 -0
  44. package/dist/esm/core/Signal.d.ts +18 -0
  45. package/dist/esm/core/Signal.js +61 -0
  46. package/dist/esm/core/Signal.js.map +1 -0
  47. package/dist/esm/core/Time.d.ts +38 -0
  48. package/dist/esm/core/Time.js +106 -0
  49. package/dist/esm/core/Time.js.map +1 -0
  50. package/dist/esm/core/Timer.d.ts +12 -0
  51. package/dist/esm/core/Timer.js +33 -0
  52. package/dist/esm/core/Timer.js.map +1 -0
  53. package/dist/esm/core/index.d.ts +13 -0
  54. package/dist/esm/core/types.d.ts +29 -0
  55. package/dist/esm/core/utils.d.ts +22 -0
  56. package/dist/esm/core/utils.js +136 -0
  57. package/dist/esm/core/utils.js.map +1 -0
  58. package/dist/esm/index.d.ts +8 -0
  59. package/dist/esm/index.js +134 -0
  60. package/dist/esm/index.js.map +1 -0
  61. package/dist/esm/input/ArcadeStickGamepadMapping.d.ts +5 -0
  62. package/dist/esm/input/ArcadeStickGamepadMapping.js +29 -0
  63. package/dist/esm/input/ArcadeStickGamepadMapping.js.map +1 -0
  64. package/dist/esm/input/GameCubeGamepadMapping.d.ts +5 -0
  65. package/dist/esm/input/GameCubeGamepadMapping.js +12 -0
  66. package/dist/esm/input/GameCubeGamepadMapping.js.map +1 -0
  67. package/dist/esm/input/Gamepad.d.ts +45 -0
  68. package/dist/esm/input/Gamepad.js +150 -0
  69. package/dist/esm/input/Gamepad.js.map +1 -0
  70. package/dist/esm/input/GamepadChannels.d.ts +39 -0
  71. package/dist/esm/input/GamepadChannels.js +43 -0
  72. package/dist/esm/input/GamepadChannels.js.map +1 -0
  73. package/dist/esm/input/GamepadControl.d.ts +15 -0
  74. package/dist/esm/input/GamepadControl.js +24 -0
  75. package/dist/esm/input/GamepadControl.js.map +1 -0
  76. package/dist/esm/input/GamepadDefinitions.d.ts +31 -0
  77. package/dist/esm/input/GamepadDefinitions.js +175 -0
  78. package/dist/esm/input/GamepadDefinitions.js.map +1 -0
  79. package/dist/esm/input/GamepadMapping.d.ts +23 -0
  80. package/dist/esm/input/GamepadMapping.js +30 -0
  81. package/dist/esm/input/GamepadMapping.js.map +1 -0
  82. package/dist/esm/input/GamepadPromptLayouts.d.ts +9 -0
  83. package/dist/esm/input/GamepadPromptLayouts.js +140 -0
  84. package/dist/esm/input/GamepadPromptLayouts.js.map +1 -0
  85. package/dist/esm/input/GenericDualAnalogGamepadMapping.d.ts +5 -0
  86. package/dist/esm/input/GenericDualAnalogGamepadMapping.js +53 -0
  87. package/dist/esm/input/GenericDualAnalogGamepadMapping.js.map +1 -0
  88. package/dist/esm/input/Input.d.ts +28 -0
  89. package/dist/esm/input/Input.js +67 -0
  90. package/dist/esm/input/Input.js.map +1 -0
  91. package/dist/esm/input/InputManager.d.ts +76 -0
  92. package/dist/esm/input/InputManager.js +342 -0
  93. package/dist/esm/input/InputManager.js.map +1 -0
  94. package/dist/esm/input/JoyConLeftGamepadMapping.d.ts +5 -0
  95. package/dist/esm/input/JoyConLeftGamepadMapping.js +12 -0
  96. package/dist/esm/input/JoyConLeftGamepadMapping.js.map +1 -0
  97. package/dist/esm/input/JoyConRightGamepadMapping.d.ts +5 -0
  98. package/dist/esm/input/JoyConRightGamepadMapping.js +12 -0
  99. package/dist/esm/input/JoyConRightGamepadMapping.js.map +1 -0
  100. package/dist/esm/input/PlayStationGamepadMapping.d.ts +5 -0
  101. package/dist/esm/input/PlayStationGamepadMapping.js +12 -0
  102. package/dist/esm/input/PlayStationGamepadMapping.js.map +1 -0
  103. package/dist/esm/input/Pointer.d.ts +52 -0
  104. package/dist/esm/input/Pointer.js +118 -0
  105. package/dist/esm/input/Pointer.js.map +1 -0
  106. package/dist/esm/input/SteamControllerGamepadMapping.d.ts +5 -0
  107. package/dist/esm/input/SteamControllerGamepadMapping.js +12 -0
  108. package/dist/esm/input/SteamControllerGamepadMapping.js.map +1 -0
  109. package/dist/esm/input/SwitchProGamepadMapping.d.ts +5 -0
  110. package/dist/esm/input/SwitchProGamepadMapping.js +12 -0
  111. package/dist/esm/input/SwitchProGamepadMapping.js.map +1 -0
  112. package/dist/esm/input/XboxGamepadMapping.d.ts +5 -0
  113. package/dist/esm/input/XboxGamepadMapping.js +12 -0
  114. package/dist/esm/input/XboxGamepadMapping.js.map +1 -0
  115. package/dist/esm/input/index.d.ts +19 -0
  116. package/dist/esm/input/types.d.ts +111 -0
  117. package/dist/esm/input/types.js +111 -0
  118. package/dist/esm/input/types.js.map +1 -0
  119. package/dist/esm/math/AbstractVector.d.ts +33 -0
  120. package/dist/esm/math/AbstractVector.js +106 -0
  121. package/dist/esm/math/AbstractVector.js.map +1 -0
  122. package/dist/esm/math/Circle.d.ts +41 -0
  123. package/dist/esm/math/Circle.js +134 -0
  124. package/dist/esm/math/Circle.js.map +1 -0
  125. package/dist/esm/math/CircleLike.d.ts +5 -0
  126. package/dist/esm/math/Collision.d.ts +28 -0
  127. package/dist/esm/math/Ellipse.d.ts +37 -0
  128. package/dist/esm/math/Ellipse.js +109 -0
  129. package/dist/esm/math/Ellipse.js.map +1 -0
  130. package/dist/esm/math/EllipseLike.d.ts +6 -0
  131. package/dist/esm/math/Flags.d.ts +12 -0
  132. package/dist/esm/math/Flags.js +41 -0
  133. package/dist/esm/math/Flags.js.map +1 -0
  134. package/dist/esm/math/Interval.d.ts +16 -0
  135. package/dist/esm/math/Interval.js +43 -0
  136. package/dist/esm/math/Interval.js.map +1 -0
  137. package/dist/esm/math/Line.d.ts +36 -0
  138. package/dist/esm/math/Line.js +111 -0
  139. package/dist/esm/math/Line.js.map +1 -0
  140. package/dist/esm/math/LineLike.d.ts +6 -0
  141. package/dist/esm/math/Matrix.d.ts +32 -0
  142. package/dist/esm/math/Matrix.js +125 -0
  143. package/dist/esm/math/Matrix.js.map +1 -0
  144. package/dist/esm/math/ObservableSize.d.ts +16 -0
  145. package/dist/esm/math/ObservableSize.js +55 -0
  146. package/dist/esm/math/ObservableSize.js.map +1 -0
  147. package/dist/esm/math/ObservableVector.d.ts +21 -0
  148. package/dist/esm/math/ObservableVector.js +71 -0
  149. package/dist/esm/math/ObservableVector.js.map +1 -0
  150. package/dist/esm/math/PointLike.d.ts +4 -0
  151. package/dist/esm/math/PolarVector.d.ts +8 -0
  152. package/dist/esm/math/PolarVector.js +17 -0
  153. package/dist/esm/math/PolarVector.js.map +1 -0
  154. package/dist/esm/math/Polygon.d.ts +38 -0
  155. package/dist/esm/math/Polygon.js +161 -0
  156. package/dist/esm/math/Polygon.js.map +1 -0
  157. package/dist/esm/math/PolygonLike.d.ts +6 -0
  158. package/dist/esm/math/Random.d.ts +15 -0
  159. package/dist/esm/math/Random.js +72 -0
  160. package/dist/esm/math/Random.js.map +1 -0
  161. package/dist/esm/math/Rectangle.d.ts +48 -0
  162. package/dist/esm/math/Rectangle.js +205 -0
  163. package/dist/esm/math/Rectangle.js.map +1 -0
  164. package/dist/esm/math/RectangleLike.d.ts +6 -0
  165. package/dist/esm/math/Segment.d.ts +25 -0
  166. package/dist/esm/math/Segment.js +77 -0
  167. package/dist/esm/math/Segment.js.map +1 -0
  168. package/dist/esm/math/ShapeLike.d.ts +4 -0
  169. package/dist/esm/math/Size.d.ts +24 -0
  170. package/dist/esm/math/Size.js +69 -0
  171. package/dist/esm/math/Size.js.map +1 -0
  172. package/dist/esm/math/Transformable.d.ts +47 -0
  173. package/dist/esm/math/Transformable.js +142 -0
  174. package/dist/esm/math/Transformable.js.map +1 -0
  175. package/dist/esm/math/Vector.d.ts +28 -0
  176. package/dist/esm/math/Vector.js +77 -0
  177. package/dist/esm/math/Vector.js.map +1 -0
  178. package/dist/esm/math/collision-detection.d.ts +41 -0
  179. package/dist/esm/math/collision-detection.js +394 -0
  180. package/dist/esm/math/collision-detection.js.map +1 -0
  181. package/dist/esm/math/collision-primitives.d.ts +39 -0
  182. package/dist/esm/math/collision-primitives.js +164 -0
  183. package/dist/esm/math/collision-primitives.js.map +1 -0
  184. package/dist/esm/math/geometry.d.ts +8 -0
  185. package/dist/esm/math/geometry.js +195 -0
  186. package/dist/esm/math/geometry.js.map +1 -0
  187. package/dist/esm/math/index.d.ts +27 -0
  188. package/dist/esm/math/utils.d.ts +21 -0
  189. package/dist/esm/math/utils.js +54 -0
  190. package/dist/esm/math/utils.js.map +1 -0
  191. package/dist/esm/particles/Particle.d.ts +40 -0
  192. package/dist/esm/particles/Particle.js +108 -0
  193. package/dist/esm/particles/Particle.js.map +1 -0
  194. package/dist/esm/particles/ParticleProperties.d.ts +14 -0
  195. package/dist/esm/particles/ParticleSystem.d.ts +43 -0
  196. package/dist/esm/particles/ParticleSystem.js +185 -0
  197. package/dist/esm/particles/ParticleSystem.js.map +1 -0
  198. package/dist/esm/particles/affectors/ColorAffector.d.ts +17 -0
  199. package/dist/esm/particles/affectors/ColorAffector.js +40 -0
  200. package/dist/esm/particles/affectors/ColorAffector.js.map +1 -0
  201. package/dist/esm/particles/affectors/ForceAffector.d.ts +13 -0
  202. package/dist/esm/particles/affectors/ForceAffector.js +27 -0
  203. package/dist/esm/particles/affectors/ForceAffector.js.map +1 -0
  204. package/dist/esm/particles/affectors/ParticleAffector.d.ts +6 -0
  205. package/dist/esm/particles/affectors/ScaleAffector.d.ts +13 -0
  206. package/dist/esm/particles/affectors/ScaleAffector.js +27 -0
  207. package/dist/esm/particles/affectors/ScaleAffector.js.map +1 -0
  208. package/dist/esm/particles/affectors/TorqueAffector.d.ts +12 -0
  209. package/dist/esm/particles/affectors/TorqueAffector.js +25 -0
  210. package/dist/esm/particles/affectors/TorqueAffector.js.map +1 -0
  211. package/dist/esm/particles/emitters/ParticleEmitter.d.ts +6 -0
  212. package/dist/esm/particles/emitters/ParticleOptions.d.ts +35 -0
  213. package/dist/esm/particles/emitters/ParticleOptions.js +84 -0
  214. package/dist/esm/particles/emitters/ParticleOptions.js.map +1 -0
  215. package/dist/esm/particles/emitters/UniversalEmitter.d.ts +17 -0
  216. package/dist/esm/particles/emitters/UniversalEmitter.js +43 -0
  217. package/dist/esm/particles/emitters/UniversalEmitter.js.map +1 -0
  218. package/dist/esm/particles/index.d.ts +11 -0
  219. package/dist/esm/physics/RapierPhysicsWorld.d.ts +136 -0
  220. package/dist/esm/physics/RapierPhysicsWorld.js +464 -0
  221. package/dist/esm/physics/RapierPhysicsWorld.js.map +1 -0
  222. package/dist/esm/physics/index.d.ts +1 -0
  223. package/dist/esm/rendering/CallbackRenderPass.d.ts +7 -0
  224. package/dist/esm/rendering/CallbackRenderPass.js +11 -0
  225. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -0
  226. package/dist/esm/rendering/Container.d.ts +36 -0
  227. package/dist/esm/rendering/Container.js +197 -0
  228. package/dist/esm/rendering/Container.js.map +1 -0
  229. package/dist/esm/rendering/Drawable.d.ts +16 -0
  230. package/dist/esm/rendering/Drawable.js +57 -0
  231. package/dist/esm/rendering/Drawable.js.map +1 -0
  232. package/dist/esm/rendering/RenderBackendType.d.ts +4 -0
  233. package/dist/esm/rendering/RenderBackendType.js +8 -0
  234. package/dist/esm/rendering/RenderBackendType.js.map +1 -0
  235. package/dist/esm/rendering/RenderNode.d.ts +51 -0
  236. package/dist/esm/rendering/RenderNode.js +238 -0
  237. package/dist/esm/rendering/RenderNode.js.map +1 -0
  238. package/dist/esm/rendering/RenderPass.d.ts +4 -0
  239. package/dist/esm/rendering/RenderStats.d.ts +12 -0
  240. package/dist/esm/rendering/RenderStats.js +24 -0
  241. package/dist/esm/rendering/RenderStats.js.map +1 -0
  242. package/dist/esm/rendering/RenderTarget.d.ts +34 -0
  243. package/dist/esm/rendering/RenderTarget.js +105 -0
  244. package/dist/esm/rendering/RenderTarget.js.map +1 -0
  245. package/dist/esm/rendering/RenderTargetPass.d.ts +18 -0
  246. package/dist/esm/rendering/RenderTargetPass.js +27 -0
  247. package/dist/esm/rendering/RenderTargetPass.js.map +1 -0
  248. package/dist/esm/rendering/Renderer.d.ts +15 -0
  249. package/dist/esm/rendering/RendererRegistry.d.ts +43 -0
  250. package/dist/esm/rendering/RendererRegistry.js +88 -0
  251. package/dist/esm/rendering/RendererRegistry.js.map +1 -0
  252. package/dist/esm/rendering/SceneRenderRuntime.d.ts +29 -0
  253. package/dist/esm/rendering/View.d.ts +102 -0
  254. package/dist/esm/rendering/View.js +360 -0
  255. package/dist/esm/rendering/View.js.map +1 -0
  256. package/dist/esm/rendering/filters/BlurFilter.d.ts +20 -0
  257. package/dist/esm/rendering/filters/BlurFilter.js +68 -0
  258. package/dist/esm/rendering/filters/BlurFilter.js.map +1 -0
  259. package/dist/esm/rendering/filters/ColorFilter.d.ts +12 -0
  260. package/dist/esm/rendering/filters/ColorFilter.js +41 -0
  261. package/dist/esm/rendering/filters/ColorFilter.js.map +1 -0
  262. package/dist/esm/rendering/filters/Filter.d.ts +5 -0
  263. package/dist/esm/rendering/filters/Filter.js +5 -0
  264. package/dist/esm/rendering/filters/Filter.js.map +1 -0
  265. package/dist/esm/rendering/index.d.ts +52 -0
  266. package/dist/esm/rendering/primitives/CircleGeometry.d.ts +4 -0
  267. package/dist/esm/rendering/primitives/CircleGeometry.js +21 -0
  268. package/dist/esm/rendering/primitives/CircleGeometry.js.map +1 -0
  269. package/dist/esm/rendering/primitives/DrawableShape.d.ts +11 -0
  270. package/dist/esm/rendering/primitives/DrawableShape.js +18 -0
  271. package/dist/esm/rendering/primitives/DrawableShape.js.map +1 -0
  272. package/dist/esm/rendering/primitives/Geometry.d.ts +13 -0
  273. package/dist/esm/rendering/primitives/Geometry.js +13 -0
  274. package/dist/esm/rendering/primitives/Geometry.js.map +1 -0
  275. package/dist/esm/rendering/primitives/Graphics.d.ts +36 -0
  276. package/dist/esm/rendering/primitives/Graphics.js +211 -0
  277. package/dist/esm/rendering/primitives/Graphics.js.map +1 -0
  278. package/dist/esm/rendering/shader/Shader.d.ts +27 -0
  279. package/dist/esm/rendering/shader/Shader.js +61 -0
  280. package/dist/esm/rendering/shader/Shader.js.map +1 -0
  281. package/dist/esm/rendering/shader/ShaderAttribute.d.ts +9 -0
  282. package/dist/esm/rendering/shader/ShaderAttribute.js +17 -0
  283. package/dist/esm/rendering/shader/ShaderAttribute.js.map +1 -0
  284. package/dist/esm/rendering/shader/ShaderUniform.d.ts +16 -0
  285. package/dist/esm/rendering/shader/ShaderUniform.js +33 -0
  286. package/dist/esm/rendering/shader/ShaderUniform.js.map +1 -0
  287. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +43 -0
  288. package/dist/esm/rendering/sprite/AnimatedSprite.js +177 -0
  289. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -0
  290. package/dist/esm/rendering/sprite/Sprite.d.ts +43 -0
  291. package/dist/esm/rendering/sprite/Sprite.js +169 -0
  292. package/dist/esm/rendering/sprite/Sprite.js.map +1 -0
  293. package/dist/esm/rendering/sprite/Spritesheet.d.ts +34 -0
  294. package/dist/esm/rendering/sprite/Spritesheet.js +87 -0
  295. package/dist/esm/rendering/sprite/Spritesheet.js.map +1 -0
  296. package/dist/esm/rendering/text/Text.d.ts +26 -0
  297. package/dist/esm/rendering/text/Text.js +126 -0
  298. package/dist/esm/rendering/text/Text.js.map +1 -0
  299. package/dist/esm/rendering/text/TextStyle.d.ts +65 -0
  300. package/dist/esm/rendering/text/TextStyle.js +179 -0
  301. package/dist/esm/rendering/text/TextStyle.js.map +1 -0
  302. package/dist/esm/rendering/texture/RenderTexture.d.ts +36 -0
  303. package/dist/esm/rendering/texture/RenderTexture.js +118 -0
  304. package/dist/esm/rendering/texture/RenderTexture.js.map +1 -0
  305. package/dist/esm/rendering/texture/Sampler.d.ts +29 -0
  306. package/dist/esm/rendering/texture/Sampler.js +69 -0
  307. package/dist/esm/rendering/texture/Sampler.js.map +1 -0
  308. package/dist/esm/rendering/texture/Texture.d.ts +52 -0
  309. package/dist/esm/rendering/texture/Texture.js +171 -0
  310. package/dist/esm/rendering/texture/Texture.js.map +1 -0
  311. package/dist/esm/rendering/types.d.ts +68 -0
  312. package/dist/esm/rendering/types.js +79 -0
  313. package/dist/esm/rendering/types.js.map +1 -0
  314. package/dist/esm/rendering/utils.d.ts +9 -0
  315. package/dist/esm/rendering/utils.js +39 -0
  316. package/dist/esm/rendering/utils.js.map +1 -0
  317. package/dist/esm/rendering/video/Video.d.ts +62 -0
  318. package/dist/esm/rendering/video/Video.js +288 -0
  319. package/dist/esm/rendering/video/Video.js.map +1 -0
  320. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.d.ts +49 -0
  321. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js +168 -0
  322. package/dist/esm/rendering/webgl2/AbstractWebGl2BatchedRenderer.js.map +1 -0
  323. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.d.ts +44 -0
  324. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js +59 -0
  325. package/dist/esm/rendering/webgl2/AbstractWebGl2Renderer.js.map +1 -0
  326. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +11 -0
  327. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +110 -0
  328. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +1 -0
  329. package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.d.ts +26 -0
  330. package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.js +211 -0
  331. package/dist/esm/rendering/webgl2/WebGl2PrimitiveRenderer.js.map +1 -0
  332. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.d.ts +26 -0
  333. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js +52 -0
  334. package/dist/esm/rendering/webgl2/WebGl2RenderBuffer.js.map +1 -0
  335. package/dist/esm/rendering/webgl2/WebGl2RenderManager.d.ts +99 -0
  336. package/dist/esm/rendering/webgl2/WebGl2RenderManager.js +592 -0
  337. package/dist/esm/rendering/webgl2/WebGl2RenderManager.js.map +1 -0
  338. package/dist/esm/rendering/webgl2/WebGl2RendererRuntime.d.ts +15 -0
  339. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.d.ts +17 -0
  340. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js +55 -0
  341. package/dist/esm/rendering/webgl2/WebGl2ShaderBlock.js.map +1 -0
  342. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.d.ts +3 -0
  343. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js +59 -0
  344. package/dist/esm/rendering/webgl2/WebGl2ShaderMappings.js.map +1 -0
  345. package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.d.ts +2 -0
  346. package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.js +154 -0
  347. package/dist/esm/rendering/webgl2/WebGl2ShaderRuntime.js.map +1 -0
  348. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +11 -0
  349. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +82 -0
  350. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -0
  351. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.d.ts +40 -0
  352. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.js +68 -0
  353. package/dist/esm/rendering/webgl2/WebGl2VertexArrayObject.js.map +1 -0
  354. package/dist/esm/rendering/webgl2/glsl/particle.frag.js +4 -0
  355. package/dist/esm/rendering/webgl2/glsl/particle.frag.js.map +1 -0
  356. package/dist/esm/rendering/webgl2/glsl/particle.vert.js +4 -0
  357. package/dist/esm/rendering/webgl2/glsl/particle.vert.js.map +1 -0
  358. package/dist/esm/rendering/webgl2/glsl/primitive.frag.js +4 -0
  359. package/dist/esm/rendering/webgl2/glsl/primitive.frag.js.map +1 -0
  360. package/dist/esm/rendering/webgl2/glsl/primitive.vert.js +4 -0
  361. package/dist/esm/rendering/webgl2/glsl/primitive.vert.js.map +1 -0
  362. package/dist/esm/rendering/webgl2/glsl/sprite.frag.js +4 -0
  363. package/dist/esm/rendering/webgl2/glsl/sprite.frag.js.map +1 -0
  364. package/dist/esm/rendering/webgl2/glsl/sprite.vert.js +4 -0
  365. package/dist/esm/rendering/webgl2/glsl/sprite.vert.js.map +1 -0
  366. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.d.ts +28 -0
  367. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js +52 -0
  368. package/dist/esm/rendering/webgpu/AbstractWebGpuRenderer.js.map +1 -0
  369. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts +6 -0
  370. package/dist/esm/rendering/webgpu/WebGpuBlendState.js +79 -0
  371. package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -0
  372. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +33 -0
  373. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +423 -0
  374. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -0
  375. package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.d.ts +43 -0
  376. package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.js +425 -0
  377. package/dist/esm/rendering/webgpu/WebGpuPrimitiveRenderer.js.map +1 -0
  378. package/dist/esm/rendering/webgpu/WebGpuRenderManager.d.ts +111 -0
  379. package/dist/esm/rendering/webgpu/WebGpuRenderManager.js +763 -0
  380. package/dist/esm/rendering/webgpu/WebGpuRenderManager.js.map +1 -0
  381. package/dist/esm/rendering/webgpu/WebGpuRendererRuntime.d.ts +8 -0
  382. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +33 -0
  383. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +488 -0
  384. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -0
  385. package/dist/esm/resources/AbstractAssetFactory.d.ts +10 -0
  386. package/dist/esm/resources/AbstractAssetFactory.js +26 -0
  387. package/dist/esm/resources/AbstractAssetFactory.js.map +1 -0
  388. package/dist/esm/resources/AssetFactory.d.ts +6 -0
  389. package/dist/esm/resources/AssetManifest.d.ts +28 -0
  390. package/dist/esm/resources/AssetManifest.js +64 -0
  391. package/dist/esm/resources/AssetManifest.js.map +1 -0
  392. package/dist/esm/resources/CacheFirstStrategy.d.ts +5 -0
  393. package/dist/esm/resources/CacheFirstStrategy.js +34 -0
  394. package/dist/esm/resources/CacheFirstStrategy.js.map +1 -0
  395. package/dist/esm/resources/CacheStore.d.ts +7 -0
  396. package/dist/esm/resources/CacheStrategy.d.ts +12 -0
  397. package/dist/esm/resources/Database.d.ts +13 -0
  398. package/dist/esm/resources/FactoryRegistry.d.ts +9 -0
  399. package/dist/esm/resources/FactoryRegistry.js +44 -0
  400. package/dist/esm/resources/FactoryRegistry.js.map +1 -0
  401. package/dist/esm/resources/IndexedDbDatabase.d.ts +21 -0
  402. package/dist/esm/resources/IndexedDbDatabase.js +139 -0
  403. package/dist/esm/resources/IndexedDbDatabase.js.map +1 -0
  404. package/dist/esm/resources/IndexedDbStore.d.ts +16 -0
  405. package/dist/esm/resources/IndexedDbStore.js +31 -0
  406. package/dist/esm/resources/IndexedDbStore.js.map +1 -0
  407. package/dist/esm/resources/Loader.d.ts +88 -0
  408. package/dist/esm/resources/Loader.js +597 -0
  409. package/dist/esm/resources/Loader.js.map +1 -0
  410. package/dist/esm/resources/NetworkOnlyStrategy.d.ts +5 -0
  411. package/dist/esm/resources/NetworkOnlyStrategy.js +12 -0
  412. package/dist/esm/resources/NetworkOnlyStrategy.js.map +1 -0
  413. package/dist/esm/resources/factories/BinaryFactory.d.ts +6 -0
  414. package/dist/esm/resources/factories/BinaryFactory.js +17 -0
  415. package/dist/esm/resources/factories/BinaryFactory.js.map +1 -0
  416. package/dist/esm/resources/factories/FontFactory.d.ts +13 -0
  417. package/dist/esm/resources/factories/FontFactory.js +39 -0
  418. package/dist/esm/resources/factories/FontFactory.js.map +1 -0
  419. package/dist/esm/resources/factories/ImageFactory.d.ts +10 -0
  420. package/dist/esm/resources/factories/ImageFactory.js +38 -0
  421. package/dist/esm/resources/factories/ImageFactory.js.map +1 -0
  422. package/dist/esm/resources/factories/JsonFactory.d.ts +6 -0
  423. package/dist/esm/resources/factories/JsonFactory.js +17 -0
  424. package/dist/esm/resources/factories/JsonFactory.js.map +1 -0
  425. package/dist/esm/resources/factories/MusicFactory.d.ts +16 -0
  426. package/dist/esm/resources/factories/MusicFactory.js +40 -0
  427. package/dist/esm/resources/factories/MusicFactory.js.map +1 -0
  428. package/dist/esm/resources/factories/SoundFactory.d.ts +14 -0
  429. package/dist/esm/resources/factories/SoundFactory.js +25 -0
  430. package/dist/esm/resources/factories/SoundFactory.js.map +1 -0
  431. package/dist/esm/resources/factories/SvgFactory.d.ts +6 -0
  432. package/dist/esm/resources/factories/SvgFactory.js +37 -0
  433. package/dist/esm/resources/factories/SvgFactory.js.map +1 -0
  434. package/dist/esm/resources/factories/TextFactory.d.ts +6 -0
  435. package/dist/esm/resources/factories/TextFactory.js +17 -0
  436. package/dist/esm/resources/factories/TextFactory.js.map +1 -0
  437. package/dist/esm/resources/factories/TextureFactory.d.ts +13 -0
  438. package/dist/esm/resources/factories/TextureFactory.js +40 -0
  439. package/dist/esm/resources/factories/TextureFactory.js.map +1 -0
  440. package/dist/esm/resources/factories/VideoFactory.d.ts +18 -0
  441. package/dist/esm/resources/factories/VideoFactory.js +43 -0
  442. package/dist/esm/resources/factories/VideoFactory.js.map +1 -0
  443. package/dist/esm/resources/factories/VttFactory.d.ts +6 -0
  444. package/dist/esm/resources/factories/VttFactory.js +60 -0
  445. package/dist/esm/resources/factories/VttFactory.js.map +1 -0
  446. package/dist/esm/resources/factories/WasmFactory.d.ts +6 -0
  447. package/dist/esm/resources/factories/WasmFactory.js +17 -0
  448. package/dist/esm/resources/factories/WasmFactory.js.map +1 -0
  449. package/dist/esm/resources/index.d.ts +26 -0
  450. package/dist/esm/resources/tokens.d.ts +30 -0
  451. package/dist/esm/resources/tokens.js +33 -0
  452. package/dist/esm/resources/tokens.js.map +1 -0
  453. package/dist/esm/resources/utils.d.ts +1 -0
  454. package/dist/esm/resources/utils.js +129 -0
  455. package/dist/esm/resources/utils.js.map +1 -0
  456. package/dist/esm/vendor/webgl-debug.js +1160 -0
  457. package/dist/esm/vendor/webgl-debug.js.map +1 -0
  458. package/dist/exo.d.ts +4748 -0
  459. package/dist/exo.esm.js +16850 -0
  460. package/dist/exo.esm.js.map +1 -0
  461. package/dist/exo.esm.min.js +2 -0
  462. package/dist/exo.esm.min.js.map +1 -0
  463. package/dist/exo.global.js +17067 -0
  464. package/dist/exo.global.js.map +1 -0
  465. package/dist/exo.global.min.js +2 -0
  466. package/dist/exo.global.min.js.map +1 -0
  467. package/package.json +99 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl-debug.js","sources":["../../../src/vendor/webgl-debug.js"],"sourcesContent":["/*\r\n** Copyright (c) 2012 The Khronos Group Inc.\r\n**\r\n** Permission is hereby granted, free of charge, to any person obtaining a\r\n** copy of this software and/or associated documentation files (the\r\n** \"Materials\"), to deal in the Materials without restriction, including\r\n** without limitation the rights to use, copy, modify, merge, publish,\r\n** distribute, sublicense, and/or sell copies of the Materials, and to\r\n** permit persons to whom the Materials are furnished to do so, subject to\r\n** the following conditions:\r\n**\r\n** The above copyright notice and this permission notice shall be included\r\n** in all copies or substantial portions of the Materials.\r\n**\r\n** THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.\r\n*/\r\n\r\n// Various functions for helping debug WebGL apps.\r\n\r\nconst WebGLDebugUtils = function() {\r\n\r\n /**\r\n * Wrapped logging function.\r\n * @param {string} msg Message to log.\r\n */\r\n var log = function(msg) {\r\n if (window.console && window.console.log) {\r\n window.console.log(msg);\r\n }\r\n };\r\n\r\n /**\r\n * Wrapped error logging function.\r\n * @param {string} msg Message to log.\r\n */\r\n var error = function(msg) {\r\n if (window.console && window.console.error) {\r\n window.console.error(msg);\r\n } else {\r\n log(msg);\r\n }\r\n };\r\n\r\n\r\n /**\r\n * Which arguments are enums based on the number of arguments to the function.\r\n * So\r\n * 'texImage2D': {\r\n * 9: { 0:true, 2:true, 6:true, 7:true },\r\n * 6: { 0:true, 2:true, 3:true, 4:true },\r\n * },\r\n *\r\n * means if there are 9 arguments then 6 and 7 are enums, if there are 6\r\n * arguments 3 and 4 are enums\r\n *\r\n * @type {!Object.<number, !Object.<number, string>}\r\n */\r\n var glValidEnumContexts = {\r\n // Generic setters and getters\r\n\r\n 'enable': {1: { 0:true }},\r\n 'disable': {1: { 0:true }},\r\n 'getParameter': {1: { 0:true }},\r\n\r\n // Rendering\r\n\r\n 'drawArrays': {3:{ 0:true }},\r\n 'drawElements': {4:{ 0:true, 2:true }},\r\n\r\n // Shaders\r\n\r\n 'createShader': {1: { 0:true }},\r\n 'getShaderParameter': {2: { 1:true }},\r\n 'getProgramParameter': {2: { 1:true }},\r\n 'getShaderPrecisionFormat': {2: { 0: true, 1:true }},\r\n\r\n // Vertex attributes\r\n\r\n 'getVertexAttrib': {2: { 1:true }},\r\n 'vertexAttribPointer': {6: { 2:true }},\r\n\r\n // Textures\r\n\r\n 'bindTexture': {2: { 0:true }},\r\n 'activeTexture': {1: { 0:true }},\r\n 'getTexParameter': {2: { 0:true, 1:true }},\r\n 'texParameterf': {3: { 0:true, 1:true }},\r\n 'texParameteri': {3: { 0:true, 1:true, 2:true }},\r\n // texImage2D and texSubImage2D are defined below with WebGL 2 entrypoints\r\n 'copyTexImage2D': {8: { 0:true, 2:true }},\r\n 'copyTexSubImage2D': {8: { 0:true }},\r\n 'generateMipmap': {1: { 0:true }},\r\n // compressedTexImage2D and compressedTexSubImage2D are defined below with WebGL 2 entrypoints\r\n\r\n // Buffer objects\r\n\r\n 'bindBuffer': {2: { 0:true }},\r\n // bufferData and bufferSubData are defined below with WebGL 2 entrypoints\r\n 'getBufferParameter': {2: { 0:true, 1:true }},\r\n\r\n // Renderbuffers and framebuffers\r\n\r\n 'pixelStorei': {2: { 0:true, 1:true }},\r\n // readPixels is defined below with WebGL 2 entrypoints\r\n 'bindRenderbuffer': {2: { 0:true }},\r\n 'bindFramebuffer': {2: { 0:true }},\r\n 'checkFramebufferStatus': {1: { 0:true }},\r\n 'framebufferRenderbuffer': {4: { 0:true, 1:true, 2:true }},\r\n 'framebufferTexture2D': {5: { 0:true, 1:true, 2:true }},\r\n 'getFramebufferAttachmentParameter': {3: { 0:true, 1:true, 2:true }},\r\n 'getRenderbufferParameter': {2: { 0:true, 1:true }},\r\n 'renderbufferStorage': {4: { 0:true, 1:true }},\r\n\r\n // Frame buffer operations (clear, blend, depth test, stencil)\r\n\r\n 'clear': {1: { 0: { 'enumBitwiseOr': ['COLOR_BUFFER_BIT', 'DEPTH_BUFFER_BIT', 'STENCIL_BUFFER_BIT'] }}},\r\n 'depthFunc': {1: { 0:true }},\r\n 'blendFunc': {2: { 0:true, 1:true }},\r\n 'blendFuncSeparate': {4: { 0:true, 1:true, 2:true, 3:true }},\r\n 'blendEquation': {1: { 0:true }},\r\n 'blendEquationSeparate': {2: { 0:true, 1:true }},\r\n 'stencilFunc': {3: { 0:true }},\r\n 'stencilFuncSeparate': {4: { 0:true, 1:true }},\r\n 'stencilMaskSeparate': {2: { 0:true }},\r\n 'stencilOp': {3: { 0:true, 1:true, 2:true }},\r\n 'stencilOpSeparate': {4: { 0:true, 1:true, 2:true, 3:true }},\r\n\r\n // Culling\r\n\r\n 'cullFace': {1: { 0:true }},\r\n 'frontFace': {1: { 0:true }},\r\n\r\n // ANGLE_instanced_arrays extension\r\n\r\n 'drawArraysInstancedANGLE': {4: { 0:true }},\r\n 'drawElementsInstancedANGLE': {5: { 0:true, 2:true }},\r\n\r\n // EXT_blend_minmax extension\r\n\r\n 'blendEquationEXT': {1: { 0:true }},\r\n\r\n // WebGL 2 Buffer objects\r\n\r\n 'bufferData': {\r\n 3: { 0:true, 2:true }, // WebGL 1\r\n 4: { 0:true, 2:true }, // WebGL 2\r\n 5: { 0:true, 2:true } // WebGL 2\r\n },\r\n 'bufferSubData': {\r\n 3: { 0:true }, // WebGL 1\r\n 4: { 0:true }, // WebGL 2\r\n 5: { 0:true } // WebGL 2\r\n },\r\n 'copyBufferSubData': {5: { 0:true, 1:true }},\r\n 'getBufferSubData': {3: { 0:true }, 4: { 0:true }, 5: { 0:true }},\r\n\r\n // WebGL 2 Framebuffer objects\r\n\r\n 'blitFramebuffer': {10: { 8: { 'enumBitwiseOr': ['COLOR_BUFFER_BIT', 'DEPTH_BUFFER_BIT', 'STENCIL_BUFFER_BIT'] }, 9:true }},\r\n 'framebufferTextureLayer': {5: { 0:true, 1:true }},\r\n 'invalidateFramebuffer': {2: { 0:true }},\r\n 'invalidateSubFramebuffer': {6: { 0:true }},\r\n 'readBuffer': {1: { 0:true }},\r\n\r\n // WebGL 2 Renderbuffer objects\r\n\r\n 'getInternalformatParameter': {3: { 0:true, 1:true, 2:true }},\r\n 'renderbufferStorageMultisample': {5: { 0:true, 2:true }},\r\n\r\n // WebGL 2 Texture objects\r\n\r\n 'texStorage2D': {5: { 0:true, 2:true }},\r\n 'texStorage3D': {6: { 0:true, 2:true }},\r\n 'texImage2D': {\r\n 9: { 0:true, 2:true, 6:true, 7:true }, // WebGL 1 & 2\r\n 6: { 0:true, 2:true, 3:true, 4:true }, // WebGL 1\r\n 10: { 0:true, 2:true, 6:true, 7:true } // WebGL 2\r\n },\r\n 'texImage3D': {\r\n 10: { 0:true, 2:true, 7:true, 8:true },\r\n 11: { 0:true, 2:true, 7:true, 8:true }\r\n },\r\n 'texSubImage2D': {\r\n 9: { 0:true, 6:true, 7:true }, // WebGL 1 & 2\r\n 7: { 0:true, 4:true, 5:true }, // WebGL 1\r\n 10: { 0:true, 6:true, 7:true } // WebGL 2\r\n },\r\n 'texSubImage3D': {\r\n 11: { 0:true, 8:true, 9:true },\r\n 12: { 0:true, 8:true, 9:true }\r\n },\r\n 'copyTexSubImage3D': {9: { 0:true }},\r\n 'compressedTexImage2D': {\r\n 7: { 0: true, 2:true }, // WebGL 1 & 2\r\n 8: { 0: true, 2:true }, // WebGL 2\r\n 9: { 0: true, 2:true } // WebGL 2\r\n },\r\n 'compressedTexImage3D': {\r\n 8: { 0: true, 2:true },\r\n 9: { 0: true, 2:true },\r\n 10: { 0: true, 2:true }\r\n },\r\n 'compressedTexSubImage2D': {\r\n 8: { 0: true, 6:true }, // WebGL 1 & 2\r\n 9: { 0: true, 6:true }, // WebGL 2\r\n 10: { 0: true, 6:true } // WebGL 2\r\n },\r\n 'compressedTexSubImage3D': {\r\n 10: { 0: true, 8:true },\r\n 11: { 0: true, 8:true },\r\n 12: { 0: true, 8:true }\r\n },\r\n\r\n // WebGL 2 Vertex attribs\r\n\r\n 'vertexAttribIPointer': {5: { 2:true }},\r\n\r\n // WebGL 2 Writing to the drawing buffer\r\n\r\n 'drawArraysInstanced': {4: { 0:true }},\r\n 'drawElementsInstanced': {5: { 0:true, 2:true }},\r\n 'drawRangeElements': {6: { 0:true, 4:true }},\r\n\r\n // WebGL 2 Reading back pixels\r\n\r\n 'readPixels': {\r\n 7: { 4:true, 5:true }, // WebGL 1 & 2\r\n 8: { 4:true, 5:true } // WebGL 2\r\n },\r\n\r\n // WebGL 2 Multiple Render Targets\r\n\r\n 'clearBufferfv': {3: { 0:true }, 4: { 0:true }},\r\n 'clearBufferiv': {3: { 0:true }, 4: { 0:true }},\r\n 'clearBufferuiv': {3: { 0:true }, 4: { 0:true }},\r\n 'clearBufferfi': {4: { 0:true }},\r\n\r\n // WebGL 2 Query objects\r\n\r\n 'beginQuery': {2: { 0:true }},\r\n 'endQuery': {1: { 0:true }},\r\n 'getQuery': {2: { 0:true, 1:true }},\r\n 'getQueryParameter': {2: { 1:true }},\r\n\r\n // WebGL 2 Sampler objects\r\n\r\n 'samplerParameteri': {3: { 1:true, 2:true }},\r\n 'samplerParameterf': {3: { 1:true }},\r\n 'getSamplerParameter': {2: { 1:true }},\r\n\r\n // WebGL 2 Sync objects\r\n\r\n 'fenceSync': {2: { 0:true, 1: { 'enumBitwiseOr': [] } }},\r\n 'clientWaitSync': {3: { 1: { 'enumBitwiseOr': ['SYNC_FLUSH_COMMANDS_BIT'] } }},\r\n 'waitSync': {3: { 1: { 'enumBitwiseOr': [] } }},\r\n 'getSyncParameter': {2: { 1:true }},\r\n\r\n // WebGL 2 Transform Feedback\r\n\r\n 'bindTransformFeedback': {2: { 0:true }},\r\n 'beginTransformFeedback': {1: { 0:true }},\r\n 'transformFeedbackVaryings': {3: { 2:true }},\r\n\r\n // WebGL2 Uniform Buffer Objects and Transform Feedback Buffers\r\n\r\n 'bindBufferBase': {3: { 0:true }},\r\n 'bindBufferRange': {5: { 0:true }},\r\n 'getIndexedParameter': {2: { 0:true }},\r\n 'getActiveUniforms': {3: { 2:true }},\r\n 'getActiveUniformBlockParameter': {3: { 2:true }}\r\n };\r\n\r\n /**\r\n * Map of numbers to names.\r\n * @type {Object}\r\n */\r\n var glEnums = null;\r\n\r\n /**\r\n * Map of names to numbers.\r\n * @type {Object}\r\n */\r\n var enumStringToValue = null;\r\n\r\n /**\r\n * Initializes this module. Safe to call more than once.\r\n * @param {!WebGLRenderingContext} ctx A WebGL context. If\r\n * you have more than one context it doesn't matter which one\r\n * you pass in, it is only used to pull out constants.\r\n */\r\n function init(ctx) {\r\n if (glEnums == null) {\r\n glEnums = { };\r\n enumStringToValue = { };\r\n for (var propertyName in ctx) {\r\n if (typeof ctx[propertyName] == 'number') {\r\n glEnums[ctx[propertyName]] = propertyName;\r\n enumStringToValue[propertyName] = ctx[propertyName];\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Checks the utils have been initialized.\r\n */\r\n function checkInit() {\r\n if (glEnums == null) {\r\n throw 'WebGLDebugUtils.init(ctx) not called';\r\n }\r\n }\r\n\r\n /**\r\n * Returns true or false if value matches any WebGL enum\r\n * @param {*} value Value to check if it might be an enum.\r\n * @return {boolean} True if value matches one of the WebGL defined enums\r\n */\r\n function mightBeEnum(value) {\r\n checkInit();\r\n return (glEnums[value] !== undefined);\r\n }\r\n\r\n /**\r\n * Gets an string version of an WebGL enum.\r\n *\r\n * Example:\r\n * var str = WebGLDebugUtil.glEnumToString(ctx.getError());\r\n *\r\n * @param {number} value Value to return an enum for\r\n * @return {string} The string version of the enum.\r\n */\r\n function glEnumToString(value) {\r\n checkInit();\r\n var name = glEnums[value];\r\n return (name !== undefined) ? (\"gl.\" + name) :\r\n (\"/*UNKNOWN WebGL ENUM*/ 0x\" + value.toString(16) + \"\");\r\n }\r\n\r\n /**\r\n * Returns the string version of a WebGL argument.\r\n * Attempts to convert enum arguments to strings.\r\n * @param {string} functionName the name of the WebGL function.\r\n * @param {number} numArgs the number of arguments passed to the function.\r\n * @param {number} argumentIndx the index of the argument.\r\n * @param {*} value The value of the argument.\r\n * @return {string} The value as a string.\r\n */\r\n function glFunctionArgToString(functionName, numArgs, argumentIndex, value) {\r\n var funcInfo = glValidEnumContexts[functionName];\r\n if (funcInfo !== undefined) {\r\n var funcInfo = funcInfo[numArgs];\r\n if (funcInfo !== undefined) {\r\n if (funcInfo[argumentIndex]) {\r\n if (typeof funcInfo[argumentIndex] === 'object' &&\r\n funcInfo[argumentIndex]['enumBitwiseOr'] !== undefined) {\r\n var enums = funcInfo[argumentIndex]['enumBitwiseOr'];\r\n var orResult = 0;\r\n var orEnums = [];\r\n for (var i = 0; i < enums.length; ++i) {\r\n var enumValue = enumStringToValue[enums[i]];\r\n if ((value & enumValue) !== 0) {\r\n orResult |= enumValue;\r\n orEnums.push(glEnumToString(enumValue));\r\n }\r\n }\r\n if (orResult === value) {\r\n return orEnums.join(' | ');\r\n } else {\r\n return glEnumToString(value);\r\n }\r\n } else {\r\n return glEnumToString(value);\r\n }\r\n }\r\n }\r\n }\r\n if (value === null) {\r\n return \"null\";\r\n } else if (value === undefined) {\r\n return \"undefined\";\r\n } else {\r\n return value.toString();\r\n }\r\n }\r\n\r\n /**\r\n * Converts the arguments of a WebGL function to a string.\r\n * Attempts to convert enum arguments to strings.\r\n *\r\n * @param {string} functionName the name of the WebGL function.\r\n * @param {Array<*>} args The arguments.\r\n * @return {string} The arguments as a string.\r\n */\r\n function glFunctionArgsToString(functionName, args) {\r\n // apparently we can't do args.join(\",\");\r\n var argStr = \"\";\r\n var numArgs = args.length;\r\n for (var ii = 0; ii < numArgs; ++ii) {\r\n argStr += ((ii == 0) ? '' : ', ') +\r\n glFunctionArgToString(functionName, numArgs, ii, args[ii]);\r\n }\r\n return argStr;\r\n };\r\n\r\n\r\n function makePropertyWrapper(wrapper, original, propertyName) {\r\n //log(\"wrap prop: \" + propertyName);\r\n wrapper.__defineGetter__(propertyName, function() {\r\n return original[propertyName];\r\n });\r\n // TODO(gmane): this needs to handle properties that take more than\r\n // one value?\r\n wrapper.__defineSetter__(propertyName, function(value) {\r\n //log(\"set: \" + propertyName);\r\n original[propertyName] = value;\r\n });\r\n }\r\n\r\n// Makes a function that calls a function on another object.\r\n function makeFunctionWrapper(original, functionName) {\r\n //log(\"wrap fn: \" + functionName);\r\n var f = original[functionName];\r\n return function() {\r\n //log(\"call: \" + functionName);\r\n var result = f.apply(original, arguments);\r\n return result;\r\n };\r\n }\r\n\r\n /**\r\n * Given a WebGL context returns a wrapped context that calls\r\n * gl.getError after every command and calls a function if the\r\n * result is not gl.NO_ERROR.\r\n *\r\n * @param {!WebGLRenderingContext} ctx The webgl context to\r\n * wrap.\r\n * @param {!function(err, funcName, args): void} opt_onErrorFunc\r\n * The function to call when gl.getError returns an\r\n * error. If not specified the default function calls\r\n * console.log with a message.\r\n * @param {!function(funcName, args): void} opt_onFunc The\r\n * function to call when each webgl function is called.\r\n * You can use this to log all calls for example.\r\n * @param {!WebGLRenderingContext} opt_err_ctx The webgl context\r\n * to call getError on if different than ctx.\r\n */\r\n function makeDebugContext(ctx, opt_onErrorFunc, opt_onFunc, opt_err_ctx) {\r\n opt_err_ctx = opt_err_ctx || ctx;\r\n init(ctx);\r\n opt_onErrorFunc = opt_onErrorFunc || function(err, functionName, args) {\r\n // apparently we can't do args.join(\",\");\r\n var argStr = \"\";\r\n var numArgs = args.length;\r\n for (var ii = 0; ii < numArgs; ++ii) {\r\n argStr += ((ii == 0) ? '' : ', ') +\r\n glFunctionArgToString(functionName, numArgs, ii, args[ii]);\r\n }\r\n error(\"WebGL error \"+ glEnumToString(err) + \" in \"+ functionName +\r\n \"(\" + argStr + \")\");\r\n };\r\n\r\n // Holds booleans for each GL error so after we get the error ourselves\r\n // we can still return it to the client app.\r\n var glErrorShadow = { };\r\n\r\n // Makes a function that calls a WebGL function and then calls getError.\r\n function makeErrorWrapper(ctx, functionName) {\r\n return function() {\r\n if (opt_onFunc) {\r\n opt_onFunc(functionName, arguments);\r\n }\r\n var result = ctx[functionName].apply(ctx, arguments);\r\n var err = opt_err_ctx.getError();\r\n if (err != 0) {\r\n glErrorShadow[err] = true;\r\n opt_onErrorFunc(err, functionName, arguments);\r\n }\r\n return result;\r\n };\r\n }\r\n\r\n // Make a an object that has a copy of every property of the WebGL context\r\n // but wraps all functions.\r\n var wrapper = {};\r\n for (var propertyName in ctx) {\r\n if (typeof ctx[propertyName] == 'function') {\r\n if (propertyName != 'getExtension') {\r\n wrapper[propertyName] = makeErrorWrapper(ctx, propertyName);\r\n } else {\r\n var wrapped = makeErrorWrapper(ctx, propertyName);\r\n wrapper[propertyName] = function () {\r\n var result = wrapped.apply(ctx, arguments);\r\n if (!result) {\r\n return null;\r\n }\r\n return makeDebugContext(result, opt_onErrorFunc, opt_onFunc, opt_err_ctx);\r\n };\r\n }\r\n } else {\r\n makePropertyWrapper(wrapper, ctx, propertyName);\r\n }\r\n }\r\n\r\n // Override the getError function with one that returns our saved results.\r\n wrapper.getError = function() {\r\n for (var err in glErrorShadow) {\r\n if (glErrorShadow.hasOwnProperty(err)) {\r\n if (glErrorShadow[err]) {\r\n glErrorShadow[err] = false;\r\n return err;\r\n }\r\n }\r\n }\r\n return ctx.NO_ERROR;\r\n };\r\n\r\n return wrapper;\r\n }\r\n\r\n function resetToInitialState(ctx) {\r\n var isWebGL2RenderingContext = !!ctx.createTransformFeedback;\r\n\r\n if (isWebGL2RenderingContext) {\r\n ctx.bindVertexArray(null);\r\n }\r\n\r\n var numAttribs = ctx.getParameter(ctx.MAX_VERTEX_ATTRIBS);\r\n var tmp = ctx.createBuffer();\r\n ctx.bindBuffer(ctx.ARRAY_BUFFER, tmp);\r\n for (var ii = 0; ii < numAttribs; ++ii) {\r\n ctx.disableVertexAttribArray(ii);\r\n ctx.vertexAttribPointer(ii, 4, ctx.FLOAT, false, 0, 0);\r\n ctx.vertexAttrib1f(ii, 0);\r\n if (isWebGL2RenderingContext) {\r\n ctx.vertexAttribDivisor(ii, 0);\r\n }\r\n }\r\n ctx.deleteBuffer(tmp);\r\n\r\n var numTextureUnits = ctx.getParameter(ctx.MAX_TEXTURE_IMAGE_UNITS);\r\n for (var ii = 0; ii < numTextureUnits; ++ii) {\r\n ctx.activeTexture(ctx.TEXTURE0 + ii);\r\n ctx.bindTexture(ctx.TEXTURE_CUBE_MAP, null);\r\n ctx.bindTexture(ctx.TEXTURE_2D, null);\r\n if (isWebGL2RenderingContext) {\r\n ctx.bindTexture(ctx.TEXTURE_2D_ARRAY, null);\r\n ctx.bindTexture(ctx.TEXTURE_3D, null);\r\n ctx.bindSampler(ii, null);\r\n }\r\n }\r\n\r\n ctx.activeTexture(ctx.TEXTURE0);\r\n ctx.useProgram(null);\r\n ctx.bindBuffer(ctx.ARRAY_BUFFER, null);\r\n ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, null);\r\n ctx.bindFramebuffer(ctx.FRAMEBUFFER, null);\r\n ctx.bindRenderbuffer(ctx.RENDERBUFFER, null);\r\n ctx.disable(ctx.BLEND);\r\n ctx.disable(ctx.CULL_FACE);\r\n ctx.disable(ctx.DEPTH_TEST);\r\n ctx.disable(ctx.DITHER);\r\n ctx.disable(ctx.SCISSOR_TEST);\r\n ctx.blendColor(0, 0, 0, 0);\r\n ctx.blendEquation(ctx.FUNC_ADD);\r\n ctx.blendFunc(ctx.ONE, ctx.ZERO);\r\n ctx.clearColor(0, 0, 0, 0);\r\n ctx.clearDepth(1);\r\n ctx.clearStencil(-1);\r\n ctx.colorMask(true, true, true, true);\r\n ctx.cullFace(ctx.BACK);\r\n ctx.depthFunc(ctx.LESS);\r\n ctx.depthMask(true);\r\n ctx.depthRange(0, 1);\r\n ctx.frontFace(ctx.CCW);\r\n ctx.hint(ctx.GENERATE_MIPMAP_HINT, ctx.DONT_CARE);\r\n ctx.lineWidth(1);\r\n ctx.pixelStorei(ctx.PACK_ALIGNMENT, 4);\r\n ctx.pixelStorei(ctx.UNPACK_ALIGNMENT, 4);\r\n ctx.pixelStorei(ctx.UNPACK_FLIP_Y_WEBGL, false);\r\n ctx.pixelStorei(ctx.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);\r\n // TODO: Delete this IF.\r\n if (ctx.UNPACK_COLORSPACE_CONVERSION_WEBGL) {\r\n ctx.pixelStorei(ctx.UNPACK_COLORSPACE_CONVERSION_WEBGL, ctx.BROWSER_DEFAULT_WEBGL);\r\n }\r\n ctx.polygonOffset(0, 0);\r\n ctx.sampleCoverage(1, false);\r\n ctx.scissor(0, 0, ctx.canvas.width, ctx.canvas.height);\r\n ctx.stencilFunc(ctx.ALWAYS, 0, 0xFFFFFFFF);\r\n ctx.stencilMask(0xFFFFFFFF);\r\n ctx.stencilOp(ctx.KEEP, ctx.KEEP, ctx.KEEP);\r\n ctx.viewport(0, 0, ctx.canvas.width, ctx.canvas.height);\r\n ctx.clear(ctx.COLOR_BUFFER_BIT | ctx.DEPTH_BUFFER_BIT | ctx.STENCIL_BUFFER_BIT);\r\n\r\n if (isWebGL2RenderingContext) {\r\n ctx.drawBuffers([ctx.BACK]);\r\n ctx.readBuffer(ctx.BACK);\r\n ctx.bindBuffer(ctx.COPY_READ_BUFFER, null);\r\n ctx.bindBuffer(ctx.COPY_WRITE_BUFFER, null);\r\n ctx.bindBuffer(ctx.PIXEL_PACK_BUFFER, null);\r\n ctx.bindBuffer(ctx.PIXEL_UNPACK_BUFFER, null);\r\n var numTransformFeedbacks = ctx.getParameter(ctx.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS);\r\n for (var ii = 0; ii < numTransformFeedbacks; ++ii) {\r\n ctx.bindBufferBase(ctx.TRANSFORM_FEEDBACK_BUFFER, ii, null);\r\n }\r\n var numUBOs = ctx.getParameter(ctx.MAX_UNIFORM_BUFFER_BINDINGS);\r\n for (var ii = 0; ii < numUBOs; ++ii) {\r\n ctx.bindBufferBase(ctx.UNIFORM_BUFFER, ii, null);\r\n }\r\n ctx.disable(ctx.RASTERIZER_DISCARD);\r\n ctx.pixelStorei(ctx.UNPACK_IMAGE_HEIGHT, 0);\r\n ctx.pixelStorei(ctx.UNPACK_SKIP_IMAGES, 0);\r\n ctx.pixelStorei(ctx.UNPACK_ROW_LENGTH, 0);\r\n ctx.pixelStorei(ctx.UNPACK_SKIP_ROWS, 0);\r\n ctx.pixelStorei(ctx.UNPACK_SKIP_PIXELS, 0);\r\n ctx.pixelStorei(ctx.PACK_ROW_LENGTH, 0);\r\n ctx.pixelStorei(ctx.PACK_SKIP_ROWS, 0);\r\n ctx.pixelStorei(ctx.PACK_SKIP_PIXELS, 0);\r\n ctx.hint(ctx.FRAGMENT_SHADER_DERIVATIVE_HINT, ctx.DONT_CARE);\r\n }\r\n\r\n // TODO: This should NOT be needed but Firefox fails with 'hint'\r\n while(ctx.getError());\r\n }\r\n\r\n function makeLostContextSimulatingCanvas(canvas) {\r\n var unwrappedContext_;\r\n var wrappedContext_;\r\n var onLost_ = [];\r\n var onRestored_ = [];\r\n var wrappedContext_ = {};\r\n var contextId_ = 1;\r\n var contextLost_ = false;\r\n var resourceId_ = 0;\r\n var resourceDb_ = [];\r\n var numCallsToLoseContext_ = 0;\r\n var numCalls_ = 0;\r\n var canRestore_ = false;\r\n var restoreTimeout_ = 0;\r\n var isWebGL2RenderingContext;\r\n\r\n // Holds booleans for each GL error so can simulate errors.\r\n var glErrorShadow_ = { };\r\n\r\n canvas.getContext = function(f) {\r\n return function() {\r\n var ctx = f.apply(canvas, arguments);\r\n // Did we get a context and is it a WebGL context?\r\n if ((ctx instanceof WebGLRenderingContext) || (window.WebGL2RenderingContext && (ctx instanceof WebGL2RenderingContext))) {\r\n if (ctx != unwrappedContext_) {\r\n if (unwrappedContext_) {\r\n throw \"got different context\"\r\n }\r\n isWebGL2RenderingContext = window.WebGL2RenderingContext && (ctx instanceof WebGL2RenderingContext);\r\n unwrappedContext_ = ctx;\r\n wrappedContext_ = makeLostContextSimulatingContext(unwrappedContext_);\r\n }\r\n return wrappedContext_;\r\n }\r\n return ctx;\r\n }\r\n }(canvas.getContext);\r\n\r\n function wrapEvent(listener) {\r\n if (typeof(listener) == \"function\") {\r\n return listener;\r\n } else {\r\n return function(info) {\r\n listener.handleEvent(info);\r\n }\r\n }\r\n }\r\n\r\n var addOnContextLostListener = function(listener) {\r\n onLost_.push(wrapEvent(listener));\r\n };\r\n\r\n var addOnContextRestoredListener = function(listener) {\r\n onRestored_.push(wrapEvent(listener));\r\n };\r\n\r\n\r\n function wrapAddEventListener(canvas) {\r\n var f = canvas.addEventListener;\r\n canvas.addEventListener = function(type, listener, bubble) {\r\n switch (type) {\r\n case 'webglcontextlost':\r\n addOnContextLostListener(listener);\r\n break;\r\n case 'webglcontextrestored':\r\n addOnContextRestoredListener(listener);\r\n break;\r\n default:\r\n f.apply(canvas, arguments);\r\n }\r\n };\r\n }\r\n\r\n wrapAddEventListener(canvas);\r\n\r\n canvas.loseContext = function() {\r\n if (!contextLost_) {\r\n contextLost_ = true;\r\n numCallsToLoseContext_ = 0;\r\n ++contextId_;\r\n while (unwrappedContext_.getError());\r\n clearErrors();\r\n glErrorShadow_[unwrappedContext_.CONTEXT_LOST_WEBGL] = true;\r\n var event = makeWebGLContextEvent(\"context lost\");\r\n var callbacks = onLost_.slice();\r\n setTimeout(function() {\r\n //log(\"numCallbacks:\" + callbacks.length);\r\n for (var ii = 0; ii < callbacks.length; ++ii) {\r\n //log(\"calling callback:\" + ii);\r\n callbacks[ii](event);\r\n }\r\n if (restoreTimeout_ >= 0) {\r\n setTimeout(function() {\r\n canvas.restoreContext();\r\n }, restoreTimeout_);\r\n }\r\n }, 0);\r\n }\r\n };\r\n\r\n canvas.restoreContext = function() {\r\n if (contextLost_) {\r\n if (onRestored_.length) {\r\n setTimeout(function() {\r\n if (!canRestore_) {\r\n throw \"can not restore. webglcontestlost listener did not call event.preventDefault\";\r\n }\r\n freeResources();\r\n resetToInitialState(unwrappedContext_);\r\n contextLost_ = false;\r\n numCalls_ = 0;\r\n canRestore_ = false;\r\n var callbacks = onRestored_.slice();\r\n var event = makeWebGLContextEvent(\"context restored\");\r\n for (var ii = 0; ii < callbacks.length; ++ii) {\r\n callbacks[ii](event);\r\n }\r\n }, 0);\r\n }\r\n }\r\n };\r\n\r\n canvas.loseContextInNCalls = function(numCalls) {\r\n if (contextLost_) {\r\n throw \"You can not ask a lost contet to be lost\";\r\n }\r\n numCallsToLoseContext_ = numCalls_ + numCalls;\r\n };\r\n\r\n canvas.getNumCalls = function() {\r\n return numCalls_;\r\n };\r\n\r\n canvas.setRestoreTimeout = function(timeout) {\r\n restoreTimeout_ = timeout;\r\n };\r\n\r\n function isWebGLObject(obj) {\r\n //return false;\r\n return (obj instanceof WebGLBuffer ||\r\n obj instanceof WebGLFramebuffer ||\r\n obj instanceof WebGLProgram ||\r\n obj instanceof WebGLRenderbuffer ||\r\n obj instanceof WebGLShader ||\r\n obj instanceof WebGLTexture);\r\n }\r\n\r\n function checkResources(args) {\r\n for (var ii = 0; ii < args.length; ++ii) {\r\n var arg = args[ii];\r\n if (isWebGLObject(arg)) {\r\n return arg.__webglDebugContextLostId__ == contextId_;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n function clearErrors() {\r\n var k = Object.keys(glErrorShadow_);\r\n for (var ii = 0; ii < k.length; ++ii) {\r\n delete glErrorShadow_[k[ii]];\r\n }\r\n }\r\n\r\n function loseContextIfTime() {\r\n ++numCalls_;\r\n if (!contextLost_) {\r\n if (numCallsToLoseContext_ == numCalls_) {\r\n canvas.loseContext();\r\n }\r\n }\r\n }\r\n\r\n // Makes a function that simulates WebGL when out of context.\r\n function makeLostContextFunctionWrapper(ctx, functionName) {\r\n var f = ctx[functionName];\r\n return function() {\r\n // log(\"calling:\" + functionName);\r\n // Only call the functions if the context is not lost.\r\n loseContextIfTime();\r\n if (!contextLost_) {\r\n //if (!checkResources(arguments)) {\r\n // glErrorShadow_[wrappedContext_.INVALID_OPERATION] = true;\r\n // return;\r\n //}\r\n var result = f.apply(ctx, arguments);\r\n return result;\r\n }\r\n };\r\n }\r\n\r\n function freeResources() {\r\n for (var ii = 0; ii < resourceDb_.length; ++ii) {\r\n var resource = resourceDb_[ii];\r\n if (resource instanceof WebGLBuffer) {\r\n unwrappedContext_.deleteBuffer(resource);\r\n } else if (resource instanceof WebGLFramebuffer) {\r\n unwrappedContext_.deleteFramebuffer(resource);\r\n } else if (resource instanceof WebGLProgram) {\r\n unwrappedContext_.deleteProgram(resource);\r\n } else if (resource instanceof WebGLRenderbuffer) {\r\n unwrappedContext_.deleteRenderbuffer(resource);\r\n } else if (resource instanceof WebGLShader) {\r\n unwrappedContext_.deleteShader(resource);\r\n } else if (resource instanceof WebGLTexture) {\r\n unwrappedContext_.deleteTexture(resource);\r\n }\r\n else if (isWebGL2RenderingContext) {\r\n if (resource instanceof WebGLQuery) {\r\n unwrappedContext_.deleteQuery(resource);\r\n } else if (resource instanceof WebGLSampler) {\r\n unwrappedContext_.deleteSampler(resource);\r\n } else if (resource instanceof WebGLSync) {\r\n unwrappedContext_.deleteSync(resource);\r\n } else if (resource instanceof WebGLTransformFeedback) {\r\n unwrappedContext_.deleteTransformFeedback(resource);\r\n } else if (resource instanceof WebGLVertexArrayObject) {\r\n unwrappedContext_.deleteVertexArray(resource);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function makeWebGLContextEvent(statusMessage) {\r\n return {\r\n statusMessage: statusMessage,\r\n preventDefault: function() {\r\n canRestore_ = true;\r\n }\r\n };\r\n }\r\n\r\n return canvas;\r\n\r\n function makeLostContextSimulatingContext(ctx) {\r\n // copy all functions and properties to wrapper\r\n for (var propertyName in ctx) {\r\n if (typeof ctx[propertyName] == 'function') {\r\n wrappedContext_[propertyName] = makeLostContextFunctionWrapper(\r\n ctx, propertyName);\r\n } else {\r\n makePropertyWrapper(wrappedContext_, ctx, propertyName);\r\n }\r\n }\r\n\r\n // Wrap a few functions specially.\r\n wrappedContext_.getError = function() {\r\n loseContextIfTime();\r\n if (!contextLost_) {\r\n var err;\r\n while (err = unwrappedContext_.getError()) {\r\n glErrorShadow_[err] = true;\r\n }\r\n }\r\n for (var err in glErrorShadow_) {\r\n if (glErrorShadow_[err]) {\r\n delete glErrorShadow_[err];\r\n return err;\r\n }\r\n }\r\n return wrappedContext_.NO_ERROR;\r\n };\r\n\r\n var creationFunctions = [\r\n \"createBuffer\",\r\n \"createFramebuffer\",\r\n \"createProgram\",\r\n \"createRenderbuffer\",\r\n \"createShader\",\r\n \"createTexture\"\r\n ];\r\n if (isWebGL2RenderingContext) {\r\n creationFunctions.push(\r\n \"createQuery\",\r\n \"createSampler\",\r\n \"fenceSync\",\r\n \"createTransformFeedback\",\r\n \"createVertexArray\"\r\n );\r\n }\r\n for (var ii = 0; ii < creationFunctions.length; ++ii) {\r\n var functionName = creationFunctions[ii];\r\n wrappedContext_[functionName] = function(f) {\r\n return function() {\r\n loseContextIfTime();\r\n if (contextLost_) {\r\n return null;\r\n }\r\n var obj = f.apply(ctx, arguments);\r\n obj.__webglDebugContextLostId__ = contextId_;\r\n resourceDb_.push(obj);\r\n return obj;\r\n };\r\n }(ctx[functionName]);\r\n }\r\n\r\n var functionsThatShouldReturnNull = [\r\n \"getActiveAttrib\",\r\n \"getActiveUniform\",\r\n \"getBufferParameter\",\r\n \"getContextAttributes\",\r\n \"getAttachedShaders\",\r\n \"getFramebufferAttachmentParameter\",\r\n \"getParameter\",\r\n \"getProgramParameter\",\r\n \"getProgramInfoLog\",\r\n \"getRenderbufferParameter\",\r\n \"getShaderParameter\",\r\n \"getShaderInfoLog\",\r\n \"getShaderSource\",\r\n \"getTexParameter\",\r\n \"getUniform\",\r\n \"getUniformLocation\",\r\n \"getVertexAttrib\"\r\n ];\r\n if (isWebGL2RenderingContext) {\r\n functionsThatShouldReturnNull.push(\r\n \"getInternalformatParameter\",\r\n \"getQuery\",\r\n \"getQueryParameter\",\r\n \"getSamplerParameter\",\r\n \"getSyncParameter\",\r\n \"getTransformFeedbackVarying\",\r\n \"getIndexedParameter\",\r\n \"getUniformIndices\",\r\n \"getActiveUniforms\",\r\n \"getActiveUniformBlockParameter\",\r\n \"getActiveUniformBlockName\"\r\n );\r\n }\r\n for (var ii = 0; ii < functionsThatShouldReturnNull.length; ++ii) {\r\n var functionName = functionsThatShouldReturnNull[ii];\r\n wrappedContext_[functionName] = function(f) {\r\n return function() {\r\n loseContextIfTime();\r\n if (contextLost_) {\r\n return null;\r\n }\r\n return f.apply(ctx, arguments);\r\n }\r\n }(wrappedContext_[functionName]);\r\n }\r\n\r\n var isFunctions = [\r\n \"isBuffer\",\r\n \"isEnabled\",\r\n \"isFramebuffer\",\r\n \"isProgram\",\r\n \"isRenderbuffer\",\r\n \"isShader\",\r\n \"isTexture\"\r\n ];\r\n if (isWebGL2RenderingContext) {\r\n isFunctions.push(\r\n \"isQuery\",\r\n \"isSampler\",\r\n \"isSync\",\r\n \"isTransformFeedback\",\r\n \"isVertexArray\"\r\n );\r\n }\r\n for (var ii = 0; ii < isFunctions.length; ++ii) {\r\n var functionName = isFunctions[ii];\r\n wrappedContext_[functionName] = function(f) {\r\n return function() {\r\n loseContextIfTime();\r\n if (contextLost_) {\r\n return false;\r\n }\r\n return f.apply(ctx, arguments);\r\n }\r\n }(wrappedContext_[functionName]);\r\n }\r\n\r\n wrappedContext_.checkFramebufferStatus = function(f) {\r\n return function() {\r\n loseContextIfTime();\r\n if (contextLost_) {\r\n return wrappedContext_.FRAMEBUFFER_UNSUPPORTED;\r\n }\r\n return f.apply(ctx, arguments);\r\n };\r\n }(wrappedContext_.checkFramebufferStatus);\r\n\r\n wrappedContext_.getAttribLocation = function(f) {\r\n return function() {\r\n loseContextIfTime();\r\n if (contextLost_) {\r\n return -1;\r\n }\r\n return f.apply(ctx, arguments);\r\n };\r\n }(wrappedContext_.getAttribLocation);\r\n\r\n wrappedContext_.getVertexAttribOffset = function(f) {\r\n return function() {\r\n loseContextIfTime();\r\n if (contextLost_) {\r\n return 0;\r\n }\r\n return f.apply(ctx, arguments);\r\n };\r\n }(wrappedContext_.getVertexAttribOffset);\r\n\r\n wrappedContext_.isContextLost = function() {\r\n return contextLost_;\r\n };\r\n\r\n if (isWebGL2RenderingContext) {\r\n wrappedContext_.getFragDataLocation = function(f) {\r\n return function() {\r\n loseContextIfTime();\r\n if (contextLost_) {\r\n return -1;\r\n }\r\n return f.apply(ctx, arguments);\r\n };\r\n }(wrappedContext_.getFragDataLocation);\r\n\r\n wrappedContext_.clientWaitSync = function(f) {\r\n return function() {\r\n loseContextIfTime();\r\n if (contextLost_) {\r\n return wrappedContext_.WAIT_FAILED;\r\n }\r\n return f.apply(ctx, arguments);\r\n };\r\n }(wrappedContext_.clientWaitSync);\r\n\r\n wrappedContext_.getUniformBlockIndex = function(f) {\r\n return function() {\r\n loseContextIfTime();\r\n if (contextLost_) {\r\n return wrappedContext_.INVALID_INDEX;\r\n }\r\n return f.apply(ctx, arguments);\r\n };\r\n }(wrappedContext_.getUniformBlockIndex);\r\n }\r\n\r\n return wrappedContext_;\r\n }\r\n }\r\n\r\n return {\r\n /**\r\n * Initializes this module. Safe to call more than once.\r\n * @param {!WebGLRenderingContext} ctx A WebGL context. If\r\n * you have more than one context it doesn't matter which one\r\n * you pass in, it is only used to pull out constants.\r\n */\r\n 'init': init,\r\n\r\n /**\r\n * Returns true or false if value matches any WebGL enum\r\n * @param {*} value Value to check if it might be an enum.\r\n * @return {boolean} True if value matches one of the WebGL defined enums\r\n */\r\n 'mightBeEnum': mightBeEnum,\r\n\r\n /**\r\n * Gets an string version of an WebGL enum.\r\n *\r\n * Example:\r\n * WebGLDebugUtil.init(ctx);\r\n * var str = WebGLDebugUtil.glEnumToString(ctx.getError());\r\n *\r\n * @param {number} value Value to return an enum for\r\n * @return {string} The string version of the enum.\r\n */\r\n 'glEnumToString': glEnumToString,\r\n\r\n /**\r\n * Converts the argument of a WebGL function to a string.\r\n * Attempts to convert enum arguments to strings.\r\n *\r\n * Example:\r\n * WebGLDebugUtil.init(ctx);\r\n * var str = WebGLDebugUtil.glFunctionArgToString('bindTexture', 2, 0, gl.TEXTURE_2D);\r\n *\r\n * would return 'TEXTURE_2D'\r\n *\r\n * @param {string} functionName the name of the WebGL function.\r\n * @param {number} numArgs The number of arguments\r\n * @param {number} argumentIndx the index of the argument.\r\n * @param {*} value The value of the argument.\r\n * @return {string} The value as a string.\r\n */\r\n 'glFunctionArgToString': glFunctionArgToString,\r\n\r\n /**\r\n * Converts the arguments of a WebGL function to a string.\r\n * Attempts to convert enum arguments to strings.\r\n *\r\n * @param {string} functionName the name of the WebGL function.\r\n * @param {number} args The arguments.\r\n * @return {string} The arguments as a string.\r\n */\r\n 'glFunctionArgsToString': glFunctionArgsToString,\r\n\r\n /**\r\n * Given a WebGL context returns a wrapped context that calls\r\n * gl.getError after every command and calls a function if the\r\n * result is not NO_ERROR.\r\n *\r\n * You can supply your own function if you want. For example, if you'd like\r\n * an exception thrown on any GL error you could do this\r\n *\r\n * function throwOnGLError(err, funcName, args) {\r\n * throw WebGLDebugUtils.glEnumToString(err) +\r\n * \" was caused by call to \" + funcName;\r\n * };\r\n *\r\n * ctx = WebGLDebugUtils.makeDebugContext(\r\n * canvas.getContext(\"webgl\"), throwOnGLError);\r\n *\r\n * @param {!WebGLRenderingContext} ctx The webgl context to wrap.\r\n * @param {!function(err, funcName, args): void} opt_onErrorFunc The function\r\n * to call when gl.getError returns an error. If not specified the default\r\n * function calls console.log with a message.\r\n * @param {!function(funcName, args): void} opt_onFunc The\r\n * function to call when each webgl function is called. You\r\n * can use this to log all calls for example.\r\n */\r\n 'makeDebugContext': makeDebugContext,\r\n\r\n /**\r\n * Given a canvas element returns a wrapped canvas element that will\r\n * simulate lost context. The canvas returned adds the following functions.\r\n *\r\n * loseContext:\r\n * simulates a lost context event.\r\n *\r\n * restoreContext:\r\n * simulates the context being restored.\r\n *\r\n * lostContextInNCalls:\r\n * loses the context after N gl calls.\r\n *\r\n * getNumCalls:\r\n * tells you how many gl calls there have been so far.\r\n *\r\n * setRestoreTimeout:\r\n * sets the number of milliseconds until the context is restored\r\n * after it has been lost. Defaults to 0. Pass -1 to prevent\r\n * automatic restoring.\r\n *\r\n * @param {!Canvas} canvas The canvas element to wrap.\r\n */\r\n 'makeLostContextSimulatingCanvas': makeLostContextSimulatingCanvas,\r\n\r\n /**\r\n * Resets a context to the initial state.\r\n * @param {!WebGLRenderingContext} ctx The webgl context to\r\n * reset.\r\n */\r\n 'resetToInitialState': resetToInitialState\r\n };\r\n\r\n}();\r\n\r\nexport default WebGLDebugUtils;"],"names":[],"mappings":"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,CAAC,CAAC;AACvD,oBAAoB,CAAC,CAAC;AACtB,gBAAgB,CAAC,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;AACxD,YAAY,CAAC;AACb;AACA,YAAY,OAAO,eAAe,CAAC;AACnC,QAAQ,CAAC;AACT,IAAI,CAAC;AACL;AACA,IAAI,OAAO;AACX;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,EAAE,IAAI;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,aAAa,EAAE,WAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB,EAAE,cAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uBAAuB,EAAE,qBAAqB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wBAAwB,EAAE,sBAAsB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kBAAkB,EAAE,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iCAAiC,EAAE,+BAA+B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qBAAqB,EAAE,mBAAmB;AAClD,KAAK,CAAC;AACN;AACA,CAAC;;;;"}