@mateuszjs/magic-render 0.0.1-next.3 → 0.0.1-next.5

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 (136) hide show
  1. package/README.md +10 -0
  2. package/lib/index.mjs +1 -0
  3. package/lib/types/crate/glue_code.d.ts +2 -0
  4. package/lib/types/crate/glue_code.d.ts.map +1 -0
  5. package/lib/types/crate/pkg/index_bg.d.ts +44 -0
  6. package/lib/types/crate/pkg/index_bg.d.ts.map +1 -0
  7. package/lib/types/src/WebGPU/canvasSizeObserver.d.ts.map +1 -0
  8. package/lib/types/src/WebGPU/getDevice.d.ts.map +1 -0
  9. package/lib/types/src/WebGPU/getTexture/createCheckedImageData.d.ts.map +1 -0
  10. package/lib/types/src/WebGPU/getTexture/generateMimapsArray.d.ts.map +1 -0
  11. package/lib/types/src/WebGPU/getTexture/index.d.ts.map +1 -0
  12. package/lib/types/src/WebGPU/m3.d.ts.map +1 -0
  13. package/lib/types/src/WebGPU/programs/blur/getProgram.d.ts.map +1 -0
  14. package/lib/types/src/WebGPU/programs/draw3dModel/getProgram.d.ts.map +1 -0
  15. package/lib/types/src/WebGPU/programs/draw3dModelLight/getProgram.d.ts.map +1 -0
  16. package/lib/types/src/WebGPU/programs/draw3dModelTexture/getProgram.d.ts.map +1 -0
  17. package/lib/types/src/WebGPU/programs/drawBezier/getProgram.d.ts.map +1 -0
  18. package/lib/types/src/WebGPU/programs/drawTexture/getProgram.d.ts.map +1 -0
  19. package/lib/types/src/WebGPU/programs/drawTriangle/getProgram.d.ts.map +1 -0
  20. package/lib/types/src/WebGPU/programs/initPrograms.d.ts.map +1 -0
  21. package/lib/types/src/__test__/index.test.d.ts.map +1 -0
  22. package/lib/types/src/components/Preview/index.d.ts.map +1 -0
  23. package/lib/types/src/consts.d.ts.map +1 -0
  24. package/lib/types/src/getCanvasMatrix.d.ts.map +1 -0
  25. package/lib/types/src/getCanvasRenderDescriptor.d.ts.map +1 -0
  26. package/lib/types/src/getDepthTexture.d.ts.map +1 -0
  27. package/lib/types/src/getRenderDescriptor.d.ts.map +1 -0
  28. package/{dist → lib/types/src}/index.d.ts +2 -2
  29. package/lib/types/src/index.d.ts.map +1 -0
  30. package/lib/types/src/models/Video/MiniatureVideo.d.ts.map +1 -0
  31. package/{dist → lib/types/src}/run.d.ts +1 -1
  32. package/lib/types/src/run.d.ts.map +1 -0
  33. package/lib/types/src/types.d.ts.map +1 -0
  34. package/lib/types/src/utils/atNormIndex.d.ts.map +1 -0
  35. package/lib/types/src/utils/captureCanvasStream.d.ts.map +1 -0
  36. package/lib/types/src/utils/captureCanvasStreamWasm.d.ts.map +1 -0
  37. package/lib/types/src/utils/clamp.d.ts.map +1 -0
  38. package/lib/types/src/utils/distancePointToLine.d.ts.map +1 -0
  39. package/lib/types/src/utils/fitCurve.d.ts.map +1 -0
  40. package/lib/types/src/utils/getAngle.d.ts.map +1 -0
  41. package/lib/types/src/utils/getAngleDiff.d.ts.map +1 -0
  42. package/lib/types/src/utils/getBezierPos.d.ts.map +1 -0
  43. package/lib/types/src/utils/getBezierTan.d.ts.map +1 -0
  44. package/lib/types/src/utils/getCurveLength.d.ts.map +1 -0
  45. package/lib/types/src/utils/getDistance.d.ts.map +1 -0
  46. package/lib/types/src/utils/mat4.d.ts.map +1 -0
  47. package/lib/types/src/utils/normalizeVec2.d.ts.map +1 -0
  48. package/lib/types/src/utils/resizeArray.d.ts.map +1 -0
  49. package/lib/types/src/utils/vec3.d.ts.map +1 -0
  50. package/package.json +8 -9
  51. package/dist/2e9c8dbbfc49aa9c830e.module.wasm +0 -0
  52. package/dist/701.53ef6be51135b1f869af.js +0 -1
  53. package/dist/WebGPU/canvasSizeObserver.d.ts.map +0 -1
  54. package/dist/WebGPU/getDevice.d.ts.map +0 -1
  55. package/dist/WebGPU/getTexture/createCheckedImageData.d.ts.map +0 -1
  56. package/dist/WebGPU/getTexture/generateMimapsArray.d.ts.map +0 -1
  57. package/dist/WebGPU/getTexture/index.d.ts.map +0 -1
  58. package/dist/WebGPU/m3.d.ts.map +0 -1
  59. package/dist/WebGPU/programs/blur/getProgram.d.ts.map +0 -1
  60. package/dist/WebGPU/programs/draw3dModel/getProgram.d.ts.map +0 -1
  61. package/dist/WebGPU/programs/draw3dModelLight/getProgram.d.ts.map +0 -1
  62. package/dist/WebGPU/programs/draw3dModelTexture/getProgram.d.ts.map +0 -1
  63. package/dist/WebGPU/programs/drawBezier/getProgram.d.ts.map +0 -1
  64. package/dist/WebGPU/programs/drawTexture/getProgram.d.ts.map +0 -1
  65. package/dist/WebGPU/programs/drawTriangle/getProgram.d.ts.map +0 -1
  66. package/dist/WebGPU/programs/initPrograms.d.ts.map +0 -1
  67. package/dist/__test__/index.test.d.ts.map +0 -1
  68. package/dist/components/Preview/index.d.ts.map +0 -1
  69. package/dist/consts.d.ts.map +0 -1
  70. package/dist/getCanvasMatrix.d.ts.map +0 -1
  71. package/dist/getCanvasRenderDescriptor.d.ts.map +0 -1
  72. package/dist/getDepthTexture.d.ts.map +0 -1
  73. package/dist/getRenderDescriptor.d.ts.map +0 -1
  74. package/dist/index.60c4a3a7fc17987014f5.js +0 -1
  75. package/dist/index.d.ts.map +0 -1
  76. package/dist/index.html +0 -13
  77. package/dist/models/Video/MiniatureVideo.d.ts.map +0 -1
  78. package/dist/run.d.ts.map +0 -1
  79. package/dist/test-runtime.63d51731843ade072b76.js +0 -1
  80. package/dist/test.js +0 -1
  81. package/dist/types.d.ts.map +0 -1
  82. package/dist/utils/atNormIndex.d.ts.map +0 -1
  83. package/dist/utils/captureCanvasStream.d.ts.map +0 -1
  84. package/dist/utils/captureCanvasStreamWasm.d.ts.map +0 -1
  85. package/dist/utils/clamp.d.ts.map +0 -1
  86. package/dist/utils/distancePointToLine.d.ts.map +0 -1
  87. package/dist/utils/fitCurve.d.ts.map +0 -1
  88. package/dist/utils/getAngle.d.ts.map +0 -1
  89. package/dist/utils/getAngleDiff.d.ts.map +0 -1
  90. package/dist/utils/getBezierPos.d.ts.map +0 -1
  91. package/dist/utils/getBezierTan.d.ts.map +0 -1
  92. package/dist/utils/getCurveLength.d.ts.map +0 -1
  93. package/dist/utils/getDistance.d.ts.map +0 -1
  94. package/dist/utils/mat4.d.ts.map +0 -1
  95. package/dist/utils/normalizeVec2.d.ts.map +0 -1
  96. package/dist/utils/resizeArray.d.ts.map +0 -1
  97. package/dist/utils/vec3.d.ts.map +0 -1
  98. /package/{dist → lib/types/src}/WebGPU/canvasSizeObserver.d.ts +0 -0
  99. /package/{dist → lib/types/src}/WebGPU/getDevice.d.ts +0 -0
  100. /package/{dist → lib/types/src}/WebGPU/getTexture/createCheckedImageData.d.ts +0 -0
  101. /package/{dist → lib/types/src}/WebGPU/getTexture/generateMimapsArray.d.ts +0 -0
  102. /package/{dist → lib/types/src}/WebGPU/getTexture/index.d.ts +0 -0
  103. /package/{dist → lib/types/src}/WebGPU/m3.d.ts +0 -0
  104. /package/{dist → lib/types/src}/WebGPU/programs/blur/getProgram.d.ts +0 -0
  105. /package/{dist → lib/types/src}/WebGPU/programs/draw3dModel/getProgram.d.ts +0 -0
  106. /package/{dist → lib/types/src}/WebGPU/programs/draw3dModelLight/getProgram.d.ts +0 -0
  107. /package/{dist → lib/types/src}/WebGPU/programs/draw3dModelTexture/getProgram.d.ts +0 -0
  108. /package/{dist → lib/types/src}/WebGPU/programs/drawBezier/getProgram.d.ts +0 -0
  109. /package/{dist → lib/types/src}/WebGPU/programs/drawTexture/getProgram.d.ts +0 -0
  110. /package/{dist → lib/types/src}/WebGPU/programs/drawTriangle/getProgram.d.ts +0 -0
  111. /package/{dist → lib/types/src}/WebGPU/programs/initPrograms.d.ts +0 -0
  112. /package/{dist → lib/types/src}/__test__/index.test.d.ts +0 -0
  113. /package/{dist → lib/types/src}/components/Preview/index.d.ts +0 -0
  114. /package/{dist → lib/types/src}/consts.d.ts +0 -0
  115. /package/{dist → lib/types/src}/getCanvasMatrix.d.ts +0 -0
  116. /package/{dist → lib/types/src}/getCanvasRenderDescriptor.d.ts +0 -0
  117. /package/{dist → lib/types/src}/getDepthTexture.d.ts +0 -0
  118. /package/{dist → lib/types/src}/getRenderDescriptor.d.ts +0 -0
  119. /package/{dist → lib/types/src}/models/Video/MiniatureVideo.d.ts +0 -0
  120. /package/{dist → lib/types/src}/types.d.ts +0 -0
  121. /package/{dist → lib/types/src}/utils/atNormIndex.d.ts +0 -0
  122. /package/{dist → lib/types/src}/utils/captureCanvasStream.d.ts +0 -0
  123. /package/{dist → lib/types/src}/utils/captureCanvasStreamWasm.d.ts +0 -0
  124. /package/{dist → lib/types/src}/utils/clamp.d.ts +0 -0
  125. /package/{dist → lib/types/src}/utils/distancePointToLine.d.ts +0 -0
  126. /package/{dist → lib/types/src}/utils/fitCurve.d.ts +0 -0
  127. /package/{dist → lib/types/src}/utils/getAngle.d.ts +0 -0
  128. /package/{dist → lib/types/src}/utils/getAngleDiff.d.ts +0 -0
  129. /package/{dist → lib/types/src}/utils/getBezierPos.d.ts +0 -0
  130. /package/{dist → lib/types/src}/utils/getBezierTan.d.ts +0 -0
  131. /package/{dist → lib/types/src}/utils/getCurveLength.d.ts +0 -0
  132. /package/{dist → lib/types/src}/utils/getDistance.d.ts +0 -0
  133. /package/{dist → lib/types/src}/utils/mat4.d.ts +0 -0
  134. /package/{dist → lib/types/src}/utils/normalizeVec2.d.ts +0 -0
  135. /package/{dist → lib/types/src}/utils/resizeArray.d.ts +0 -0
  136. /package/{dist → lib/types/src}/utils/vec3.d.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBezierPos.d.ts","sourceRoot":"","sources":["../../../../src/utils/getBezierPos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,CAAC,EAAE,MAAM,GACR,KAAK,CAkBP"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBezierTan.d.ts","sourceRoot":"","sources":["../../../../src/utils/getBezierTan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAG7B,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,CAAC,EAAE,MAAM,GACR,KAAK,CAeP"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCurveLength.d.ts","sourceRoot":"","sources":["../../../../src/utils/getCurveLength.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAO7B,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,SAAS,EAAE,MAAM,GAChB,MAAM,EAAE,CAYV"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDistance.d.ts","sourceRoot":"","sources":["../../../../src/utils/getDistance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,UAEvD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mat4.d.ts","sourceRoot":"","sources":["../../../../src/utils/mat4.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,IAAI;sBACU,MAAM,UAAU,MAAM,SAAS,MAAM,OAAO,YAAY;uCAKvC,MAAM,UAAU,MAAM,SAAS,MAAM,QAAQ,MAAM;gBA2B1E,MAAM,SAAS,MAAM,UAAU,MAAM,OAAO,MAAM,QAAQ,MAAM,OAAO,MAAM;;gBAgC7E,YAAY,KAAK,YAAY;mBAyD1B,MAAM,EAAE,GAAG,YAAY,UAAU,MAAM,EAAE,MAAM,MAAM,EAAE;eAa3D,YAAY;iBAwFV,YAAY;aAShB,YAAY,GAAG,MAAM,EAAE,UAAU,MAAM,EAAE,MAAM,MAAM,EAAE;gBAapD,MAAM,EAAE,GAAG,YAAY,UAAU,MAAM,EAAE,MAAM,MAAM,EAAE,QAAQ,YAAY;8BAI7D,MAAM,EAAE;8BAQR,MAAM;8BAUN,MAAM;8BAUN,MAAM;0BAUV,MAAM,EAAE;iBAQjB,YAAY,eAAe,MAAM,EAAE,QAAQ,YAAY;eAIzD,YAAY,kBAAkB,MAAM,QAAQ,YAAY;eAIxD,YAAY,kBAAkB,MAAM,QAAQ,YAAY;eAIxD,YAAY,kBAAkB,MAAM,QAAQ,YAAY;aAI1D,YAAY,SAAS,MAAM,EAAE,QAAQ,YAAY;CAG3D,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeVec2.d.ts","sourceRoot":"","sources":["../../../../src/utils/normalizeVec2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,KAAK,CAMvD"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizeArray.d.ts","sourceRoot":"","sources":["../../../../src/utils/resizeArray.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,YASnE"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vec3.d.ts","sourceRoot":"","sources":["../../../../src/utils/vec3.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,IAAI;aACC,MAAM,EAAE,GAAG,YAAY,KAAK,MAAM,EAAE,GAAG,YAAY;gBAYhD,MAAM,EAAE,GAAG,YAAY,KAAK,MAAM,EAAE,GAAG,YAAY;iBAQjD,MAAM,EAAE,GAAG,YAAY;CAetC,CAAA;AAED,eAAe,IAAI,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mateuszjs/magic-render",
3
3
  "description": "Initial version of visual editor",
4
- "version": "0.0.1-next.3",
4
+ "version": "0.0.1-next.5",
5
5
  "author": "Mateusz Walendzik",
6
6
  "engines": {
7
7
  "node": ">=20.8.1"
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "scripts": {
23
23
  "start": "export NODE_ENV=development && webpack serve --open",
24
- "build": "export $(grep -v '^#' .env | xargs) && export NODE_ENV=production && webpack && tsc --project tsconfig.build.json --emitDeclarationOnly ",
24
+ "build": "rm -rf lib lib-test && export $(grep -v '^#' .env | xargs) && export NODE_ENV=production && node build-wasm.mjs && webpack && tsc --project tsconfig.build.json --emitDeclarationOnly ",
25
25
  "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
26
26
  "test-e2e": "npx playwright test",
27
27
  "format": "eslint --fix \"src/**/*.{ts,js}\" \"integration-tests/**/*.{ts,js}\""
@@ -33,6 +33,7 @@
33
33
  "@tsconfig/recommended": "^1.0.8",
34
34
  "@types/jest": "^29.5.14",
35
35
  "@types/node": "^22.13.9",
36
+ "@wasm-tool/wasm-pack-plugin": "^1.7.0",
36
37
  "@webgpu/types": "^0.1.54",
37
38
  "eslint": "^9.21.0",
38
39
  "html-webpack-plugin": "^5.6.3",
@@ -44,17 +45,15 @@
44
45
  "ts-node": "^10.9.2",
45
46
  "typescript": "^5.8.2",
46
47
  "typescript-eslint": "^8.26.0",
48
+ "wasm-pack": "^0.13.1",
47
49
  "webpack": "^5.97.1",
48
50
  "webpack-bundle-analyzer": "^4.10.2",
49
51
  "webpack-cli": "^6.0.1",
50
52
  "webpack-dev-server": "^5.2.0"
51
53
  },
52
- "dependencies": {
53
- "@wasm-tool/wasm-pack-plugin": "^1.7.0"
54
- },
55
- "types": "dist/index.d.ts",
56
- "main": "dist/index.js",
57
- "module": "dist/index.esm.js",
54
+ "types": "./lib/types/src/index.d.ts",
55
+ "main": "./lib/index.mjs",
56
+ "type": "module",
58
57
  "repository": {
59
58
  "type": "git",
60
59
  "url": "git+ssh://git@github.com/mateuszJS/magic-render.git"
@@ -65,6 +64,6 @@
65
64
  },
66
65
  "homepage": "https://github.com/mateuszJS/magic-render#readme",
67
66
  "files": [
68
- "dist/**/*"
67
+ "lib/**/*"
69
68
  ]
70
69
  }
@@ -1 +0,0 @@
1
- "use strict";exports.id=701,exports.ids=[701],exports.modules={701:(e,t,n)=>{n.a(e,(async(e,_)=>{try{n.r(t),n.d(t,{State:()=>i.Uw,__wbg_error_53abcd6a461f73d8:()=>i.$X,__wbg_new_034f913e7636e987:()=>i.x4,__wbg_new_e69b5f66fda8f13c:()=>i.YV,__wbg_set_20cbc34131e76824:()=>i.H0,__wbg_set_425e70f7c64ac962:()=>i.Ls,__wbg_set_wasm:()=>i.lI,__wbg_stringify_eead5648c09faaf8:()=>i.Yg,__wbindgen_init_externref_table:()=>i.bL,__wbindgen_is_undefined:()=>i.vU,__wbindgen_number_new:()=>i.QR,__wbindgen_string_get:()=>i.qN,__wbindgen_string_new:()=>i.yc,__wbindgen_throw:()=>i.Qn});var r=n(962),i=n(895),o=e([r]);r=(o.then?(await o)():o)[0],(0,i.lI)(r),r.__wbindgen_start(),_()}catch(e){_(e)}}))},895:(e,t,n)=>{let _;function r(e){_=e}n.d(t,{$X:()=>T,H0:()=>m,Ls:()=>I,QR:()=>x,Qn:()=>Q,Uw:()=>b,YV:()=>h,Yg:()=>p,bL:()=>U,lI:()=>r,qN:()=>L,vU:()=>l,x4:()=>v,yc:()=>y});let i=new("undefined"==typeof TextDecoder?(0,module.require)("util").TextDecoder:TextDecoder)("utf-8",{ignoreBOM:!0,fatal:!0});i.decode();let o=null;function s(){return null!==o&&0!==o.byteLength||(o=new Uint8Array(_.memory.buffer)),o}function c(e,t){return e>>>=0,i.decode(s().subarray(e,e+t))}let d=0,u=new("undefined"==typeof TextEncoder?(0,module.require)("util").TextEncoder:TextEncoder)("utf-8");const f="function"==typeof u.encodeInto?function(e,t){return u.encodeInto(e,t)}:function(e,t){const n=u.encode(e);return t.set(n),{read:e.length,written:n.length}};let a=null;function w(){return(null===a||!0===a.buffer.detached||void 0===a.buffer.detached&&a.buffer!==_.memory.buffer)&&(a=new DataView(_.memory.buffer)),a}const g="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((e=>_.__wbg_state_free(e>>>0,1)));class b{static __wrap(e){e>>>=0;const t=Object.create(b.prototype);return t.__wbg_ptr=e,g.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,g.unregister(this),e}free(){const e=this.__destroy_into_raw();_.__wbg_state_free(e,0)}static new(e,t){const n=_.state_new(e,t);return b.__wrap(n)}add_texture(e,t){_.state_add_texture(this.__wbg_ptr,e,t)}get_shader_input(e){return _.state_get_shader_input(this.__wbg_ptr,e)}update_points(e,t){_.state_update_points(this.__wbg_ptr,e,t)}}function l(e){return void 0===e}function p(){return function(e,t){try{return e.apply(this,t)}catch(e){const t=function(e){const t=_.__externref_table_alloc();return _.__wbindgen_export_2.set(t,e),t}(e);_.__wbindgen_exn_store(t)}}((function(e){return JSON.stringify(e)}),arguments)}function y(e,t){return c(e,t)}function h(){return new Object}function x(e){return e}function m(e,t,n){e[t]=n}function v(){return new Array}function I(e,t,n){e[t>>>0]=n}function L(e,t){const n="string"==typeof t?t:void 0;var r=null==n?0:function(e,t,n){if(void 0===n){const n=u.encode(e),_=t(n.length,1)>>>0;return s().subarray(_,_+n.length).set(n),d=n.length,_}let _=e.length,r=t(_,1)>>>0;const i=s();let o=0;for(;o<_;o++){const t=e.charCodeAt(o);if(t>127)break;i[r+o]=t}if(o!==_){0!==o&&(e=e.slice(o)),r=n(r,_,_=o+3*e.length,1)>>>0;const t=s().subarray(r+o,r+_);o+=f(e,t).written,r=n(r,_,o,1)>>>0}return d=o,r}(n,_.__wbindgen_malloc,_.__wbindgen_realloc),i=d;w().setInt32(e+4,i,!0),w().setInt32(e+0,r,!0)}function Q(e,t){throw new Error(c(e,t))}const T="function"==typeof console.error?console.error:()=>{throw new Error("console.error is not defined")};function U(){const e=_.__wbindgen_export_2,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)}},962:(e,t,n)=>{var _=n(895);e.exports=n.v(t,e.id,"2e9c8dbbfc49aa9c830e",{"./index_bg.js":{__wbindgen_is_undefined:_.vU,__wbg_stringify_eead5648c09faaf8:_.Yg,__wbindgen_string_new:_.yc,__wbg_new_e69b5f66fda8f13c:_.YV,__wbindgen_number_new:_.QR,__wbg_set_20cbc34131e76824:_.H0,__wbg_new_034f913e7636e987:_.x4,__wbg_set_425e70f7c64ac962:_.Ls,__wbindgen_string_get:_.qN,__wbindgen_throw:_.Qn,__wbg_error_53abcd6a461f73d8:_.$X,__wbindgen_init_externref_table:_.bL}})}};
@@ -1 +0,0 @@
1
- {"version":3,"file":"canvasSizeObserver.d.ts","sourceRoot":"","sources":["../../src/WebGPU/canvasSizeObserver.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,MAAM,EAAE,iBAAiB,EACzB,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,YAAY,QAgBvB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getDevice.d.ts","sourceRoot":"","sources":["../../src/WebGPU/getDevice.ts"],"names":[],"mappings":"AAAA,wBAA8B,SAAS,uBAuBtC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"createCheckedImageData.d.ts","sourceRoot":"","sources":["../../../src/WebGPU/getTexture/createCheckedImageData.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAwBrF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateMimapsArray.d.ts","sourceRoot":"","sources":["../../../src/WebGPU/getTexture/generateMimapsArray.ts"],"names":[],"mappings":"AAIA,UAAU,cAAc;IACtB,cAAc,EAAE,oBAAoB,CAAC;IACrC,eAAe,EAAE,CAAC,CAAC;CACpB;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,UAAU,EACnB,cAAc,EAAE,cAAc,QAuH/B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/WebGPU/getTexture/index.ts"],"names":[],"mappings":"AAGA,UAAU,OAAO;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,KAAK,aAAa,GAChB,WAAW,GACX,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,CAAC;AAOlB,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,0BAA0B,CAAA;IAClC,WAAW,EAAE,OAAO,CAAA;CACrB;AAgCD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,cAUlG;AAGD,wBAAgB,WAAW,CACzB,MAAM,EAAE,SAAS,EACjB,aAAa,EAAE,UAAU,EACzB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,0BAA0B,EAClC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,OAAY,QA0BtB;AAGD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,OAAY,cAWtG;AAiBD,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,wBAIhD;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,uBAG5F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"m3.d.ts","sourceRoot":"","sources":["../../src/WebGPU/m3.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,IAAI;gBACI,YAAY;sBAON,MAAM,UAAU,MAAM;;gBAe5B,YAAY,KAAK,YAAY;0BAmCnB,CAAC,MAAM,EAAE,MAAM,CAAC;6BAOb,MAAM;sBAUb,CAAC,MAAM,EAAE,MAAM,CAAC;iBAOrB,YAAY,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC;cAI9C,YAAY,kBAAkB,MAAM;aAIrC,YAAY,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;CAG/C,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getProgram.d.ts","sourceRoot":"","sources":["../../../../src/WebGPU/programs/blur/getProgram.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAM,EAAE,SAAS,IAehD,SAAS,UAAU,EACnB,gBAAgB,iBAAiB,KAChC,UAAU,CA2Kd"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getProgram.d.ts","sourceRoot":"","sources":["../../../../src/WebGPU/programs/draw3dModel/getProgram.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,IAwCtF,MAAM,oBAAoB,EAC1B,QAAQ,YAAY,EACpB,YAAY,YAAY,EACxB,WAAW,WAAW,UAmDzB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getProgram.d.ts","sourceRoot":"","sources":["../../../../src/WebGPU/programs/draw3dModelLight/getProgram.ts"],"names":[],"mappings":"AAEA,UAAU,QAAQ;IAChB,mBAAmB,EAAE,YAAY,CAAC;IAClC,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,YAAY,CAAC;IACzB,cAAc,EAAE,YAAY,CAAA;CAC7B;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,IAyCtF,MAAM,oBAAoB,EAC1B,SAAS,QAAQ,EACjB,YAAY,YAAY,EACxB,WAAW,WAAW,UAqEzB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getProgram.d.ts","sourceRoot":"","sources":["../../../../src/WebGPU/programs/draw3dModelTexture/getProgram.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,IAoCtF,MAAM,oBAAoB,EAC1B,QAAQ,YAAY,EACpB,SAAS,UAAU,EACnB,YAAY,YAAY,EACxB,WAAW,WAAW,UAwDzB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getProgram.d.ts","sourceRoot":"","sources":["../../../../src/WebGPU/programs/drawBezier/getProgram.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,IAiDtF,MAAM,oBAAoB,EAC1B,QAAQ,YAAY,EACpB,YAAY,YAAY,EACxB,OAAO,YAAY,EACnB,SAAS,YAAY,EACrB,kBAAkB,WAAW,EAC7B,MAAM,MAAM,UAoFf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getProgram.d.ts","sourceRoot":"","sources":["../../../../src/WebGPU/programs/drawTexture/getProgram.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,MAAM,EAAE,SAAS,EACjB,kBAAkB,EAAE,gBAAgB,IAqElC,MAAM,oBAAoB,EAC1B,uBAAuB,YAAY,EACnC,YAAY,YAAY,CAAC,eAAe,CAAC,EACzC,SAAS,UAAU,UAkCtB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getProgram.d.ts","sourceRoot":"","sources":["../../../../src/WebGPU/programs/drawTriangle/getProgram.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,IA8CtF,MAAM,oBAAoB,EAC1B,QAAQ,YAAY,EACpB,GAAG,MAAM,UAkEZ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"initPrograms.d.ts","sourceRoot":"","sources":["../../../src/WebGPU/programs/initPrograms.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,2BAA2B,CAAA;AACvD,OAAO,aAAa,MAAM,yBAAyB,CAAA;AACnD,OAAO,qBAAqB,MAAM,iCAAiC,CAAA;AACnE,OAAO,cAAc,MAAM,0BAA0B,CAAA;AACrD,OAAO,mBAAmB,MAAM,+BAA+B,CAAA;AAC/D,OAAO,OAAO,MAAM,mBAAmB,CAAA;AACvC,OAAO,cAAc,MAAM,0BAA0B,CAAA;AAErD,eAAO,IAAI,YAAY,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA;AAC3D,eAAO,IAAI,UAAU,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAA;AACvD,eAAO,IAAI,WAAW,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AACzD,eAAO,IAAI,kBAAkB,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAA;AACvE,eAAO,IAAI,gBAAgB,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAA;AACnE,eAAO,IAAI,QAAQ,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAA;AAC/C,eAAO,IAAI,WAAW,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;AAEzD,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,MAAM,EAAE,SAAS,EACjB,kBAAkB,EAAE,gBAAgB,QASrC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../src/__test__/index.test.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Preview/index.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../src/consts.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,aAAa,EAAE,GAAG,CAAC;QACnB,gBAAgB,EAAE,MAAM,CAAC;KAC1B;IAED,UAAU,SAAS;QACjB,gBAAgB,EAAE,MAAM,CAAC;KAC1B;CACF;AAED,eAAO,MAAM,QAAQ,SAGlB,CAAA;AAEH,eAAO,MAAM,SAAS,QAAsB,CAAA;AAC5C,eAAO,MAAM,YAAY,IAAI,CAAA;AAC7B,eAAO,MAAM,WAAW,QAA2B,CAAA;AAEnD,eAAO,MAAM,cAAc,KAIY,CAAA;AAEvC,eAAO,MAAM,GAAG,QAA0B,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getCanvasMatrix.d.ts","sourceRoot":"","sources":["../src/getCanvasMatrix.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,MAAM,EAAE,iBAAiB,6BAWhE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getCanvasRenderDescriptor.d.ts","sourceRoot":"","sources":["../src/getCanvasRenderDescriptor.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,2BAwB7F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getDepthTexture.d.ts","sourceRoot":"","sources":["../src/getDepthTexture.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,cAcvF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getRenderDescriptor.d.ts","sourceRoot":"","sources":["../src/getRenderDescriptor.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,mBAAmB,CACzC,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,SAAS,GAChB,uBAAuB,CAkCzB"}
@@ -1 +0,0 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.YourLibraryName=t():e.YourLibraryName=t()}(this,(()=>(()=>{"use strict";var e,t,r,n,o,a={},i={};function u(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={id:e,exports:{}};return a[e](r,r.exports,u),r.exports}u.m=a,e="function"==typeof Symbol?Symbol("webpack queues"):"__webpack_queues__",t="function"==typeof Symbol?Symbol("webpack exports"):"__webpack_exports__",r="function"==typeof Symbol?Symbol("webpack error"):"__webpack_error__",n=e=>{e&&e.d<1&&(e.d=1,e.forEach((e=>e.r--)),e.forEach((e=>e.r--?e.r++:e())))},u.a=(o,a,i)=>{var u;i&&((u=[]).d=-1);var s,f,l,c=new Set,d=o.exports,p=new Promise(((e,t)=>{l=t,f=e}));p[t]=d,p[e]=e=>(u&&e(u),c.forEach(e),p.catch((e=>{}))),o.exports=p,a((o=>{var a;s=(o=>o.map((o=>{if(null!==o&&"object"==typeof o){if(o[e])return o;if(o.then){var a=[];a.d=0,o.then((e=>{i[t]=e,n(a)}),(e=>{i[r]=e,n(a)}));var i={};return i[e]=e=>e(a),i}}var u={};return u[e]=e=>{},u[t]=o,u})))(o);var i=()=>s.map((e=>{if(e[r])throw e[r];return e[t]})),f=new Promise((t=>{(a=()=>t(i)).r=0;var r=e=>e!==u&&!c.has(e)&&(c.add(e),e&&!e.d&&(a.r++,e.push(a)));s.map((t=>t[e](r)))}));return a.r?f:i()}),(e=>(e?l(p[r]=e):f(d),n(u)))),u&&u.d<0&&(u.d=0)},u.d=(e,t)=>{for(var r in t)u.o(t,r)&&!u.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},u.f={},u.e=e=>Promise.all(Object.keys(u.f).reduce(((t,r)=>(u.f[r](e,t),t)),[])),u.u=e=>e+".53ef6be51135b1f869af.js",u.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),u.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},u.v=(e,t,r,n)=>new Promise((function(e,t){try{var{readFile:n}=require("fs"),{join:o}=require("path");n(o(__dirname,r+".module.wasm"),(function(r,n){if(r)return t(r);e({arrayBuffer:()=>n})}))}catch(e){t(e)}})).then((e=>e.arrayBuffer())).then((e=>WebAssembly.instantiate(e,n))).then((t=>Object.assign(e,t.instance.exports))),o={57:1},u.f.require=(e,t)=>{o[e]||(e=>{var t=e.modules,r=e.ids,n=e.runtime;for(var a in t)u.o(t,a)&&(u.m[a]=t[a]);n&&n(u);for(var i=0;i<r.length;i++)o[r[i]]=1})(require("./"+u.u(e)))};var s={};function f(e,t,r,n){e.width=Math.max(1,Math.min(t,n.limits.maxTextureDimension2D)),e.height=Math.max(1,Math.min(r,n.limits.maxTextureDimension2D))}u.r(s),u.d(s,{default:()=>C});var l=function(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{s(n.next(e))}catch(e){a(e)}}function u(e){try{s(n.throw(e))}catch(e){a(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,u)}s((n=n.apply(e,t||[])).next())}))};const c={fromMat4:(e,t=new Float32Array(12))=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[8]=e[8],t[9]=e[9],t[10]=e[10],t),projection:(e,t,r=new Float32Array(12))=>(r[0]=2/e,r[1]=0,r[2]=0,r[4]=0,r[5]=-2/t,r[6]=0,r[8]=-1,r[9]=1,r[10]=1,r),identity:(e=new Float32Array(12))=>(e[0]=1,e[1]=0,e[2]=0,e[4]=0,e[5]=1,e[6]=0,e[8]=0,e[9]=0,e[10]=1,e),multiply(e,t,r=new Float32Array(12)){r=r||new Float32Array(12);const n=e[0],o=e[1],a=e[2],i=e[4],u=e[5],s=e[6],f=e[8],l=e[9],c=e[10],d=t[0],p=t[1],m=t[2],g=t[4],h=t[5],v=t[6],b=t[8],x=t[9],y=t[10];return r[0]=d*n+p*i+m*f,r[1]=d*o+p*u+m*l,r[2]=d*a+p*s+m*c,r[4]=g*n+h*i+v*f,r[5]=g*o+h*u+v*l,r[6]=g*a+h*s+v*c,r[8]=b*n+x*i+y*f,r[9]=b*o+x*u+y*l,r[10]=b*a+x*s+y*c,r},translation:([e,t],r=new Float32Array(12))=>(r[0]=1,r[1]=0,r[2]=0,r[4]=0,r[5]=1,r[6]=0,r[8]=e,r[9]=t,r[10]=1,r),rotation(e,t=new Float32Array(12)){const r=Math.cos(e),n=Math.sin(e);return t[0]=r,t[1]=n,t[2]=0,t[4]=-n,t[5]=r,t[6]=0,t[8]=0,t[9]=0,t[10]=1,t},scaling:([e,t],r=new Float32Array(12))=>(r[0]=e,r[1]=0,r[2]=0,r[4]=0,r[5]=t,r[6]=0,r[8]=0,r[9]=0,r[10]=1,r),translate:(e,t,r=new Float32Array(12))=>c.multiply(e,c.translation(t),r),rotate:(e,t,r=new Float32Array(12))=>c.multiply(e,c.rotation(t),r),scale:(e,t,r=new Float32Array(12))=>c.multiply(e,c.scaling(t),r)},d=c,p="struct Uniforms {\n color: vec4f,\n matrix: mat3x3f,\n};\n\nstruct Vertex {\n @location(0) position: vec2f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(vert: Vertex) -> VSOutput {\n var vsOut: VSOutput;\n\n let clipSpace = (uni.matrix * vec3f(vert.position, 1)).xy;\n vsOut.position = vec4f(clipSpace, 0.0, 1.0);\n return vsOut;\n}\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return uni.color;\n}\n",m="struct Uniforms {\n matrix: mat4x4f,\n zoom: f32,\n};\n\nstruct Vertex {\n @location(0) t: f32,\n @location(1) dir: f32,\n @location(2) segmentIndex: u32,\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n\n@group(0) @binding(1) var<storage> points: array<vec2f>;\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n};\n\n@vertex fn vs(vert: Vertex) -> VSOutput {\n var vsOut: VSOutput;\n \n let p1 = points[vert.segmentIndex * 4 + 0];\n let p2 = points[vert.segmentIndex * 4 + 1];\n let p3 = points[vert.segmentIndex * 4 + 2];\n let p4 = points[vert.segmentIndex * 4 + 3];\n\n let t2 = vert.t * vert.t;\n let one_minus_t = 1.0 - vert.t;\n let one_minus_t2 = one_minus_t * one_minus_t;\n let pos = p1 * one_minus_t2 * one_minus_t + p2 * 3.0 * vert.t * one_minus_t2 + p3 * 3.0 * t2 * one_minus_t + p4 * t2 * vert.t;\n\n let angle = one_minus_t2 * (p2 - p1) + 2.0 * vert.t * one_minus_t * (p3 - p2) + t2 * (p4 - p3);\n let angleNorm = normalize(angle) * 5 / u.zoom;\n let transPos = vec2(pos.x - angleNorm.y * vert.dir, pos.y + angleNorm.x * vert.dir);\n let clipSpace = (u.matrix * vec4f(transPos, 1, 1));\n vsOut.position = clipSpace;\n vsOut.color = vec4f(f32(vert.segmentIndex) % 3, (f32(vert.segmentIndex) + 1) % 3, (f32(vert.segmentIndex) + 2) % 3, 1);\n\n return vsOut;\n}\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return vsOut.color;\n}\n",g="struct Uniforms {\n matrix: mat4x4f,\n};\n\nstruct Vertex {\n @location(0) position: vec4f,\n @location(1) texcoord: vec2f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) texcoord: vec2f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(vert: Vertex) -> VSOutput {\n var vsOut: VSOutput;\n vsOut.position = uni.matrix * vert.position;\n vsOut.texcoord = vert.texcoord;\n return vsOut;\n}\n\n@group(0) @binding(1) var ourSampler: sampler;\n@group(0) @binding(2) var ourTexture: texture_2d<f32>;\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return textureSample(ourTexture, ourSampler, vsOut.texcoord);\n}\n",h="struct Uniforms {\n matrix: mat4x4f,\n};\n\nstruct Vertex {\n @location(0) position: vec4f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(\n vert: Vertex,\n @builtin(vertex_index) vertexIndex : u32,\n // @builtin(instance_index) instanceIndex: u32\n ) -> VSOutput {\n var vsOut: VSOutput;\n vsOut.position = uni.matrix * vert.position;\n vsOut.color = vec4f(f32(vertexIndex) % 3, (f32(vertexIndex) + 1) % 3, (f32(vertexIndex) + 2) % 3, 1);\n return vsOut;\n}\n\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return vsOut.color;\n}\n",v="struct Uniforms {\n normalMatrix: mat3x3f,\n worldViewProjection: mat4x4f,\n lightColor: vec4f,\n lightDirection: vec3f,\n};\n\nstruct Vertex {\n @location(0) position: vec4f,\n @location(1) normal: vec3f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n @location(1) normal: vec3f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(\n vert: Vertex,\n @builtin(vertex_index) vertexIndex : u32,\n // @builtin(instance_index) instanceIndex: u32\n ) -> VSOutput {\n var vsOut: VSOutput;\n vsOut.position = uni.worldViewProjection * vert.position;\n vsOut.normal = uni.normalMatrix * vert.normal;\n vsOut.color = vec4f(f32(vertexIndex) % 3, (f32(vertexIndex) + 1) % 3, (f32(vertexIndex) + 2) % 3, 1);\n\n return vsOut;\n}\n\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n // Because vsOut.normal is an inter-stage variable \n // it's interpolated so it will not be a unit vector.\n // Normalizing it will make it a unit vector again\n let normal = normalize(vsOut.normal);\n \n // Compute the light by taking the dot product\n // of the normal to the light's reverse direction\n let light = dot(normal, -uni.lightDirection);\n \n // Lets multiply just the color portion (not the alpha)\n // by the light\n let color = vec3f(0.23) + uni.lightColor.rgb * light;\n // let color = vsOut.color.rgb * 0.5 + uni.lightColor.rgb * light;\n return vec4f(color, vsOut.color.a);\n}\n",b="struct Params {\n filterDim : i32,\n blockDim : u32,\n}\n\n@group(0) @binding(0) var samp : sampler;\n@group(0) @binding(1) var<uniform> params : Params;\n@group(1) @binding(1) var inputTex : texture_2d<f32>;\n@group(1) @binding(2) var outputTex : texture_storage_2d<rgba8unorm, write>;\n\nstruct Flip {\n value : u32,\n}\n@group(1) @binding(3) var<uniform> flip : Flip;\n\n// This shader blurs the input texture in one direction, depending on whether\n// |flip.value| is 0 or 1.\n// It does so by running (128 / 4) threads per workgroup to load 128\n// texels into 4 rows of shared memory. Each thread loads a\n// 4 x 4 block of texels to take advantage of the texture sampling\n// hardware.\n// Then, each thread computes the blur result by averaging the adjacent texel values\n// in shared memory.\n// Because we're operating on a subset of the texture, we cannot compute all of the\n// results since not all of the neighbors are available in shared memory.\n// Specifically, with 128 x 128 tiles, we can only compute and write out\n// square blocks of size 128 - (filterSize - 1). We compute the number of blocks\n// needed in Javascript and dispatch that amount.\n\n// 128/4 = 32 -> number of threads per working group\n// does it in 4x4 block of texels(takes advantage of texture sampling hardware)\n// with this beign said, we don't have all the neighbours, only this block\n// That's why we can only compute & write out blocks of size 128 - (filterSize - 1)\nvar<workgroup> tile : array<array<vec3<f32>, 128>, 4>;\n\n@compute @workgroup_size(32, 1, 1)\nfn main(\n @builtin(workgroup_id) WorkGroupID : vec3<u32>,\n @builtin(local_invocation_id) LocalInvocationID : vec3<u32>\n) {\n let filterOffset = (params.filterDim - 1) / 2;\n let dims = vec2<i32>(textureDimensions(inputTex, 0));\n let baseIndex = vec2<i32>(WorkGroupID.xy * vec2(params.blockDim, 4) + // it's just the index of the first texel in a group\n LocalInvocationID.xy * vec2(4, 1)) // <0, 128>\n - vec2(filterOffset, 0);\n // baseIndex = xy of first texel of group\n for (var r = 0; r < 4; r++) {\n for (var c = 0; c < 4; c++) {\n var loadIndex = baseIndex + vec2(c, r);\n if (flip.value != 0) {\n loadIndex = loadIndex.yx;\n }\n\n tile[r][4 * LocalInvocationID.x + u32(c)] = textureSampleLevel(\n inputTex,\n samp,\n (vec2<f32>(loadIndex) + vec2<f32>(0.25, 0.25)) / vec2<f32>(dims),\n 0.0\n ).rgb;\n }\n }\n\n workgroupBarrier();\n // helps coordinate access to read-write memory\n // so all threads(32) will wait to hit this barrer, and then start form here together\n\n for (var r = 0; r < 4; r++) {\n for (var c = 0; c < 4; c++) {\n var writeIndex = baseIndex + vec2(c, r);\n if (flip.value != 0) {\n writeIndex = writeIndex.yx;\n }\n\n let center = i32(4 * LocalInvocationID.x) + c;\n if (center >= filterOffset &&\n center < 128 - filterOffset &&\n all(writeIndex < dims)) {\n var acc = vec3(0.0, 0.0, 0.0);\n for (var f = 0; f < params.filterDim; f++) {\n var i = center + f - filterOffset;\n acc = acc + (1.0 / f32(params.filterDim)) * tile[r][i];\n }\n textureStore(outputTex, writeIndex, vec4(acc, 1.0));\n }\n }\n }\n}\n",x=128,y=[4,4],w="struct Vertex {\n @location(0) position: vec4f,\n @location(1) uv: vec2f,\n};\n\nstruct Uniforms {\n worldViewProjection: mat4x4f,\n};\n\nstruct VertexOutput {\n @builtin(position) position: vec4f,\n @location(0) texCoord: vec2f,\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n@group(0) @binding(1) var ourSampler: sampler;\n@group(0) @binding(2) var ourTexture: texture_2d<f32>;\n\n@vertex fn vs(vert: Vertex) -> VertexOutput {\n var out: VertexOutput;\n // maybe we should pass offsets from the position instead of... position?\n out.position = u.worldViewProjection * vert.position;\n out.texCoord = vert.uv;\n \n return out;\n}\n\n@fragment fn fs(in: VertexOutput) -> @location(0) vec4f {\n let texel = textureSample(ourTexture, ourSampler, in.texCoord);\n return texel;\n}\n",B=6;let U,P,O,S,G,_,I,T;const V={cross(e,t,r=new Float32Array(3)){const n=e[1]*t[2]-e[2]*t[1],o=e[2]*t[0]-e[0]*t[2],a=e[0]*t[1]-e[1]*t[0];return r[0]=n,r[1]=o,r[2]=a,r},subtract:(e,t,r=new Float32Array(3))=>(r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r),normalize(e,t=new Float32Array(3)){const r=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);return r>1e-5?(t[0]=e[0]/r,t[1]=e[1]/r,t[2]=e[2]/r):(t[0]=0,t[1]=0,t[2]=0),t}},A={projection:(e,t,r,n)=>A.ortho(0,e,t,0,r,-r,n),perspective(e,t,r,n,o=new Float32Array(16)){const a=Math.tan(.5*Math.PI-.5*e),i=1/(r-n);return o[0]=a/t,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=a,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=n*i,o[11]=-1,o[12]=0,o[13]=0,o[14]=r*n*i,o[15]=0,o},ortho:(e,t,r,n,o,a,i=new Float32Array(16))=>(i[0]=2/(t-e),i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=2/(n-r),i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=1/(o-a),i[11]=0,i[12]=(t+e)/(e-t),i[13]=(n+r)/(r-n),i[14]=o/(o-a),i[15]=1,i),identity:(e=new Float32Array(16))=>(e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e),multiply(e,t,r=new Float32Array(16)){const n=t[0],o=t[1],a=t[2],i=t[3],u=t[4],s=t[5],f=t[6],l=t[7],c=t[8],d=t[9],p=t[10],m=t[11],g=t[12],h=t[13],v=t[14],b=t[15],x=e[0],y=e[1],w=e[2],B=e[3],U=e[4],P=e[5],O=e[6],S=e[7],G=e[8],_=e[9],I=e[10],T=e[11],V=e[12],A=e[13],M=e[14],F=e[15];return r[0]=n*x+o*U+a*G+i*V,r[1]=n*y+o*P+a*_+i*A,r[2]=n*w+o*O+a*I+i*M,r[3]=n*B+o*S+a*T+i*F,r[4]=u*x+s*U+f*G+l*V,r[5]=u*y+s*P+f*_+l*A,r[6]=u*w+s*O+f*I+l*M,r[7]=u*B+s*S+f*T+l*F,r[8]=c*x+d*U+p*G+m*V,r[9]=c*y+d*P+p*_+m*A,r[10]=c*w+d*O+p*I+m*M,r[11]=c*B+d*S+p*T+m*F,r[12]=g*x+h*U+v*G+b*V,r[13]=g*y+h*P+v*_+b*A,r[14]=g*w+h*O+v*I+b*M,r[15]=g*B+h*S+v*T+b*F,r},cameraAim(e,t,r,n=new Float32Array(16)){const o=V.normalize(V.subtract(e,t)),a=V.normalize(V.cross(r,o)),i=V.normalize(V.cross(o,a));return n[0]=a[0],n[1]=a[1],n[2]=a[2],n[3]=0,n[4]=i[0],n[5]=i[1],n[6]=i[2],n[7]=0,n[8]=o[0],n[9]=o[1],n[10]=o[2],n[11]=0,n[12]=e[0],n[13]=e[1],n[14]=e[2],n[15]=1,n},inverse(e,t=new Float32Array(16)){const r=e[0],n=e[1],o=e[2],a=e[3],i=e[4],u=e[5],s=e[6],f=e[7],l=e[8],c=e[9],d=e[10],p=e[11],m=e[12],g=e[13],h=e[14],v=e[15],b=d*v,x=h*p,y=s*v,w=h*f,B=s*p,U=d*f,P=o*v,O=h*a,S=o*p,G=d*a,_=o*f,I=s*a,T=l*g,V=m*c,A=i*g,M=m*u,F=i*c,z=l*u,D=r*g,C=m*n,E=r*c,L=l*n,k=r*u,R=i*n,q=b*u+w*c+B*g-(x*u+y*c+U*g),N=x*n+P*c+G*g-(b*n+O*c+S*g),Y=y*n+O*u+_*g-(w*n+P*u+I*g),j=U*n+S*u+I*c-(B*n+G*u+_*c),W=1/(r*q+i*N+l*Y+m*j);return t[0]=W*q,t[1]=W*N,t[2]=W*Y,t[3]=W*j,t[4]=W*(x*i+y*l+U*m-(b*i+w*l+B*m)),t[5]=W*(b*r+O*l+S*m-(x*r+P*l+G*m)),t[6]=W*(w*r+P*i+I*m-(y*r+O*i+_*m)),t[7]=W*(B*r+G*i+_*l-(U*r+S*i+I*l)),t[8]=W*(T*f+M*p+F*v-(V*f+A*p+z*v)),t[9]=W*(V*a+D*p+L*v-(T*a+C*p+E*v)),t[10]=W*(A*a+C*f+k*v-(M*a+D*f+R*v)),t[11]=W*(z*a+E*f+R*p-(F*a+L*f+k*p)),t[12]=W*(A*d+z*h+V*s-(F*h+T*s+M*d)),t[13]=W*(E*h+T*o+C*d-(D*d+L*h+V*o)),t[14]=W*(D*s+R*h+M*o-(k*h+A*o+C*s)),t[15]=W*(k*d+F*o+L*s-(E*s+R*d+z*o)),t},transpose:(e,t=new Float32Array(16))=>(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t),aim(e,t,r,n=new Float32Array(16)){const o=V.normalize(V.subtract(t,e)),a=V.normalize(V.cross(r,o)),i=V.normalize(V.cross(o,a));return n[0]=a[0],n[1]=a[1],n[2]=a[2],n[3]=0,n[4]=i[0],n[5]=i[1],n[6]=i[2],n[7]=0,n[8]=o[0],n[9]=o[1],n[10]=o[2],n[11]=0,n[12]=e[0],n[13]=e[1],n[14]=e[2],n[15]=1,n},lookAt:(e,t,r,n)=>A.inverse(A.cameraAim(e,t,r,n),n),translation:([e,t,r],n=new Float32Array(16))=>(n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=e,n[13]=t,n[14]=r,n[15]=1,n),rotationX(e,t=new Float32Array(16)){const r=Math.cos(e),n=Math.sin(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=r,t[6]=n,t[7]=0,t[8]=0,t[9]=-n,t[10]=r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},rotationY(e,t=new Float32Array(16)){const r=Math.cos(e),n=Math.sin(e);return t[0]=r,t[1]=0,t[2]=-n,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=n,t[9]=0,t[10]=r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},rotationZ(e,t=new Float32Array(16)){const r=Math.cos(e),n=Math.sin(e);return t[0]=r,t[1]=n,t[2]=0,t[3]=0,t[4]=-n,t[5]=r,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},scaling:([e,t,r],n=new Float32Array(16))=>(n[0]=e,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=t,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=r,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n),translate:(e,t,r)=>A.multiply(e,A.translation(t),r),rotateX:(e,t,r)=>A.multiply(e,A.rotationX(t),r),rotateY:(e,t,r)=>A.multiply(e,A.rotationY(t),r),rotateZ:(e,t,r)=>A.multiply(e,A.rotationZ(t),r),scale:(e,t,r)=>A.multiply(e,A.scaling(t),r)},M=A;new Float32Array;const F=(...e)=>{const t=Math.max(...e);return 1+Math.log2(t)|0};function z(e,t,r){return Math.min(r,Math.max(t,e))}var D=function(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{s(n.next(e))}catch(e){a(e)}}function u(e){try{s(n.throw(e))}catch(e){a(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,u)}s((n=n.apply(e,t||[])).next())}))};function C(e){return D(this,void 0,void 0,(function*(){const t=yield function(){return l(this,void 0,void 0,(function*(){if(!navigator.gpu)throw Error("this browser does not support WebGPU");const e=yield navigator.gpu.requestAdapter();if(!e)throw Error("this browser supports webgpu but it appears disabled");const t=yield e.requestDevice();return t.lost.then((e=>{console.error(`WebGPU device was lost: ${e.message}`),e.reason})),t}))}(),{State:r}=yield u.e(701).then(u.bind(u,701)),n=r.new(300,300),o=e.getContext("webgpu");if(!o)throw Error("WebGPU from canvas needs to be always provided");const a=navigator.gpu.getPreferredCanvasFormat();o.configure({device:t,format:a}),function(e,t){new ResizeObserver((e=>{for(const r of e)f(r.target,0|r.contentBoxSize[0].inlineSize,0|r.contentBoxSize[0].blockSize,t)})).observe(e),f(e,e.clientWidth,e.clientHeight,t)}(e,t),function(e,t){U=function(e,t){const r=e.createShaderModule({label:"triangle shader module",code:p}),n=e.createRenderPipeline({label:"triangle pipline",layout:"auto",vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:t}]},depthStencil:{depthWriteEnabled:!1,depthCompare:"always",format:"depth24plus"}});return function(t,r,o){const a=e.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),i=new Float32Array(16),u=i.subarray(0,4),s=i.subarray(4,16);u.set([Math.random(),Math.random(),Math.random(),1]);const f=new Float32Array([500,100,800,400,200,400]),l=new Uint32Array([0,1,2]),c=e.createBuffer({label:"vertex buffer vertices",size:f.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(c,0,f);const p=e.createBuffer({label:"index buffer",size:l.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(p,0,l);const m=e.createBindGroup({label:"bind group for object",layout:n.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:a}}]});t.setPipeline(n),t.setVertexBuffer(0,c),t.setIndexBuffer(p,"uint32"),s.set(r),d.translate(s,[o,0],s),e.queue.writeBuffer(a,0,i),t.setBindGroup(0,m),t.drawIndexed(3)}}(e,t),P=function(e,t){const r=e.createShaderModule({label:"bezier shader module",code:m}),n=e.createRenderPipeline({label:"bezier pipline",layout:"auto",primitive:{topology:"triangle-strip"},vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:4,attributes:[{shaderLocation:0,offset:0,format:"float32"}]},{arrayStride:4,attributes:[{shaderLocation:1,offset:0,format:"float32"}]},{arrayStride:4,attributes:[{shaderLocation:2,offset:0,format:"uint32"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:t}]},depthStencil:{depthWriteEnabled:!1,depthCompare:"always",format:"depth24plus"}});return function(t,r,o,a,i,u,s){const f=4*o.length,l=e.createBuffer({label:"storage points",size:f,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}),c=e.createBuffer({label:"uniforms",size:80,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),d=new Float32Array(20),p=d.subarray(0,16),m=d.subarray(16,17),g=e.createBindGroup({label:"bezier bind group for object",layout:n.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:c}},{binding:1,resource:{buffer:l}}]}),h=e.createBuffer({label:"bezier vertex buffer vertices",size:a.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(h,0,a);const v=e.createBuffer({label:"bezier vertex buffer vertices",size:i.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(v,0,i);const b=e.createBuffer({label:"bezier vertex buffer vertices",size:u.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(b,0,u),t.setPipeline(n),t.setVertexBuffer(0,h),t.setVertexBuffer(1,v),t.setVertexBuffer(2,b),p.set(r),m.set(new Float32Array([s])),e.queue.writeBuffer(c,0,d),e.queue.writeBuffer(l,0,o),t.setBindGroup(0,g),t.draw(a.length)}}(e,t),S=function(e,t){const r=e.createShaderModule({label:"3d model texture shader module",code:g}),n=e.createRenderPipeline({label:"3d model texture pipline",layout:"auto",vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:20,attributes:[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x2"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:t}]},depthStencil:{depthWriteEnabled:!1,depthCompare:"always",format:"depth24plus"}});return function(t,r,o,a,i){const u=e.createSampler({magFilter:"linear",minFilter:"linear"}),s=e.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),f=new Float32Array(16),l=f.subarray(0,16),c=i.length,d=e.createBuffer({label:"3d model texture vertex buffer vertices",size:a.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(d,0,a);const p=e.createBuffer({label:"3d model texture index buffer",size:i.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(p,0,i);const m=e.createBindGroup({label:"3d model texture bind group for object",layout:n.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:s}},{binding:1,resource:u},{binding:2,resource:o.createView()}]});t.setPipeline(n),t.setVertexBuffer(0,d),t.setIndexBuffer(p,"uint32"),l.set(r),e.queue.writeBuffer(s,0,f),t.setBindGroup(0,m),t.drawIndexed(c)}}(e,t),O=function(e,t){const r=e.createShaderModule({label:"3d model shader module",code:h}),n=e.createRenderPipeline({label:"3d model pipline",layout:"auto",vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:12,attributes:[{shaderLocation:0,offset:0,format:"float32x3"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:t}]},primitive:{cullMode:"back"},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}});return function(t,r,o,a){const i=e.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),u=new Float32Array(16),s=u.subarray(0,16),f=a.length,l=e.createBuffer({label:"vertex buffer vertices",size:o.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(l,0,o);const c=e.createBuffer({label:"index buffer",size:a.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(c,0,a);const d=e.createBindGroup({label:"bind group for object",layout:n.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:i}}]});t.setPipeline(n),t.setVertexBuffer(0,l),t.setIndexBuffer(c,"uint32"),s.set(r),e.queue.writeBuffer(i,0,u),t.setBindGroup(0,d),t.drawIndexed(f)}}(e,t),G=function(e,t){const r=e.createShaderModule({label:"3d model light shader module",code:v}),n=e.createRenderPipeline({label:"3d model light pipline",layout:"auto",vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:24,attributes:[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x3"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:t}]},primitive:{cullMode:"back"},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}});return function(t,r,o,a){const{worldViewProjection:i,normalMatrix:u,lightColor:s,lightDirection:f}=r,l=e.createBuffer({label:"uniforms",size:144,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),c=new Float32Array(36),d=c.subarray(0,12),p=c.subarray(12,28),m=c.subarray(28,32),g=c.subarray(32,35),h=e.createBindGroup({label:"bind group for object",layout:n.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:l}}]}),v=a.length,b=e.createBuffer({label:"vertex buffer vertices",size:o.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(b,0,o);const x=e.createBuffer({label:"index buffer",size:a.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(x,0,a),t.setPipeline(n),t.setVertexBuffer(0,b),t.setIndexBuffer(x,"uint32"),d.set(u),p.set(i),m.set(s),g.set(f),e.queue.writeBuffer(l,0,c),t.setBindGroup(0,h),t.drawIndexed(v)}}(e,t),_=function(e){const t=e.createShaderModule({label:"blur shader module",code:b}),r=e.createComputePipeline({layout:"auto",compute:{module:t,entryPoint:"main"}});return function(t,n){const o=[0,1].map((()=>e.createTexture({size:{width:t.width,height:t.height},format:"rgba8unorm",usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING}))),a=(()=>{const t=e.createBuffer({size:4,mappedAtCreation:!0,usage:GPUBufferUsage.UNIFORM});return new Uint32Array(t.getMappedRange())[0]=0,t.unmap(),t})(),i=(()=>{const t=e.createBuffer({size:4,mappedAtCreation:!0,usage:GPUBufferUsage.UNIFORM});return new Uint32Array(t.getMappedRange())[0]=1,t.unmap(),t})(),u=e.createBuffer({size:8,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM}),s=e.createSampler({magFilter:"linear",minFilter:"linear"}),f=e.createBindGroup({layout:r.getBindGroupLayout(0),entries:[{binding:0,resource:s},{binding:1,resource:{buffer:u}}]}),l=e.createBindGroup({layout:r.getBindGroupLayout(1),entries:[{binding:1,resource:t.createView()},{binding:2,resource:o[0].createView()},{binding:3,resource:{buffer:a}}]}),c=e.createBindGroup({layout:r.getBindGroupLayout(1),entries:[{binding:1,resource:o[0].createView()},{binding:2,resource:o[1].createView()},{binding:3,resource:{buffer:i}}]}),d=e.createBindGroup({layout:r.getBindGroupLayout(1),entries:[{binding:1,resource:o[1].createView()},{binding:2,resource:o[0].createView()},{binding:3,resource:{buffer:a}}]}),p=x-14;e.queue.writeBuffer(u,0,new Uint32Array([15,p]));const m=n.beginComputePass();m.setPipeline(r),m.setBindGroup(0,f),m.setBindGroup(1,l),m.dispatchWorkgroups(Math.ceil(t.width/p),Math.ceil(t.height/y[1])),m.setBindGroup(1,c),m.dispatchWorkgroups(Math.ceil(t.height/p),Math.ceil(t.width/y[1]));for(let e=0;e<1;++e)m.setBindGroup(1,d),m.dispatchWorkgroups(Math.ceil(t.width/p),Math.ceil(t.height/y[1])),m.setBindGroup(1,c),m.dispatchWorkgroups(Math.ceil(t.height/p),Math.ceil(t.width/y[1]));return m.end(),o[1]}}(e),I=function(e,t){const r=e.createShaderModule({label:"texture module",code:w}),n=e.createSampler({minFilter:"linear",magFilter:"linear"}),o=e.createRenderPipeline({label:"texture pipeline",layout:"auto",vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:4*B,attributes:[{shaderLocation:0,offset:0,format:"float32x4"},{shaderLocation:1,offset:16,format:"float32x2"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:t}]}}),a=e.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),i=new Float32Array(16),u=i.subarray(0,16);return function(t,r,s,f){const l=Math.round(s.length/B),c=e.createBuffer({label:"vertex buffer vertices",size:s.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(c,0,s);const d=e.createBindGroup({layout:o.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:a}},{binding:1,resource:n},{binding:2,resource:f.createView()}]});t.setPipeline(o),t.setVertexBuffer(0,c),u.set(r),e.queue.writeBuffer(a,0,i),t.setBindGroup(0,d),t.draw(l)}}(e,t)}(t,a);const i=[];return function(e,t,r,n,o,a){const i=function(e){return M.ortho(0,e.clientWidth,e.clientHeight,0,1,-1)}(t);requestAnimationFrame((function t(o){const u=n.createCommandEncoder(),s=function(e,t){const r=e.getCurrentTexture();return function(e,t,r){T&&T.width===t&&T.height===r||(null==T||T.destroy(),T=e.createTexture({size:[t,r],format:"depth24plus",usage:GPUTextureUsage.RENDER_ATTACHMENT}))}(t,r.width,r.height),{label:"our render to canvas renderPass",colorAttachments:[{view:r.createView(),clearValue:[0,0,0,1],loadOp:"clear",storeOp:"store"}]}}(r,n),f=u.beginRenderPass(s);let l=!1,c=0;for(;!l;){const{texture_id:t,vertex_data:r}=e.get_shader_input(c);c++,l=0===r.length,l||I(f,i,new Float32Array(r),a[t])}f.end();const d=u.finish();n.queue.submit([d]),requestAnimationFrame(t)}))}(n,e,o,t,0,i),{addImage:r=>{const o=i.length;i.push(function(e,t,r={}){const n=e.createTexture({format:"rgba8unorm",mipLevelCount:r.mips?F(t.width,t.height):1,size:[t.width,t.height],usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return function(e,t,r,{flipY:n,depthOrArrayLayers:o}={}){e.queue.copyExternalImageToTexture({source:r,flipY:n},{texture:t},{width:r.width,height:r.height,depthOrArrayLayers:o})}(e,n,t,r),n}(t,r)),console.log("env",r.width,e.width);const a=function(e,t){if(t.height-e.height<t.width-e.width)return z(e.height,.2*t.height,.8*t.height)/e.height;return z(e.width,.2*t.width,.8*t.width)/e.width}(r,e),u=r.width*a,s=r.height*a,f=.5*(e.width-u),l=.5*(e.height-s);n.add_texture([{x:f,y:l,u:0,v:0},{x:f+u,y:l,u:1,v:0},{x:f+u,y:l+s,u:1,v:1},{x:f,y:l+s,u:0,v:1}],o)},updatePoints:(e,t)=>{n.update_points(e,t)}}}))}return s})()));
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B,UAAU,UAAU;IAClB,QAAQ,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACzC,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,CAAA;CAC3D;AAED,wBAA8B,WAAW,CACvC,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,UAAU,CAAC,CAmDrB"}
package/dist/index.html DELETED
@@ -1,13 +0,0 @@
1
- <!doctype html><head><base href="/"><meta charset="utf-8"/><title></title><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap"><style>html,
2
- body,
3
- canvas {
4
- width: 100%;
5
- height: 100%;
6
- margin: 0;
7
- padding: 0;
8
- }
9
-
10
- body {
11
- display: grid;
12
- grid-template-columns: 100px minmax(0, 1fr);
13
- }</style><script defer="defer" src="test-runtime.63d51731843ade072b76.js"></script><script defer="defer" src="test.js"></script></head><body><aside><input type="file"/> <button id="img-position">Update image position</button></aside><canvas></canvas></body>
@@ -1 +0,0 @@
1
- {"version":3,"file":"MiniatureVideo.d.ts","sourceRoot":"","sources":["../../../src/models/Video/MiniatureVideo.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,OAAO,OAAO,cAAc;IAgB/B,OAAO,CAAC,WAAW;IAEnB,OAAO,CAAC,MAAM;IAjBhB,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,OAAO,CAAC,CAAQ;IACxB,OAAO,CAAC,SAAS,CAAC,CAAQ;IACnB,IAAI,EAAE,gBAAgB,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,eAAe,CAAgB;IAChC,YAAY,EAAE,UAAU,CAAA;IAC/B,OAAO,CAAC,eAAe,CAAU;IAC1B,SAAS,EAAE,OAAO,CAAA;IACzB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,SAAS,CAAQ;gBAGvB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,EAClC,WAAW,EAAE,MAAM,MAAM,EACjC,UAAU,EAAE,YAAY,EAChB,MAAM,EAAE,SAAS;IAoD3B,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,EAExB;IAED,IAAI,QAAQ,IAJO,MAAM,CAMxB;IAGD,IAAI,QAAQ,WAQX;IAED,IAAI,KAAK,WAQR;IAED,IAAI,MAAM,WAQT;IAED,OAAO,CAAC,iBAAiB;IAiEzB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,eAAe;IAoBhB,cAAc;IAUd,YAAY,CACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,OAAO,GACb,OAAO;IAaH,IAAI,CAAC,IAAI,EAAE,MAAM;IAMjB,KAAK,aAGX;CACF"}
package/dist/run.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAGpC,eAAO,MAAM,eAAe,2BAAqB,CAAA;AACjD,eAAO,MAAM,oBAAoB,OAAO,CAAA;AAMxC,MAAM,CAAC,OAAO,UAAU,UAAU,CAChC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,SAAS,EACjB,kBAAkB,EAAE,gBAAgB,EACpC,QAAQ,EAAE,UAAU,EAAE,QAmCvB"}
@@ -1 +0,0 @@
1
- (()=>{"use strict";var e,r,t,o,a,n,i={},u={};function f(e){var r=u[e];if(void 0!==r)return r.exports;var t=u[e]={id:e,exports:{}};return i[e](t,t.exports,f),t.exports}f.m=i,e="function"==typeof Symbol?Symbol("webpack queues"):"__webpack_queues__",r="function"==typeof Symbol?Symbol("webpack exports"):"__webpack_exports__",t="function"==typeof Symbol?Symbol("webpack error"):"__webpack_error__",o=e=>{e&&e.d<1&&(e.d=1,e.forEach((e=>e.r--)),e.forEach((e=>e.r--?e.r++:e())))},f.a=(a,n,i)=>{var u;i&&((u=[]).d=-1);var f,s,p,c=new Set,d=a.exports,m=new Promise(((e,r)=>{p=r,s=e}));m[r]=d,m[e]=e=>(u&&e(u),c.forEach(e),m.catch((e=>{}))),a.exports=m,n((a=>{var n;f=(a=>a.map((a=>{if(null!==a&&"object"==typeof a){if(a[e])return a;if(a.then){var n=[];n.d=0,a.then((e=>{i[r]=e,o(n)}),(e=>{i[t]=e,o(n)}));var i={};return i[e]=e=>e(n),i}}var u={};return u[e]=e=>{},u[r]=a,u})))(a);var i=()=>f.map((e=>{if(e[t])throw e[t];return e[r]})),s=new Promise((r=>{(n=()=>r(i)).r=0;var t=e=>e!==u&&!c.has(e)&&(c.add(e),e&&!e.d&&(n.r++,e.push(n)));f.map((r=>r[e](t)))}));return n.r?s:i()}),(e=>(e?p(m[t]=e):s(d),o(u)))),u&&u.d<0&&(u.d=0)},f.d=(e,r)=>{for(var t in r)f.o(r,t)&&!f.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},f.f={},f.e=e=>Promise.all(Object.keys(f.f).reduce(((r,t)=>(f.f[t](e,r),r)),[])),f.u=e=>e+".53ef6be51135b1f869af.js",f.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),f.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.X=(e,r,t)=>{var o=r;t||(r=e,t=()=>f(f.s=o)),r.map(f.e,f);var a=t();return void 0===a?e:a},f.v=(e,r,t,o)=>new Promise((function(e,r){try{var{readFile:o}=require("fs"),{join:a}=require("path");o(a(__dirname,t+".module.wasm"),(function(t,o){if(t)return r(t);e({arrayBuffer:()=>o})}))}catch(e){r(e)}})).then((e=>e.arrayBuffer())).then((e=>WebAssembly.instantiate(e,o))).then((r=>Object.assign(e,r.instance.exports))),a={356:1},n=e=>{var r=e.modules,t=e.ids,o=e.runtime;for(var n in r)f.o(r,n)&&(f.m[n]=r[n]);o&&o(f);for(var i=0;i<t.length;i++)a[t[i]]=1},f.f.require=(e,r)=>{a[e]||(356!=e?n(require("./"+f.u(e))):a[e]=1)},module.exports=f,f.C=n})();
package/dist/test.js DELETED
@@ -1 +0,0 @@
1
- "use strict";!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.YourLibraryName=t():e.YourLibraryName=t()}(this,(()=>(()=>{var e={id:423,ids:[57,423]};e.modules={848:(e,t,r)=>{r.r(t);var n=r(185);!function(){var e,t,r,o;e=this,t=void 0,o=function*(){const e=document.querySelector("canvas"),t=yield(0,n.default)(e);document.querySelector("input").addEventListener("change",(e=>{const{files:r}=e.target;if(!r)return;const n=new Image;n.src=URL.createObjectURL(r[0]),n.onload=()=>{t.addImage(n)}}));let r=100;document.querySelector("#img-position").addEventListener("click",(()=>{t.updatePoints(0,[{x:r,y:r},{x:r+400,y:r},{x:r+400,y:r+400},{x:r,y:r+400}]),r+=10}))},new((r=void 0)||(r=Promise))((function(n,i){function a(e){try{s(o.next(e))}catch(e){i(e)}}function u(e){try{s(o.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,u)}s((o=o.apply(e,t||[])).next())}))}()},185:(e,t,r)=>{function n(e,t,r,n){e.width=Math.max(1,Math.min(t,n.limits.maxTextureDimension2D)),e.height=Math.max(1,Math.min(r,n.limits.maxTextureDimension2D))}r.d(t,{default:()=>_});var o=function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{s(n.next(e))}catch(e){i(e)}}function u(e){try{s(n.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,u)}s((n=n.apply(e,t||[])).next())}))};const i={fromMat4:(e,t=new Float32Array(12))=>(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[8]=e[8],t[9]=e[9],t[10]=e[10],t),projection:(e,t,r=new Float32Array(12))=>(r[0]=2/e,r[1]=0,r[2]=0,r[4]=0,r[5]=-2/t,r[6]=0,r[8]=-1,r[9]=1,r[10]=1,r),identity:(e=new Float32Array(12))=>(e[0]=1,e[1]=0,e[2]=0,e[4]=0,e[5]=1,e[6]=0,e[8]=0,e[9]=0,e[10]=1,e),multiply(e,t,r=new Float32Array(12)){r=r||new Float32Array(12);const n=e[0],o=e[1],i=e[2],a=e[4],u=e[5],s=e[6],f=e[8],l=e[9],c=e[10],d=t[0],p=t[1],g=t[2],m=t[4],h=t[5],v=t[6],b=t[8],x=t[9],y=t[10];return r[0]=d*n+p*a+g*f,r[1]=d*o+p*u+g*l,r[2]=d*i+p*s+g*c,r[4]=m*n+h*a+v*f,r[5]=m*o+h*u+v*l,r[6]=m*i+h*s+v*c,r[8]=b*n+x*a+y*f,r[9]=b*o+x*u+y*l,r[10]=b*i+x*s+y*c,r},translation:([e,t],r=new Float32Array(12))=>(r[0]=1,r[1]=0,r[2]=0,r[4]=0,r[5]=1,r[6]=0,r[8]=e,r[9]=t,r[10]=1,r),rotation(e,t=new Float32Array(12)){const r=Math.cos(e),n=Math.sin(e);return t[0]=r,t[1]=n,t[2]=0,t[4]=-n,t[5]=r,t[6]=0,t[8]=0,t[9]=0,t[10]=1,t},scaling:([e,t],r=new Float32Array(12))=>(r[0]=e,r[1]=0,r[2]=0,r[4]=0,r[5]=t,r[6]=0,r[8]=0,r[9]=0,r[10]=1,r),translate:(e,t,r=new Float32Array(12))=>i.multiply(e,i.translation(t),r),rotate:(e,t,r=new Float32Array(12))=>i.multiply(e,i.rotation(t),r),scale:(e,t,r=new Float32Array(12))=>i.multiply(e,i.scaling(t),r)},a=i,u="struct Uniforms {\n color: vec4f,\n matrix: mat3x3f,\n};\n\nstruct Vertex {\n @location(0) position: vec2f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(vert: Vertex) -> VSOutput {\n var vsOut: VSOutput;\n\n let clipSpace = (uni.matrix * vec3f(vert.position, 1)).xy;\n vsOut.position = vec4f(clipSpace, 0.0, 1.0);\n return vsOut;\n}\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return uni.color;\n}\n",s="struct Uniforms {\n matrix: mat4x4f,\n zoom: f32,\n};\n\nstruct Vertex {\n @location(0) t: f32,\n @location(1) dir: f32,\n @location(2) segmentIndex: u32,\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n\n@group(0) @binding(1) var<storage> points: array<vec2f>;\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n};\n\n@vertex fn vs(vert: Vertex) -> VSOutput {\n var vsOut: VSOutput;\n \n let p1 = points[vert.segmentIndex * 4 + 0];\n let p2 = points[vert.segmentIndex * 4 + 1];\n let p3 = points[vert.segmentIndex * 4 + 2];\n let p4 = points[vert.segmentIndex * 4 + 3];\n\n let t2 = vert.t * vert.t;\n let one_minus_t = 1.0 - vert.t;\n let one_minus_t2 = one_minus_t * one_minus_t;\n let pos = p1 * one_minus_t2 * one_minus_t + p2 * 3.0 * vert.t * one_minus_t2 + p3 * 3.0 * t2 * one_minus_t + p4 * t2 * vert.t;\n\n let angle = one_minus_t2 * (p2 - p1) + 2.0 * vert.t * one_minus_t * (p3 - p2) + t2 * (p4 - p3);\n let angleNorm = normalize(angle) * 5 / u.zoom;\n let transPos = vec2(pos.x - angleNorm.y * vert.dir, pos.y + angleNorm.x * vert.dir);\n let clipSpace = (u.matrix * vec4f(transPos, 1, 1));\n vsOut.position = clipSpace;\n vsOut.color = vec4f(f32(vert.segmentIndex) % 3, (f32(vert.segmentIndex) + 1) % 3, (f32(vert.segmentIndex) + 2) % 3, 1);\n\n return vsOut;\n}\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return vsOut.color;\n}\n",f="struct Uniforms {\n matrix: mat4x4f,\n};\n\nstruct Vertex {\n @location(0) position: vec4f,\n @location(1) texcoord: vec2f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) texcoord: vec2f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(vert: Vertex) -> VSOutput {\n var vsOut: VSOutput;\n vsOut.position = uni.matrix * vert.position;\n vsOut.texcoord = vert.texcoord;\n return vsOut;\n}\n\n@group(0) @binding(1) var ourSampler: sampler;\n@group(0) @binding(2) var ourTexture: texture_2d<f32>;\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return textureSample(ourTexture, ourSampler, vsOut.texcoord);\n}\n",l="struct Uniforms {\n matrix: mat4x4f,\n};\n\nstruct Vertex {\n @location(0) position: vec4f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(\n vert: Vertex,\n @builtin(vertex_index) vertexIndex : u32,\n // @builtin(instance_index) instanceIndex: u32\n ) -> VSOutput {\n var vsOut: VSOutput;\n vsOut.position = uni.matrix * vert.position;\n vsOut.color = vec4f(f32(vertexIndex) % 3, (f32(vertexIndex) + 1) % 3, (f32(vertexIndex) + 2) % 3, 1);\n return vsOut;\n}\n\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return vsOut.color;\n}\n",c="struct Uniforms {\n normalMatrix: mat3x3f,\n worldViewProjection: mat4x4f,\n lightColor: vec4f,\n lightDirection: vec3f,\n};\n\nstruct Vertex {\n @location(0) position: vec4f,\n @location(1) normal: vec3f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(0) color: vec4f,\n @location(1) normal: vec3f,\n};\n\n@group(0) @binding(0) var<uniform> uni: Uniforms;\n\n@vertex fn vs(\n vert: Vertex,\n @builtin(vertex_index) vertexIndex : u32,\n // @builtin(instance_index) instanceIndex: u32\n ) -> VSOutput {\n var vsOut: VSOutput;\n vsOut.position = uni.worldViewProjection * vert.position;\n vsOut.normal = uni.normalMatrix * vert.normal;\n vsOut.color = vec4f(f32(vertexIndex) % 3, (f32(vertexIndex) + 1) % 3, (f32(vertexIndex) + 2) % 3, 1);\n\n return vsOut;\n}\n\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n // Because vsOut.normal is an inter-stage variable \n // it's interpolated so it will not be a unit vector.\n // Normalizing it will make it a unit vector again\n let normal = normalize(vsOut.normal);\n \n // Compute the light by taking the dot product\n // of the normal to the light's reverse direction\n let light = dot(normal, -uni.lightDirection);\n \n // Lets multiply just the color portion (not the alpha)\n // by the light\n let color = vec3f(0.23) + uni.lightColor.rgb * light;\n // let color = vsOut.color.rgb * 0.5 + uni.lightColor.rgb * light;\n return vec4f(color, vsOut.color.a);\n}\n",d="struct Params {\n filterDim : i32,\n blockDim : u32,\n}\n\n@group(0) @binding(0) var samp : sampler;\n@group(0) @binding(1) var<uniform> params : Params;\n@group(1) @binding(1) var inputTex : texture_2d<f32>;\n@group(1) @binding(2) var outputTex : texture_storage_2d<rgba8unorm, write>;\n\nstruct Flip {\n value : u32,\n}\n@group(1) @binding(3) var<uniform> flip : Flip;\n\n// This shader blurs the input texture in one direction, depending on whether\n// |flip.value| is 0 or 1.\n// It does so by running (128 / 4) threads per workgroup to load 128\n// texels into 4 rows of shared memory. Each thread loads a\n// 4 x 4 block of texels to take advantage of the texture sampling\n// hardware.\n// Then, each thread computes the blur result by averaging the adjacent texel values\n// in shared memory.\n// Because we're operating on a subset of the texture, we cannot compute all of the\n// results since not all of the neighbors are available in shared memory.\n// Specifically, with 128 x 128 tiles, we can only compute and write out\n// square blocks of size 128 - (filterSize - 1). We compute the number of blocks\n// needed in Javascript and dispatch that amount.\n\n// 128/4 = 32 -> number of threads per working group\n// does it in 4x4 block of texels(takes advantage of texture sampling hardware)\n// with this beign said, we don't have all the neighbours, only this block\n// That's why we can only compute & write out blocks of size 128 - (filterSize - 1)\nvar<workgroup> tile : array<array<vec3<f32>, 128>, 4>;\n\n@compute @workgroup_size(32, 1, 1)\nfn main(\n @builtin(workgroup_id) WorkGroupID : vec3<u32>,\n @builtin(local_invocation_id) LocalInvocationID : vec3<u32>\n) {\n let filterOffset = (params.filterDim - 1) / 2;\n let dims = vec2<i32>(textureDimensions(inputTex, 0));\n let baseIndex = vec2<i32>(WorkGroupID.xy * vec2(params.blockDim, 4) + // it's just the index of the first texel in a group\n LocalInvocationID.xy * vec2(4, 1)) // <0, 128>\n - vec2(filterOffset, 0);\n // baseIndex = xy of first texel of group\n for (var r = 0; r < 4; r++) {\n for (var c = 0; c < 4; c++) {\n var loadIndex = baseIndex + vec2(c, r);\n if (flip.value != 0) {\n loadIndex = loadIndex.yx;\n }\n\n tile[r][4 * LocalInvocationID.x + u32(c)] = textureSampleLevel(\n inputTex,\n samp,\n (vec2<f32>(loadIndex) + vec2<f32>(0.25, 0.25)) / vec2<f32>(dims),\n 0.0\n ).rgb;\n }\n }\n\n workgroupBarrier();\n // helps coordinate access to read-write memory\n // so all threads(32) will wait to hit this barrer, and then start form here together\n\n for (var r = 0; r < 4; r++) {\n for (var c = 0; c < 4; c++) {\n var writeIndex = baseIndex + vec2(c, r);\n if (flip.value != 0) {\n writeIndex = writeIndex.yx;\n }\n\n let center = i32(4 * LocalInvocationID.x) + c;\n if (center >= filterOffset &&\n center < 128 - filterOffset &&\n all(writeIndex < dims)) {\n var acc = vec3(0.0, 0.0, 0.0);\n for (var f = 0; f < params.filterDim; f++) {\n var i = center + f - filterOffset;\n acc = acc + (1.0 / f32(params.filterDim)) * tile[r][i];\n }\n textureStore(outputTex, writeIndex, vec4(acc, 1.0));\n }\n }\n }\n}\n",p=128,g=[4,4],m="struct Vertex {\n @location(0) position: vec4f,\n @location(1) uv: vec2f,\n};\n\nstruct Uniforms {\n worldViewProjection: mat4x4f,\n};\n\nstruct VertexOutput {\n @builtin(position) position: vec4f,\n @location(0) texCoord: vec2f,\n};\n\n@group(0) @binding(0) var<uniform> u: Uniforms;\n@group(0) @binding(1) var ourSampler: sampler;\n@group(0) @binding(2) var ourTexture: texture_2d<f32>;\n\n@vertex fn vs(vert: Vertex) -> VertexOutput {\n var out: VertexOutput;\n // maybe we should pass offsets from the position instead of... position?\n out.position = u.worldViewProjection * vert.position;\n out.texCoord = vert.uv;\n \n return out;\n}\n\n@fragment fn fs(in: VertexOutput) -> @location(0) vec4f {\n let texel = textureSample(ourTexture, ourSampler, in.texCoord);\n return texel;\n}\n",h=6;let v,b,x,y,w,B,U,P;const O={cross(e,t,r=new Float32Array(3)){const n=e[1]*t[2]-e[2]*t[1],o=e[2]*t[0]-e[0]*t[2],i=e[0]*t[1]-e[1]*t[0];return r[0]=n,r[1]=o,r[2]=i,r},subtract:(e,t,r=new Float32Array(3))=>(r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r),normalize(e,t=new Float32Array(3)){const r=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);return r>1e-5?(t[0]=e[0]/r,t[1]=e[1]/r,t[2]=e[2]/r):(t[0]=0,t[1]=0,t[2]=0),t}},G={projection:(e,t,r,n)=>G.ortho(0,e,t,0,r,-r,n),perspective(e,t,r,n,o=new Float32Array(16)){const i=Math.tan(.5*Math.PI-.5*e),a=1/(r-n);return o[0]=i/t,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=i,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=n*a,o[11]=-1,o[12]=0,o[13]=0,o[14]=r*n*a,o[15]=0,o},ortho:(e,t,r,n,o,i,a=new Float32Array(16))=>(a[0]=2/(t-e),a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=2/(n-r),a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=1/(o-i),a[11]=0,a[12]=(t+e)/(e-t),a[13]=(n+r)/(r-n),a[14]=o/(o-i),a[15]=1,a),identity:(e=new Float32Array(16))=>(e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e),multiply(e,t,r=new Float32Array(16)){const n=t[0],o=t[1],i=t[2],a=t[3],u=t[4],s=t[5],f=t[6],l=t[7],c=t[8],d=t[9],p=t[10],g=t[11],m=t[12],h=t[13],v=t[14],b=t[15],x=e[0],y=e[1],w=e[2],B=e[3],U=e[4],P=e[5],O=e[6],G=e[7],S=e[8],I=e[9],T=e[10],V=e[11],_=e[12],A=e[13],F=e[14],M=e[15];return r[0]=n*x+o*U+i*S+a*_,r[1]=n*y+o*P+i*I+a*A,r[2]=n*w+o*O+i*T+a*F,r[3]=n*B+o*G+i*V+a*M,r[4]=u*x+s*U+f*S+l*_,r[5]=u*y+s*P+f*I+l*A,r[6]=u*w+s*O+f*T+l*F,r[7]=u*B+s*G+f*V+l*M,r[8]=c*x+d*U+p*S+g*_,r[9]=c*y+d*P+p*I+g*A,r[10]=c*w+d*O+p*T+g*F,r[11]=c*B+d*G+p*V+g*M,r[12]=m*x+h*U+v*S+b*_,r[13]=m*y+h*P+v*I+b*A,r[14]=m*w+h*O+v*T+b*F,r[15]=m*B+h*G+v*V+b*M,r},cameraAim(e,t,r,n=new Float32Array(16)){const o=O.normalize(O.subtract(e,t)),i=O.normalize(O.cross(r,o)),a=O.normalize(O.cross(o,i));return n[0]=i[0],n[1]=i[1],n[2]=i[2],n[3]=0,n[4]=a[0],n[5]=a[1],n[6]=a[2],n[7]=0,n[8]=o[0],n[9]=o[1],n[10]=o[2],n[11]=0,n[12]=e[0],n[13]=e[1],n[14]=e[2],n[15]=1,n},inverse(e,t=new Float32Array(16)){const r=e[0],n=e[1],o=e[2],i=e[3],a=e[4],u=e[5],s=e[6],f=e[7],l=e[8],c=e[9],d=e[10],p=e[11],g=e[12],m=e[13],h=e[14],v=e[15],b=d*v,x=h*p,y=s*v,w=h*f,B=s*p,U=d*f,P=o*v,O=h*i,G=o*p,S=d*i,I=o*f,T=s*i,V=l*m,_=g*c,A=a*m,F=g*u,M=a*c,z=l*u,D=r*m,L=g*n,C=r*c,E=l*n,R=r*u,q=a*n,k=b*u+w*c+B*m-(x*u+y*c+U*m),N=x*n+P*c+S*m-(b*n+O*c+G*m),Y=y*n+O*u+I*m-(w*n+P*u+T*m),j=U*n+G*u+T*c-(B*n+S*u+I*c),W=1/(r*k+a*N+l*Y+g*j);return t[0]=W*k,t[1]=W*N,t[2]=W*Y,t[3]=W*j,t[4]=W*(x*a+y*l+U*g-(b*a+w*l+B*g)),t[5]=W*(b*r+O*l+G*g-(x*r+P*l+S*g)),t[6]=W*(w*r+P*a+T*g-(y*r+O*a+I*g)),t[7]=W*(B*r+S*a+I*l-(U*r+G*a+T*l)),t[8]=W*(V*f+F*p+M*v-(_*f+A*p+z*v)),t[9]=W*(_*i+D*p+E*v-(V*i+L*p+C*v)),t[10]=W*(A*i+L*f+R*v-(F*i+D*f+q*v)),t[11]=W*(z*i+C*f+q*p-(M*i+E*f+R*p)),t[12]=W*(A*d+z*h+_*s-(M*h+V*s+F*d)),t[13]=W*(C*h+V*o+L*d-(D*d+E*h+_*o)),t[14]=W*(D*s+q*h+F*o-(R*h+A*o+L*s)),t[15]=W*(R*d+M*o+E*s-(C*s+q*d+z*o)),t},transpose:(e,t=new Float32Array(16))=>(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t),aim(e,t,r,n=new Float32Array(16)){const o=O.normalize(O.subtract(t,e)),i=O.normalize(O.cross(r,o)),a=O.normalize(O.cross(o,i));return n[0]=i[0],n[1]=i[1],n[2]=i[2],n[3]=0,n[4]=a[0],n[5]=a[1],n[6]=a[2],n[7]=0,n[8]=o[0],n[9]=o[1],n[10]=o[2],n[11]=0,n[12]=e[0],n[13]=e[1],n[14]=e[2],n[15]=1,n},lookAt:(e,t,r,n)=>G.inverse(G.cameraAim(e,t,r,n),n),translation:([e,t,r],n=new Float32Array(16))=>(n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=e,n[13]=t,n[14]=r,n[15]=1,n),rotationX(e,t=new Float32Array(16)){const r=Math.cos(e),n=Math.sin(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=r,t[6]=n,t[7]=0,t[8]=0,t[9]=-n,t[10]=r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},rotationY(e,t=new Float32Array(16)){const r=Math.cos(e),n=Math.sin(e);return t[0]=r,t[1]=0,t[2]=-n,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=n,t[9]=0,t[10]=r,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},rotationZ(e,t=new Float32Array(16)){const r=Math.cos(e),n=Math.sin(e);return t[0]=r,t[1]=n,t[2]=0,t[3]=0,t[4]=-n,t[5]=r,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},scaling:([e,t,r],n=new Float32Array(16))=>(n[0]=e,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=t,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=r,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n),translate:(e,t,r)=>G.multiply(e,G.translation(t),r),rotateX:(e,t,r)=>G.multiply(e,G.rotationX(t),r),rotateY:(e,t,r)=>G.multiply(e,G.rotationY(t),r),rotateZ:(e,t,r)=>G.multiply(e,G.rotationZ(t),r),scale:(e,t,r)=>G.multiply(e,G.scaling(t),r)},S=G;new Float32Array;const I=(...e)=>{const t=Math.max(...e);return 1+Math.log2(t)|0};function T(e,t,r){return Math.min(r,Math.max(t,e))}var V=function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function a(e){try{s(n.next(e))}catch(e){i(e)}}function u(e){try{s(n.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,u)}s((n=n.apply(e,t||[])).next())}))};function _(e){return V(this,void 0,void 0,(function*(){const t=yield function(){return o(this,void 0,void 0,(function*(){if(!navigator.gpu)throw Error("this browser does not support WebGPU");const e=yield navigator.gpu.requestAdapter();if(!e)throw Error("this browser supports webgpu but it appears disabled");const t=yield e.requestDevice();return t.lost.then((e=>{console.error(`WebGPU device was lost: ${e.message}`),e.reason})),t}))}(),{State:i}=yield r.e(701).then(r.bind(r,701)),O=i.new(300,300),G=e.getContext("webgpu");if(!G)throw Error("WebGPU from canvas needs to be always provided");const V=navigator.gpu.getPreferredCanvasFormat();G.configure({device:t,format:V}),function(e,t){new ResizeObserver((e=>{for(const r of e)n(r.target,0|r.contentBoxSize[0].inlineSize,0|r.contentBoxSize[0].blockSize,t)})).observe(e),n(e,e.clientWidth,e.clientHeight,t)}(e,t),function(e,t){v=function(e,t){const r=e.createShaderModule({label:"triangle shader module",code:u}),n=e.createRenderPipeline({label:"triangle pipline",layout:"auto",vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:8,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:t}]},depthStencil:{depthWriteEnabled:!1,depthCompare:"always",format:"depth24plus"}});return function(t,r,o){const i=e.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),u=new Float32Array(16),s=u.subarray(0,4),f=u.subarray(4,16);s.set([Math.random(),Math.random(),Math.random(),1]);const l=new Float32Array([500,100,800,400,200,400]),c=new Uint32Array([0,1,2]),d=e.createBuffer({label:"vertex buffer vertices",size:l.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(d,0,l);const p=e.createBuffer({label:"index buffer",size:c.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(p,0,c);const g=e.createBindGroup({label:"bind group for object",layout:n.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:i}}]});t.setPipeline(n),t.setVertexBuffer(0,d),t.setIndexBuffer(p,"uint32"),f.set(r),a.translate(f,[o,0],f),e.queue.writeBuffer(i,0,u),t.setBindGroup(0,g),t.drawIndexed(3)}}(e,t),b=function(e,t){const r=e.createShaderModule({label:"bezier shader module",code:s}),n=e.createRenderPipeline({label:"bezier pipline",layout:"auto",primitive:{topology:"triangle-strip"},vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:4,attributes:[{shaderLocation:0,offset:0,format:"float32"}]},{arrayStride:4,attributes:[{shaderLocation:1,offset:0,format:"float32"}]},{arrayStride:4,attributes:[{shaderLocation:2,offset:0,format:"uint32"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:t}]},depthStencil:{depthWriteEnabled:!1,depthCompare:"always",format:"depth24plus"}});return function(t,r,o,i,a,u,s){const f=4*o.length,l=e.createBuffer({label:"storage points",size:f,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST}),c=e.createBuffer({label:"uniforms",size:80,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),d=new Float32Array(20),p=d.subarray(0,16),g=d.subarray(16,17),m=e.createBindGroup({label:"bezier bind group for object",layout:n.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:c}},{binding:1,resource:{buffer:l}}]}),h=e.createBuffer({label:"bezier vertex buffer vertices",size:i.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(h,0,i);const v=e.createBuffer({label:"bezier vertex buffer vertices",size:a.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(v,0,a);const b=e.createBuffer({label:"bezier vertex buffer vertices",size:u.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(b,0,u),t.setPipeline(n),t.setVertexBuffer(0,h),t.setVertexBuffer(1,v),t.setVertexBuffer(2,b),p.set(r),g.set(new Float32Array([s])),e.queue.writeBuffer(c,0,d),e.queue.writeBuffer(l,0,o),t.setBindGroup(0,m),t.draw(i.length)}}(e,t),y=function(e,t){const r=e.createShaderModule({label:"3d model texture shader module",code:f}),n=e.createRenderPipeline({label:"3d model texture pipline",layout:"auto",vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:20,attributes:[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x2"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:t}]},depthStencil:{depthWriteEnabled:!1,depthCompare:"always",format:"depth24plus"}});return function(t,r,o,i,a){const u=e.createSampler({magFilter:"linear",minFilter:"linear"}),s=e.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),f=new Float32Array(16),l=f.subarray(0,16),c=a.length,d=e.createBuffer({label:"3d model texture vertex buffer vertices",size:i.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(d,0,i);const p=e.createBuffer({label:"3d model texture index buffer",size:a.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(p,0,a);const g=e.createBindGroup({label:"3d model texture bind group for object",layout:n.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:s}},{binding:1,resource:u},{binding:2,resource:o.createView()}]});t.setPipeline(n),t.setVertexBuffer(0,d),t.setIndexBuffer(p,"uint32"),l.set(r),e.queue.writeBuffer(s,0,f),t.setBindGroup(0,g),t.drawIndexed(c)}}(e,t),x=function(e,t){const r=e.createShaderModule({label:"3d model shader module",code:l}),n=e.createRenderPipeline({label:"3d model pipline",layout:"auto",vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:12,attributes:[{shaderLocation:0,offset:0,format:"float32x3"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:t}]},primitive:{cullMode:"back"},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}});return function(t,r,o,i){const a=e.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),u=new Float32Array(16),s=u.subarray(0,16),f=i.length,l=e.createBuffer({label:"vertex buffer vertices",size:o.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(l,0,o);const c=e.createBuffer({label:"index buffer",size:i.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(c,0,i);const d=e.createBindGroup({label:"bind group for object",layout:n.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:a}}]});t.setPipeline(n),t.setVertexBuffer(0,l),t.setIndexBuffer(c,"uint32"),s.set(r),e.queue.writeBuffer(a,0,u),t.setBindGroup(0,d),t.drawIndexed(f)}}(e,t),w=function(e,t){const r=e.createShaderModule({label:"3d model light shader module",code:c}),n=e.createRenderPipeline({label:"3d model light pipline",layout:"auto",vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:24,attributes:[{shaderLocation:0,offset:0,format:"float32x3"},{shaderLocation:1,offset:12,format:"float32x3"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:t}]},primitive:{cullMode:"back"},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}});return function(t,r,o,i){const{worldViewProjection:a,normalMatrix:u,lightColor:s,lightDirection:f}=r,l=e.createBuffer({label:"uniforms",size:144,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),c=new Float32Array(36),d=c.subarray(0,12),p=c.subarray(12,28),g=c.subarray(28,32),m=c.subarray(32,35),h=e.createBindGroup({label:"bind group for object",layout:n.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:l}}]}),v=i.length,b=e.createBuffer({label:"vertex buffer vertices",size:o.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(b,0,o);const x=e.createBuffer({label:"index buffer",size:i.byteLength,usage:GPUBufferUsage.INDEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(x,0,i),t.setPipeline(n),t.setVertexBuffer(0,b),t.setIndexBuffer(x,"uint32"),d.set(u),p.set(a),g.set(s),m.set(f),e.queue.writeBuffer(l,0,c),t.setBindGroup(0,h),t.drawIndexed(v)}}(e,t),B=function(e){const t=e.createShaderModule({label:"blur shader module",code:d}),r=e.createComputePipeline({layout:"auto",compute:{module:t,entryPoint:"main"}});return function(t,n){const o=[0,1].map((()=>e.createTexture({size:{width:t.width,height:t.height},format:"rgba8unorm",usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.STORAGE_BINDING|GPUTextureUsage.TEXTURE_BINDING}))),i=(()=>{const t=e.createBuffer({size:4,mappedAtCreation:!0,usage:GPUBufferUsage.UNIFORM});return new Uint32Array(t.getMappedRange())[0]=0,t.unmap(),t})(),a=(()=>{const t=e.createBuffer({size:4,mappedAtCreation:!0,usage:GPUBufferUsage.UNIFORM});return new Uint32Array(t.getMappedRange())[0]=1,t.unmap(),t})(),u=e.createBuffer({size:8,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.UNIFORM}),s=e.createSampler({magFilter:"linear",minFilter:"linear"}),f=e.createBindGroup({layout:r.getBindGroupLayout(0),entries:[{binding:0,resource:s},{binding:1,resource:{buffer:u}}]}),l=e.createBindGroup({layout:r.getBindGroupLayout(1),entries:[{binding:1,resource:t.createView()},{binding:2,resource:o[0].createView()},{binding:3,resource:{buffer:i}}]}),c=e.createBindGroup({layout:r.getBindGroupLayout(1),entries:[{binding:1,resource:o[0].createView()},{binding:2,resource:o[1].createView()},{binding:3,resource:{buffer:a}}]}),d=e.createBindGroup({layout:r.getBindGroupLayout(1),entries:[{binding:1,resource:o[1].createView()},{binding:2,resource:o[0].createView()},{binding:3,resource:{buffer:i}}]}),m=p-14;e.queue.writeBuffer(u,0,new Uint32Array([15,m]));const h=n.beginComputePass();h.setPipeline(r),h.setBindGroup(0,f),h.setBindGroup(1,l),h.dispatchWorkgroups(Math.ceil(t.width/m),Math.ceil(t.height/g[1])),h.setBindGroup(1,c),h.dispatchWorkgroups(Math.ceil(t.height/m),Math.ceil(t.width/g[1]));for(let e=0;e<1;++e)h.setBindGroup(1,d),h.dispatchWorkgroups(Math.ceil(t.width/m),Math.ceil(t.height/g[1])),h.setBindGroup(1,c),h.dispatchWorkgroups(Math.ceil(t.height/m),Math.ceil(t.width/g[1]));return h.end(),o[1]}}(e),U=function(e,t){const r=e.createShaderModule({label:"texture module",code:m}),n=e.createSampler({minFilter:"linear",magFilter:"linear"}),o=e.createRenderPipeline({label:"texture pipeline",layout:"auto",vertex:{module:r,entryPoint:"vs",buffers:[{arrayStride:4*h,attributes:[{shaderLocation:0,offset:0,format:"float32x4"},{shaderLocation:1,offset:16,format:"float32x2"}]}]},fragment:{module:r,entryPoint:"fs",targets:[{format:t}]}}),i=e.createBuffer({label:"uniforms",size:64,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),a=new Float32Array(16),u=a.subarray(0,16);return function(t,r,s,f){const l=Math.round(s.length/h),c=e.createBuffer({label:"vertex buffer vertices",size:s.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST});e.queue.writeBuffer(c,0,s);const d=e.createBindGroup({layout:o.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:i}},{binding:1,resource:n},{binding:2,resource:f.createView()}]});t.setPipeline(o),t.setVertexBuffer(0,c),u.set(r),e.queue.writeBuffer(i,0,a),t.setBindGroup(0,d),t.draw(l)}}(e,t)}(t,V);const _=[];return function(e,t,r,n,o,i){const a=function(e){return S.ortho(0,e.clientWidth,e.clientHeight,0,1,-1)}(t);requestAnimationFrame((function t(o){const u=n.createCommandEncoder(),s=function(e,t){const r=e.getCurrentTexture();return function(e,t,r){P&&P.width===t&&P.height===r||(null==P||P.destroy(),P=e.createTexture({size:[t,r],format:"depth24plus",usage:GPUTextureUsage.RENDER_ATTACHMENT}))}(t,r.width,r.height),{label:"our render to canvas renderPass",colorAttachments:[{view:r.createView(),clearValue:[0,0,0,1],loadOp:"clear",storeOp:"store"}]}}(r,n),f=u.beginRenderPass(s);let l=!1,c=0;for(;!l;){const{texture_id:t,vertex_data:r}=e.get_shader_input(c);c++,l=0===r.length,l||U(f,a,new Float32Array(r),i[t])}f.end();const d=u.finish();n.queue.submit([d]),requestAnimationFrame(t)}))}(O,e,G,t,0,_),{addImage:r=>{const n=_.length;_.push(function(e,t,r={}){const n=e.createTexture({format:"rgba8unorm",mipLevelCount:r.mips?I(t.width,t.height):1,size:[t.width,t.height],usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT});return function(e,t,r,{flipY:n,depthOrArrayLayers:o}={}){e.queue.copyExternalImageToTexture({source:r,flipY:n},{texture:t},{width:r.width,height:r.height,depthOrArrayLayers:o})}(e,n,t,r),n}(t,r)),console.log("env",r.width,e.width);const o=function(e,t){if(t.height-e.height<t.width-e.width)return T(e.height,.2*t.height,.8*t.height)/e.height;return T(e.width,.2*t.width,.8*t.width)/e.width}(r,e),i=r.width*o,a=r.height*o,u=.5*(e.width-i),s=.5*(e.height-a);O.add_texture([{x:u,y:s,u:0,v:0},{x:u+i,y:s,u:1,v:0},{x:u+i,y:s+a,u:1,v:1},{x:u,y:s+a,u:0,v:1}],n)},updatePoints:(e,t)=>{O.update_points(e,t)}}}))}}};var t=require("./test-runtime.63d51731843ade072b76.js");t.C(e),t(t.s=848)})()));
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAElC,MAAM,WAAW,cAAe,SAAQ,KAAK;IAC3C,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAAC;CACxC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"atNormIndex.d.ts","sourceRoot":"","sources":["../../src/utils/atNormIndex.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,UAUnE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"captureCanvasStream.d.ts","sourceRoot":"","sources":["../../src/utils/captureCanvasStream.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAAC,UAAU,EAAE,iBAAiB,cAW5E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"captureCanvasStreamWasm.d.ts","sourceRoot":"","sources":["../../src/utils/captureCanvasStreamWasm.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"clamp.d.ts","sourceRoot":"","sources":["../../src/utils/clamp.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAEpE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"distancePointToLine.d.ts","sourceRoot":"","sources":["../../src/utils/distancePointToLine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,UAKzE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fitCurve.d.ts","sourceRoot":"","sources":["../../src/utils/fitCurve.js"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;GAMG;AAEH,yCALW,KAAK,CAAC,KAAK,QAAQ,CAAC,qBAElB,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAmBvC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getAngle.d.ts","sourceRoot":"","sources":["../../src/utils/getAngle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,UAEtD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getAngleDiff.d.ts","sourceRoot":"","sources":["../../src/utils/getAngleDiff.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMxE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getBezierPos.d.ts","sourceRoot":"","sources":["../../src/utils/getBezierPos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,CAAC,EAAE,MAAM,GACR,KAAK,CAkBP"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getBezierTan.d.ts","sourceRoot":"","sources":["../../src/utils/getBezierTan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAG7B,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,CAAC,EAAE,MAAM,GACR,KAAK,CAeP"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getCurveLength.d.ts","sourceRoot":"","sources":["../../src/utils/getCurveLength.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAO7B,MAAM,CAAC,OAAO,UAAU,cAAc,CACpC,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,SAAS,EAAE,MAAM,GAChB,MAAM,EAAE,CAYV"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"getDistance.d.ts","sourceRoot":"","sources":["../../src/utils/getDistance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,UAEvD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"mat4.d.ts","sourceRoot":"","sources":["../../src/utils/mat4.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,IAAI;sBACU,MAAM,UAAU,MAAM,SAAS,MAAM,OAAO,YAAY;uCAKvC,MAAM,UAAU,MAAM,SAAS,MAAM,QAAQ,MAAM;gBA2B1E,MAAM,SAAS,MAAM,UAAU,MAAM,OAAO,MAAM,QAAQ,MAAM,OAAO,MAAM;;gBAgC7E,YAAY,KAAK,YAAY;mBAyD1B,MAAM,EAAE,GAAG,YAAY,UAAU,MAAM,EAAE,MAAM,MAAM,EAAE;eAa3D,YAAY;iBAwFV,YAAY;aAShB,YAAY,GAAG,MAAM,EAAE,UAAU,MAAM,EAAE,MAAM,MAAM,EAAE;gBAapD,MAAM,EAAE,GAAG,YAAY,UAAU,MAAM,EAAE,MAAM,MAAM,EAAE,QAAQ,YAAY;8BAI7D,MAAM,EAAE;8BAQR,MAAM;8BAUN,MAAM;8BAUN,MAAM;0BAUV,MAAM,EAAE;iBAQjB,YAAY,eAAe,MAAM,EAAE,QAAQ,YAAY;eAIzD,YAAY,kBAAkB,MAAM,QAAQ,YAAY;eAIxD,YAAY,kBAAkB,MAAM,QAAQ,YAAY;eAIxD,YAAY,kBAAkB,MAAM,QAAQ,YAAY;aAI1D,YAAY,SAAS,MAAM,EAAE,QAAQ,YAAY;CAG3D,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalizeVec2.d.ts","sourceRoot":"","sources":["../../src/utils/normalizeVec2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,KAAK,CAMvD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"resizeArray.d.ts","sourceRoot":"","sources":["../../src/utils/resizeArray.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,YASnE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"vec3.d.ts","sourceRoot":"","sources":["../../src/utils/vec3.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,IAAI;aACC,MAAM,EAAE,GAAG,YAAY,KAAK,MAAM,EAAE,GAAG,YAAY;gBAYhD,MAAM,EAAE,GAAG,YAAY,KAAK,MAAM,EAAE,GAAG,YAAY;iBAQjD,MAAM,EAAE,GAAG,YAAY;CAetC,CAAA;AAED,eAAe,IAAI,CAAA"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes