@zappar/zappar-cv 0.4.0-beta.8 → 0.4.0-beta.9

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.
package/README.md CHANGED
@@ -18,8 +18,8 @@ npm i @zappar/zappar-cv
18
18
 
19
19
  You can use our CDN from within your HTML:
20
20
  ```
21
- <script src="https://libs.zappar.com/zappar-cv/0.4.0-beta.8/zappar-cv.js"></script>
21
+ <script src="https://libs.zappar.com/zappar-cv/0.4.0-beta.9/zappar-cv.js"></script>
22
22
  ```
23
23
 
24
24
  Or you can download and host our standalone JavaScript bundle:
25
- [https://libs.zappar.com/zappar-cv/0.4.0-beta.8/zappar-cv.zip](https://libs.zappar.com/zappar-cv/0.4.0-beta.8/zappar-cv.zip)
25
+ [https://libs.zappar.com/zappar-cv/0.4.0-beta.9/zappar-cv.zip](https://libs.zappar.com/zappar-cv/0.4.0-beta.9/zappar-cv.zip)
@@ -0,0 +1,9 @@
1
+ export declare class GLStateManager {
2
+ private _gl;
3
+ static get(gl: WebGLRenderingContext): GLStateManager;
4
+ private _viewports;
5
+ private _underlyingViewport;
6
+ private constructor();
7
+ push(): void;
8
+ pop(): void;
9
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GLStateManager = void 0;
4
+ const managers = new Map();
5
+ class GLStateManager {
6
+ constructor(_gl) {
7
+ this._gl = _gl;
8
+ this._viewports = [];
9
+ this._underlyingViewport = this._gl.viewport;
10
+ this._viewports.push(this._gl.getParameter(this._gl.VIEWPORT));
11
+ this._gl.viewport = (x, y, width, height) => {
12
+ this._viewports[this._viewports.length - 1] = [x, y, width, height];
13
+ this._underlyingViewport.call(this._gl, x, y, width, height);
14
+ };
15
+ }
16
+ static get(gl) {
17
+ let existing = managers.get(gl);
18
+ if (!existing) {
19
+ existing = new GLStateManager(gl);
20
+ managers.set(gl, existing);
21
+ }
22
+ return existing;
23
+ }
24
+ push() {
25
+ this._viewports.push(this._viewports[this._viewports.length - 1]);
26
+ }
27
+ pop() {
28
+ const current = this._viewports.pop();
29
+ const prev = this._viewports[this._viewports.length - 1];
30
+ if (!current || current[0] !== prev[0] || current[1] !== prev[1] || current[2] !== prev[2] || current[3] !== prev[3]) {
31
+ this._underlyingViewport.call(this._gl, prev[0], prev[1], prev[2], prev[3]);
32
+ }
33
+ }
34
+ }
35
+ exports.GLStateManager = GLStateManager;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ImageProcessGL = void 0;
4
4
  const gl_matrix_1 = require("gl-matrix");
5
+ const gl_state_manager_1 = require("./gl-state-manager");
5
6
  const profile_1 = require("./profile");
6
7
  const shader_1 = require("./shader");
7
8
  class ImageProcessGL {
@@ -32,12 +33,25 @@ class ImageProcessGL {
32
33
  }
33
34
  uploadFrame(texture, img, rotation, fc) {
34
35
  let gl = this._gl;
36
+ const glStateManager = gl_state_manager_1.GLStateManager.get(gl);
37
+ glStateManager.push();
38
+ const reenableScissorTest = gl.isEnabled(gl.SCISSOR_TEST);
39
+ const reenableDepthTest = gl.isEnabled(gl.DEPTH_TEST);
40
+ const reenableBlend = gl.isEnabled(gl.BLEND);
41
+ const reenableCullFace = gl.isEnabled(gl.CULL_FACE);
42
+ const previousActiveTexture = gl.getParameter(gl.ACTIVE_TEXTURE);
43
+ const previousUnpackFlip = gl.getParameter(gl.UNPACK_FLIP_Y_WEBGL);
44
+ const previousProgram = gl.getParameter(gl.CURRENT_PROGRAM);
45
+ gl.activeTexture(gl.TEXTURE0);
46
+ const previousBoundTexture = gl.getParameter(gl.TEXTURE_BINDING_2D);
47
+ const previousBoundFramebuffer = gl.getParameter(gl.FRAMEBUFFER_BINDING);
48
+ const previousBoundArrayBuffer = gl.getParameter(gl.ARRAY_BUFFER_BINDING);
49
+ const previousBoundElementArrayBuffer = gl.getParameter(gl.ELEMENT_ARRAY_BUFFER_BINDING);
35
50
  gl.disable(gl.SCISSOR_TEST);
36
51
  gl.disable(gl.DEPTH_TEST);
37
52
  gl.disable(gl.BLEND);
38
53
  gl.disable(gl.CULL_FACE);
39
54
  gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
40
- gl.activeTexture(gl.TEXTURE0);
41
55
  gl.bindTexture(gl.TEXTURE_2D, texture);
42
56
  const level = 0;
43
57
  const internalFormat = gl.RGBA;
@@ -61,13 +75,22 @@ class ImageProcessGL {
61
75
  let vbo = this._getVertexBuffer(gl);
62
76
  let ibo = this._getIndexBuffer(gl);
63
77
  let shader = this._getGreyscaleShader(gl);
64
- // // Rendering to the greyscale conversion buffer - bind the framebuffer
78
+ const previousVertexAttribSize = gl.getVertexAttrib(shader.aVertexPositionLoc, gl.VERTEX_ATTRIB_ARRAY_SIZE);
79
+ const previousVertexAttribType = gl.getVertexAttrib(shader.aVertexPositionLoc, gl.VERTEX_ATTRIB_ARRAY_TYPE);
80
+ const previousVertexAttribNormalized = gl.getVertexAttrib(shader.aVertexPositionLoc, gl.VERTEX_ATTRIB_ARRAY_NORMALIZED);
81
+ const previousVertexAttribStride = gl.getVertexAttrib(shader.aVertexPositionLoc, gl.VERTEX_ATTRIB_ARRAY_STRIDE);
82
+ const previousVertexAttribOffset = gl.getVertexAttribOffset(shader.aVertexPositionLoc, gl.VERTEX_ATTRIB_ARRAY_POINTER);
83
+ const previousTextureAttribSize = gl.getVertexAttrib(shader.aTextureCoordLoc, gl.VERTEX_ATTRIB_ARRAY_SIZE);
84
+ const previousTextureAttribType = gl.getVertexAttrib(shader.aTextureCoordLoc, gl.VERTEX_ATTRIB_ARRAY_TYPE);
85
+ const previousTextureAttribNormalized = gl.getVertexAttrib(shader.aTextureCoordLoc, gl.VERTEX_ATTRIB_ARRAY_NORMALIZED);
86
+ const previousTextureAttribStride = gl.getVertexAttrib(shader.aTextureCoordLoc, gl.VERTEX_ATTRIB_ARRAY_STRIDE);
87
+ const previousTextureAttribOffset = gl.getVertexAttribOffset(shader.aTextureCoordLoc, gl.VERTEX_ATTRIB_ARRAY_POINTER);
88
+ // Rendering to the greyscale conversion buffer - bind the framebuffer
65
89
  gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
66
90
  gl.viewport(0, 0, this._framebufferWidth, this._framebufferHeight);
67
- // // We'll be replacing all the content - clear is a good hint for this on mobile
68
- gl.clearColor(0.0, 0.0, 0.0, 1.0);
91
+ // We'll be replacing all the content - clear is a good hint for this on mobile
69
92
  gl.clear(gl.COLOR_BUFFER_BIT);
70
- // // Set up bindings for vertex attributes
93
+ // Set up bindings for vertex attributes
71
94
  gl.bindBuffer(gl.ARRAY_BUFFER, vbo);
72
95
  gl.vertexAttribPointer(shader.aVertexPositionLoc, 2, gl.FLOAT, false, 4 * 4, 0);
73
96
  gl.enableVertexAttribArray(shader.aVertexPositionLoc);
@@ -87,22 +110,32 @@ class ImageProcessGL {
87
110
  gl.uniform1i(shader.uSamplerLoc, 0);
88
111
  // Do the drawing...
89
112
  gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0);
90
- // Disable attribute arrays
91
- gl.disableVertexAttribArray(shader.aVertexPositionLoc);
92
- gl.disableVertexAttribArray(shader.aTextureCoordLoc);
93
- gl.bindFramebuffer(gl.FRAMEBUFFER, null);
94
- gl.bindBuffer(gl.ARRAY_BUFFER, null);
95
- gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null);
96
- gl.useProgram(null);
97
- gl.bindTexture(gl.TEXTURE_2D, null);
113
+ gl.vertexAttribPointer(shader.aVertexPositionLoc, previousVertexAttribSize, previousVertexAttribType, previousVertexAttribNormalized, previousVertexAttribStride, previousVertexAttribOffset);
114
+ gl.vertexAttribPointer(shader.aTextureCoordLoc, previousTextureAttribSize, previousTextureAttribType, previousTextureAttribNormalized, previousTextureAttribStride, previousTextureAttribOffset);
115
+ gl.bindFramebuffer(gl.FRAMEBUFFER, previousBoundFramebuffer);
116
+ gl.bindBuffer(gl.ARRAY_BUFFER, previousBoundArrayBuffer);
117
+ gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, previousBoundElementArrayBuffer);
118
+ gl.useProgram(previousProgram);
119
+ gl.bindTexture(gl.TEXTURE_2D, previousBoundTexture);
120
+ gl.activeTexture(previousActiveTexture);
121
+ gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, previousUnpackFlip);
122
+ if (reenableBlend)
123
+ gl.enable(gl.BLEND);
124
+ if (reenableCullFace)
125
+ gl.enable(gl.CULL_FACE);
126
+ if (reenableDepthTest)
127
+ gl.enable(gl.DEPTH_TEST);
128
+ if (reenableScissorTest)
129
+ gl.enable(gl.SCISSOR_TEST);
98
130
  }
99
131
  readFrame(texture, pixels) {
100
132
  let gl = this._gl;
101
133
  let pixelsView = new Uint8Array(pixels);
102
134
  let framebuffer = this._getFramebuffer(gl, profile_1.profile.dataWidth / 4, profile_1.profile.dataHeight);
135
+ const previousBoundFramebuffer = gl.getParameter(gl.FRAMEBUFFER_BINDING);
103
136
  gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
104
137
  gl.readPixels(0, 0, this._framebufferWidth, this._framebufferHeight, gl.RGBA, gl.UNSIGNED_BYTE, pixelsView);
105
- gl.bindFramebuffer(gl.FRAMEBUFFER, null);
138
+ gl.bindFramebuffer(gl.FRAMEBUFFER, previousBoundFramebuffer);
106
139
  return {
107
140
  uvTransform: this._cameraUvTransform,
108
141
  data: pixels,
package/lib/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "0.4.0-beta.8";
1
+ export declare const VERSION = "0.4.0-beta.9";
package/lib/version.js CHANGED
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = "0.4.0-beta.8";
4
+ exports.VERSION = "0.4.0-beta.9";
package/lib/zcv.js CHANGED
@@ -16,7 +16,7 @@ function ua(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&5
16
16
  function Ca(){var a=la.buffer;xa=a;e.HEAP8=D=new Int8Array(a);e.HEAP16=ya=new Int16Array(a);e.HEAP32=J=new Int32Array(a);e.HEAPU8=C=new Uint8Array(a);e.HEAPU16=F=new Uint16Array(a);e.HEAPU32=K=new Uint32Array(a);e.HEAPF32=za=new Float32Array(a);e.HEAPF64=Aa=new Float64Array(a)}var Da,Ea=[],Fa=[],Ga=[],Ha=!1;function Ia(){var a=e.preRun.shift();Ea.unshift(a)}var L=0,Ja=null,Ka=null;function La(){L++;e.monitorRunDependencies&&e.monitorRunDependencies(L)}
17
17
  function Ma(){L--;e.monitorRunDependencies&&e.monitorRunDependencies(L);if(0==L&&(null!==Ja&&(clearInterval(Ja),Ja=null),Ka)){var a=Ka;Ka=null;a()}}e.preloadedImages={};e.preloadedAudios={};function x(a){if(e.onAbort)e.onAbort(a);a="Aborted("+a+")";n(a);ma=!0;na=1;a=new WebAssembly.RuntimeError(a+". Build with -s ASSERTIONS=1 for more info.");ca(a);throw a;}var Na;Na="zcv.wasm";if(!Na.startsWith("data:application/octet-stream;base64,")){var Oa=Na;Na=e.locateFile?e.locateFile(Oa,l):l+Oa}
18
18
  function Pa(a){var b=Na;try{a:{try{if(b==Na&&ka){var c=new Uint8Array(ka);break a}if(ha){c=ha(b);break a}throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)";}catch(g){x(g)}c=void 0}var d=new WebAssembly.Module(c);var f=new WebAssembly.Instance(d,a)}catch(g){throw a=g.toString(),n("failed to compile wasm module: "+a),(a.includes("imported Memory")||a.includes("memory import"))&&n("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),
19
- g;}return[f,d]}var M,N,Qa={520664:function(){if(self.crypto&&self.crypto.getRandomValues){var a=new Uint32Array(1);self.crypto.getRandomValues(a);return a[0]}return 9007199254740991*Math.random()},520840:function(a,b){self.respond_ba_request(C.subarray(a,a+b))},520902:function(a,b){self.send_ba_request(C.subarray(a,a+b))}};function Ra(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b(e);else{var c=b.ad;"number"===typeof c?void 0===b.uc?O(c)():O(c)(b.uc):c(void 0===b.uc?null:b.uc)}}}
19
+ g;}return[f,d]}var M,N,Qa={506728:function(){if(self.crypto&&self.crypto.getRandomValues){var a=new Uint32Array(1);self.crypto.getRandomValues(a);return a[0]}return 9007199254740991*Math.random()},506904:function(a,b){self.respond_ba_request(C.subarray(a,a+b))},506966:function(a,b){self.send_ba_request(C.subarray(a,a+b))}};function Ra(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b(e);else{var c=b.ad;"number"===typeof c?void 0===b.uc?O(c)():O(c)(b.uc):c(void 0===b.uc?null:b.uc)}}}
20
20
  var Sa=[];function O(a){var b=Sa[a];b||(a>=Sa.length&&(Sa.length=a+1),Sa[a]=b=Da.get(a));return b}function Ta(a){a instanceof Ua||"unwind"==a||fa(1,a)}var Wa;Wa=()=>performance.now();function Xa(a,b){if(0===a)a=Date.now();else if(1===a||4===a)a=Wa();else return J[Ya()>>2]=28,-1;J[b>>2]=a/1E3|0;J[b+4>>2]=a%1E3*1E6|0;return 0}
21
21
  function Za(a){this.nc=a-16;this.sd=function(b){J[this.nc+4>>2]=b};this.pd=function(b){J[this.nc+8>>2]=b};this.qd=function(){J[this.nc>>2]=0};this.od=function(){D[this.nc+12>>0]=0};this.rd=function(){D[this.nc+13>>0]=0};this.dd=function(b,c){this.sd(b);this.pd(c);this.qd();this.od();this.rd()}}var $a=0;function ab(a,b){for(var c=0,d=a.length-1;0<=d;d--){var f=a[d];"."===f?a.splice(d,1):".."===f?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c;c--)a.unshift("..");return a}
22
22
  function bb(a){var b="/"===a.charAt(0),c="/"===a.substr(-1);(a=ab(a.split("/").filter(function(d){return!!d}),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a}function cb(a){var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return".";b&&(b=b.substr(0,b.length-1));return a+b}function db(a){if("/"===a)return"/";a=bb(a);a=a.replace(/\/$/,"");var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)}
@@ -91,21 +91,21 @@ new Date(h.cc+1900,h.oc,h.tc);return 0>k(z,h)?g(Math.ceil((31-z.getDate()+(od(nd
91
91
  e.resumeMainLoop=function(){kc++;var a=bc,b=cc,c=dc;dc=null;jc(c);ac(a,b);fc()};e.getUserMedia=function(){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia);window.getUserMedia(void 0)};e.createContext=function(a,b,c,d){return zc(a,b,c,d)};
92
92
  (function(a,b){try{var c=indexedDB.open("emscripten_filesystem",1)}catch(d){b(d);return}c.onupgradeneeded=function(d){d=d.target.result;d.objectStoreNames.contains("FILES")&&d.deleteObjectStore("FILES");d.createObjectStore("FILES")};c.onsuccess=function(d){a(d.target.result)};c.onerror=function(d){b(d)}})(function(a){Qc=a;Ma()},function(){Qc=!1;Ma()});"undefined"!==typeof ENVIRONMENT_IS_FETCH_WORKER&&ENVIRONMENT_IS_FETCH_WORKER||La();var Dc;
93
93
  function kb(a,b){var c=Array(ua(a)+1);a=y(a,c,0,c.length);b&&(c.length=a);return c}
94
- var td={z:function(a,b){return Xa(a,b)},a:function(a){return wa(a+16)+16},b:function(a,b,c){(new Za(a)).dd(b,c);$a++;throw a;},k:function(a,b,c){Wb=c;try{var d=Yb(a);switch(b){case 0:var f=Xb();return 0>f?-28:Nb(d.path,d.flags,0,f).jc;case 1:case 2:return 0;case 3:return d.flags;case 4:return f=Xb(),d.flags|=f,0;case 5:return f=Xb(),ya[f+0>>1]=2,0;case 6:case 7:return 0;case 16:case 8:return-28;case 9:return J[Ya()>>2]=28,-1;default:return-28}}catch(g){if("undefined"===typeof V||!(g instanceof Q))throw g;
94
+ var td={y:function(a,b){return Xa(a,b)},a:function(a){return wa(a+16)+16},b:function(a,b,c){(new Za(a)).dd(b,c);$a++;throw a;},k:function(a,b,c){Wb=c;try{var d=Yb(a);switch(b){case 0:var f=Xb();return 0>f?-28:Nb(d.path,d.flags,0,f).jc;case 1:case 2:return 0;case 3:return d.flags;case 4:return f=Xb(),d.flags|=f,0;case 5:return f=Xb(),ya[f+0>>1]=2,0;case 6:case 7:return 0;case 16:case 8:return-28;case 9:return J[Ya()>>2]=28,-1;default:return-28}}catch(g){if("undefined"===typeof V||!(g instanceof Q))throw g;
95
95
  return-g.dc}},E:function(a,b,c){Wb=c;try{var d=Yb(a);switch(b){case 21509:case 21505:return d.ac?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return d.ac?0:-59;case 21519:if(!d.ac)return-59;var f=Xb();return J[f>>2]=0;case 21520:return d.ac?-28:-59;case 21531:a=f=Xb();if(!d.Zb.fd)throw new Q(59);return d.Zb.fd(d,b,a);case 21523:return d.ac?0:-59;case 21524:return d.ac?0:-59;default:x("bad ioctl syscall "+b)}}catch(g){if("undefined"===typeof V||!(g instanceof Q))throw g;
96
- return-g.dc}},C:function(a,b){try{return a=E(a),Vb(Mb,a,b)}catch(c){if("undefined"===typeof V||!(c instanceof Q))throw c;return-c.dc}},o:function(a,b,c){Wb=c;try{var d=E(a),f=c?Xb():0;return Nb(d,b,f).jc}catch(g){if("undefined"===typeof V||!(g instanceof Q))throw g;return-g.dc}},D:function(a,b){try{return a=E(a),Vb(Lb,a,b)}catch(c){if("undefined"===typeof V||!(c instanceof Q))throw c;return-c.dc}},x:function(a,b){try{return a=E(a),b=E(b),Kb(a,b),0}catch(c){if("undefined"===typeof V||!(c instanceof
97
- Q))throw c;return-c.dc}},y:function(a){try{a=E(a);var b=T(a,{parent:!0}).node;if(!b)throw new Q(44);var c=db(a),d=qb(b,c);a:{try{var f=qb(b,c)}catch(p){var g=p.dc;break a}var k=zb(b,"wx");g=k?k:16384===(f.mode&61440)?31:0}if(g)throw new Q(g);if(!b.Xb.Ac)throw new Q(63);if(d.qc)throw new Q(10);b.Xb.Ac(b,c);var r=yb(d.parent.id,d.name);if(S[r]===d)S[r]=d.lc;else for(var q=S[r];q;){if(q.lc===d){q.lc=d.lc;break}q=q.lc}return 0}catch(p){if("undefined"===typeof V||!(p instanceof Q))throw p;return-p.dc}},
98
- F:function(a){delete Pc[a-1]},c:function(){x("")},J:Xa,K:function(){self.postMessage({t:"gfx"})},r:function(){var a=(new URL(location.origin)).hostname;0===a.length&&(a=(new URL(location.href.replace("blob:",""))).hostname);if(/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(a))0===a.indexOf("10.")&&(a="10.*"),0===a.indexOf("192.168.")&&(a="192.168.*"),0===a.indexOf("172.")&&(a="172.*"),
96
+ return-g.dc}},B:function(a,b){try{return a=E(a),Vb(Mb,a,b)}catch(c){if("undefined"===typeof V||!(c instanceof Q))throw c;return-c.dc}},o:function(a,b,c){Wb=c;try{var d=E(a),f=c?Xb():0;return Nb(d,b,f).jc}catch(g){if("undefined"===typeof V||!(g instanceof Q))throw g;return-g.dc}},C:function(a,b){try{return a=E(a),Vb(Lb,a,b)}catch(c){if("undefined"===typeof V||!(c instanceof Q))throw c;return-c.dc}},w:function(a,b){try{return a=E(a),b=E(b),Kb(a,b),0}catch(c){if("undefined"===typeof V||!(c instanceof
97
+ Q))throw c;return-c.dc}},x:function(a){try{a=E(a);var b=T(a,{parent:!0}).node;if(!b)throw new Q(44);var c=db(a),d=qb(b,c);a:{try{var f=qb(b,c)}catch(p){var g=p.dc;break a}var k=zb(b,"wx");g=k?k:16384===(f.mode&61440)?31:0}if(g)throw new Q(g);if(!b.Xb.Ac)throw new Q(63);if(d.qc)throw new Q(10);b.Xb.Ac(b,c);var r=yb(d.parent.id,d.name);if(S[r]===d)S[r]=d.lc;else for(var q=S[r];q;){if(q.lc===d){q.lc=d.lc;break}q=q.lc}return 0}catch(p){if("undefined"===typeof V||!(p instanceof Q))throw p;return-p.dc}},
98
+ F:function(a){delete Pc[a-1]},c:function(){x("")},J:Xa,K:function(){self.postMessage({t:"gfx"})},q:function(){var a=(new URL(location.origin)).hostname;0===a.length&&(a=(new URL(location.href.replace("blob:",""))).hostname);if(/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(a))0===a.indexOf("10.")&&(a="10.*"),0===a.indexOf("192.168.")&&(a="192.168.*"),0===a.indexOf("172.")&&(a="172.*"),
99
99
  0===a.indexOf("127.")&&(a="127.*");else{var b=new RegExp("("+String.fromCharCode(92)+".ngrok"+String.fromCharCode(92)+".io)$","i");b.test(a)&&(a="*.ngrok.io");b=new RegExp("("+String.fromCharCode(92)+".arweb"+String.fromCharCode(92)+".app)$","i");b.test(a)&&(a="*.arweb.app")}b=ua(a)+1;var c=wa(b);y(a,C,c,b+1);return c},L:function(){self.postMessage({t:"licerr"})},f:function(a,b,c){Zb.length=0;var d;for(c>>=2;d=C[b++];)(d=105>d)&&c&1&&c++,Zb.push(d?Aa[c++>>1]:J[c]),++c;return Qa[a].apply(null,Zb)},
100
- l:function(a,b,c){function d(){O(a)(b)}0<=c?$b(d,c):Nc(d)},w:function(){return 2147483648},H:function(){return!1},t:function(a,b,c){C.copyWithin(a,b,b+c)},u:function(a){var b=C.length;a>>>=0;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);d=Math.max(a,d);0<d%65536&&(d+=65536-d%65536);a:{try{la.grow(Math.min(2147483648,d)-xa.byteLength+65535>>>16);Ca();var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},G:function(a,b,c,d,f){function g(B){Rc(B,k,p,
100
+ l:function(a,b,c){function d(){O(a)(b)}0<=c?$b(d,c):Nc(d)},v:function(){return 2147483648},H:function(){return!1},s:function(a,b,c){C.copyWithin(a,b,b+c)},t:function(a){var b=C.length;a>>>=0;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);d=Math.max(a,d);0<d%65536&&(d+=65536-d%65536);a:{try{la.grow(Math.min(2147483648,d)-xa.byteLength+65535>>>16);Ca();var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},G:function(a,b,c,d,f){function g(B){Rc(B,k,p,
101
101
  v,q)}function k(B,vd){Tc(B,vd.response,function(Ba){W(function(){t?O(t)(Ba):b&&b(Ba)},H)},function(Ba){W(function(){t?O(t)(Ba):b&&b(Ba)},H)})}function r(B){Rc(B,w,p,v,q)}function q(B){W(function(){P?O(P)(B):f&&f(B)},H)}function p(B){W(function(){z?O(z)(B):c&&c(B)},H)}function v(B){W(function(){I?O(I)(B):d&&d(B)},H)}function w(B){W(function(){t?O(t)(B):b&&b(B)},H)}var A=a+112,h=E(A),t=K[A+36>>2],z=K[A+40>>2],I=K[A+44>>2],P=K[A+48>>2],X=K[A+52>>2],Va=!!(X&4),u=!!(X&32),G=!!(X&16),H=!!(X&64);if("EM_IDB_STORE"===
102
- h)h=K[A+84>>2],Tc(a,C.slice(h,h+K[A+88>>2]),w,p);else if("EM_IDB_DELETE"===h)Vc(a,w,p);else if(G){if(u)return 0;Rc(a,Va?k:w,p,v,q)}else Uc(a,w,u?p:Va?g:r);return a},A:function(a,b){var c=0;Xc().forEach(function(d,f){var g=b+c;f=J[a+4*f>>2]=g;for(g=0;g<d.length;++g)D[f++>>0]=d.charCodeAt(g);D[f>>0]=0;c+=d.length+1});return 0},B:function(a,b){var c=Xc();J[a>>2]=c.length;var d=0;c.forEach(function(f){d+=f.length+1});J[b>>2]=d;return 0},I:function(a){lc(a)},j:function(a){try{var b=Yb(a);if(null===b.jc)throw new Q(8);
103
- b.Ec&&(b.Ec=null);try{b.Zb.close&&b.Zb.close(b)}catch(c){throw c;}finally{tb[b.jc]=null}b.jc=null;return 0}catch(c){if("undefined"===typeof V||!(c instanceof Q))throw c;return c.dc}},p:function(a,b,c,d){try{a:{for(var f=Yb(a),g=a=0;g<c;g++){var k=J[b+(8*g+4)>>2],r=f,q=J[b+8*g>>2],p=k,v=void 0,w=D;if(0>p||0>v)throw new Q(28);if(null===r.jc)throw new Q(8);if(1===(r.flags&2097155))throw new Q(8);if(16384===(r.node.mode&61440))throw new Q(31);if(!r.Zb.read)throw new Q(28);var A="undefined"!==typeof v;
104
- if(!A)v=r.position;else if(!r.seekable)throw new Q(70);var h=r.Zb.read(r,w,q,p,v);A||(r.position+=h);var t=h;if(0>t){var z=-1;break a}a+=t;if(t<k)break}z=a}J[d>>2]=z;return 0}catch(I){if("undefined"===typeof V||!(I instanceof Q))throw I;return I.dc}},s:function(a,b,c,d,f){try{var g=Yb(a);a=4294967296*c+(b>>>0);if(-9007199254740992>=a||9007199254740992<=a)return-61;Pb(g,a,d);N=[g.position>>>0,(M=g.position,1<=+Math.abs(M)?0<M?(Math.min(+Math.floor(M/4294967296),4294967295)|0)>>>0:~~+Math.ceil((M-+(~~M>>>
102
+ h)h=K[A+84>>2],Tc(a,C.slice(h,h+K[A+88>>2]),w,p);else if("EM_IDB_DELETE"===h)Vc(a,w,p);else if(G){if(u)return 0;Rc(a,Va?k:w,p,v,q)}else Uc(a,w,u?p:Va?g:r);return a},z:function(a,b){var c=0;Xc().forEach(function(d,f){var g=b+c;f=J[a+4*f>>2]=g;for(g=0;g<d.length;++g)D[f++>>0]=d.charCodeAt(g);D[f>>0]=0;c+=d.length+1});return 0},A:function(a,b){var c=Xc();J[a>>2]=c.length;var d=0;c.forEach(function(f){d+=f.length+1});J[b>>2]=d;return 0},I:function(a){lc(a)},j:function(a){try{var b=Yb(a);if(null===b.jc)throw new Q(8);
103
+ b.Ec&&(b.Ec=null);try{b.Zb.close&&b.Zb.close(b)}catch(c){throw c;}finally{tb[b.jc]=null}b.jc=null;return 0}catch(c){if("undefined"===typeof V||!(c instanceof Q))throw c;return c.dc}},D:function(a,b,c,d){try{a:{for(var f=Yb(a),g=a=0;g<c;g++){var k=J[b+(8*g+4)>>2],r=f,q=J[b+8*g>>2],p=k,v=void 0,w=D;if(0>p||0>v)throw new Q(28);if(null===r.jc)throw new Q(8);if(1===(r.flags&2097155))throw new Q(8);if(16384===(r.node.mode&61440))throw new Q(31);if(!r.Zb.read)throw new Q(28);var A="undefined"!==typeof v;
104
+ if(!A)v=r.position;else if(!r.seekable)throw new Q(70);var h=r.Zb.read(r,w,q,p,v);A||(r.position+=h);var t=h;if(0>t){var z=-1;break a}a+=t;if(t<k)break}z=a}J[d>>2]=z;return 0}catch(I){if("undefined"===typeof V||!(I instanceof Q))throw I;return I.dc}},r:function(a,b,c,d,f){try{var g=Yb(a);a=4294967296*c+(b>>>0);if(-9007199254740992>=a||9007199254740992<=a)return-61;Pb(g,a,d);N=[g.position>>>0,(M=g.position,1<=+Math.abs(M)?0<M?(Math.min(+Math.floor(M/4294967296),4294967295)|0)>>>0:~~+Math.ceil((M-+(~~M>>>
105
105
  0))/4294967296)>>>0:0)];J[f>>2]=N[0];J[f+4>>2]=N[1];g.Ec&&0===a&&0===d&&(g.Ec=null);return 0}catch(k){if("undefined"===typeof V||!(k instanceof Q))throw k;return k.dc}},i:function(a,b,c,d){try{a:{for(var f=Yb(a),g=a=0;g<c;g++){var k=f,r=J[b+8*g>>2],q=J[b+(8*g+4)>>2],p=void 0,v=D;if(0>q||0>p)throw new Q(28);if(null===k.jc)throw new Q(8);if(0===(k.flags&2097155))throw new Q(8);if(16384===(k.node.mode&61440))throw new Q(31);if(!k.Zb.write)throw new Q(28);k.seekable&&k.flags&1024&&Pb(k,0,2);var w="undefined"!==
106
106
  typeof p;if(!w)p=k.position;else if(!k.seekable)throw new Q(70);var A=k.Zb.write(k,v,r,q,p,void 0);w||(k.position+=A);var h=A;if(0>h){var t=-1;break a}a+=h}t=a}J[d>>2]=t;return 0}catch(z){if("undefined"===typeof V||!(z instanceof Q))throw z;return z.dc}},e:function(a){var b=Date.now();J[a>>2]=b/1E3|0;J[a+4>>2]=b%1E3*1E3|0;return 0},m:function(a,b){Dc.bindTexture(a,cd[b])},n:function(a,b){for(var c=0;c<a;c++){var d=Dc.createTexture(),f=d&&dd(cd);d?(d.name=f,cd[f]=d):gd||(gd=1282);J[b+4*c>>2]=f}},g:function(a,
107
- b,c,d,f,g,k,r,q){var p=Dc,v=p.texImage2D;if(q){var w=r-5120;w=1==w?C:4==w?J:6==w?za:5==w||28922==w?K:F;var A=31-Math.clz32(w.BYTES_PER_ELEMENT);q=w.subarray(q>>A,q+f*(d*({5:3,6:4,8:2,29502:3,29504:4}[k-6402]||1)*(1<<A)+4-1&-4)>>A)}else q=null;v.call(p,a,b,c,d,f,g,k,r,q)},h:function(a,b,c){Dc.texParameteri(a,b,c)},q:function(a,b){md||(md=!0,hd());a=new Date(1E3*J[a>>2]);J[b>>2]=a.getSeconds();J[b+4>>2]=a.getMinutes();J[b+8>>2]=a.getHours();J[b+12>>2]=a.getDate();J[b+16>>2]=a.getMonth();J[b+20>>2]=
108
- a.getFullYear()-1900;J[b+24>>2]=a.getDay();var c=new Date(a.getFullYear(),0,1);J[b+28>>2]=(a.getTime()-c.getTime())/864E5|0;J[b+36>>2]=-(60*a.getTimezoneOffset());var d=(new Date(a.getFullYear(),6,1)).getTimezoneOffset();c=c.getTimezoneOffset();a=(d!=c&&a.getTimezoneOffset()==Math.min(c,d))|0;J[b+32>>2]=a;a=J[ld()+(a?4:0)>>2];J[b+40>>2]=a;return b},v:function(a,b,c,d){return sd(a,b,c,d)},d:function(a){var b=Date.now()/1E3|0;a&&(J[a>>2]=b);return b}},Z=function(){function a(c){e.asm=c.exports;la=e.asm.M;
107
+ b,c,d,f,g,k,r,q){var p=Dc,v=p.texImage2D;if(q){var w=r-5120;w=1==w?C:4==w?J:6==w?za:5==w||28922==w?K:F;var A=31-Math.clz32(w.BYTES_PER_ELEMENT);q=w.subarray(q>>A,q+f*(d*({5:3,6:4,8:2,29502:3,29504:4}[k-6402]||1)*(1<<A)+4-1&-4)>>A)}else q=null;v.call(p,a,b,c,d,f,g,k,r,q)},h:function(a,b,c){Dc.texParameteri(a,b,c)},p:function(a,b){md||(md=!0,hd());a=new Date(1E3*J[a>>2]);J[b>>2]=a.getSeconds();J[b+4>>2]=a.getMinutes();J[b+8>>2]=a.getHours();J[b+12>>2]=a.getDate();J[b+16>>2]=a.getMonth();J[b+20>>2]=
108
+ a.getFullYear()-1900;J[b+24>>2]=a.getDay();var c=new Date(a.getFullYear(),0,1);J[b+28>>2]=(a.getTime()-c.getTime())/864E5|0;J[b+36>>2]=-(60*a.getTimezoneOffset());var d=(new Date(a.getFullYear(),6,1)).getTimezoneOffset();c=c.getTimezoneOffset();a=(d!=c&&a.getTimezoneOffset()==Math.min(c,d))|0;J[b+32>>2]=a;a=J[ld()+(a?4:0)>>2];J[b+40>>2]=a;return b},u:function(a,b,c,d){return sd(a,b,c,d)},d:function(a){var b=Date.now()/1E3|0;a&&(J[a>>2]=b);return b}},Z=function(){function a(c){e.asm=c.exports;la=e.asm.M;
109
109
  Ca();Da=e.asm.R;Fa.unshift(e.asm.N);Ma()}var b={a:td};La();if(e.instantiateWasm)try{return e.instantiateWasm(b,a)}catch(c){return n("Module.instantiateWasm callback failed with error: "+c),!1}b=Pa(b);a(b[0]);return e.asm}();e.___wasm_call_ctors=Z.N;e._zappar_has_initialized=Z.O;e._zappar_invert=Z.P;e._zappar_loaded=Z.Q;e._zappar_pipeline_create=Z.S;e._zappar_pipeline_destroy=Z.T;e._zappar_pipeline_camera_frame_submit=Z.U;e._zappar_pipeline_camera_frame_submit_raw_pointer=Z.V;
110
110
  e._zappar_pipeline_frame_update=Z.W;e._zappar_pipeline_camera_frame_user_data=Z.X;e._zappar_pipeline_camera_model=Z.Y;e._zappar_pipeline_frame_number=Z.Z;e._zappar_pipeline_motion_accelerometer_submit=Z._;e._zappar_pipeline_motion_rotation_rate_submit=Z.$;e._zappar_pipeline_motion_attitude_submit=Z.aa;e._zappar_pipeline_motion_attitude_matrix_submit=Z.ba;e._zappar_pipeline_camera_frame_user_facing=Z.ca;e._zappar_pipeline_camera_frame_texture_matrix=Z.da;
111
111
  e._zappar_pipeline_camera_pose_with_attitude=Z.ea;e._zappar_pipeline_camera_pose_with_origin=Z.fa;e._zappar_pipeline_camera_frame_camera_attitude=Z.ga;e._zappar_pipeline_camera_frame_device_attitude=Z.ha;e._zappar_pipeline_camera_frame_texture_gl=Z.ia;e._zappar_pipeline_camera_frame_upload_gl=Z.ja;e._zappar_pipeline_sequence_record_start=Z.ka;e._zappar_pipeline_sequence_record_stop=Z.la;e._zappar_pipeline_sequence_record_clear=Z.ma;e._zappar_pipeline_sequence_record_device_attitude_matrices_set=Z.na;
package/lib/zcv.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zappar/zappar-cv",
3
- "version": "0.4.0-beta.8",
3
+ "version": "0.4.0-beta.9",
4
4
  "description": "Zappar's core computer vision library, supporting image, face and world tracking.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",