@grida/canvas-wasm 0.0.56 → 0.0.57

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/dist/index.js CHANGED
@@ -117,7 +117,7 @@ var require_grida_canvas_wasm = __commonJS({
117
117
  runtimeInitialized = true;
118
118
  if (!Module["noFSInit"] && !FS.initialized) FS.init();
119
119
  TTY.init();
120
- wasmExports["jg"]();
120
+ wasmExports["lg"]();
121
121
  FS.ignorePermissions = false;
122
122
  }
123
123
  function preMain() {
@@ -216,9 +216,9 @@ var require_grida_canvas_wasm = __commonJS({
216
216
  async function createWasm() {
217
217
  function receiveInstance(instance, module3) {
218
218
  wasmExports = instance.exports;
219
- wasmMemory = wasmExports["ig"];
219
+ wasmMemory = wasmExports["kg"];
220
220
  updateMemoryViews();
221
- wasmTable = wasmExports["kg"];
221
+ wasmTable = wasmExports["mg"];
222
222
  removeRunDependency("wasm-instantiate");
223
223
  return wasmExports;
224
224
  }
@@ -4995,11 +4995,9 @@ var require_grida_canvas_wasm = __commonJS({
4995
4995
  Module["stringToUTF8"] = stringToUTF8;
4996
4996
  Module["lengthBytesUTF8"] = lengthBytesUTF8;
4997
4997
  Module["GL"] = GL;
4998
- var wasmImports = { v: ___cxa_begin_catch, y: ___cxa_end_catch, a: ___cxa_find_matching_catch_2, m: ___cxa_find_matching_catch_3, M: ___cxa_find_matching_catch_4, _: ___cxa_rethrow, w: ___cxa_throw, gb: ___cxa_uncaught_exceptions, d: ___resumeException, aa: ___syscall_fcntl64, ub: ___syscall_fstat64, qb: ___syscall_getcwd, wb: ___syscall_ioctl, rb: ___syscall_lstat64, sb: ___syscall_newfstatat, $: ___syscall_openat, tb: ___syscall_stat64, zb: __abort_js, ib: __emscripten_throw_longjmp, nb: __gmtime_js, lb: __mmap_js, mb: __munmap_js, Ab: __tzset_js, yb: _clock_time_get, xb: _emscripten_date_now, P: _emscripten_get_now, Gf: _emscripten_glActiveTexture, Hf: _emscripten_glAttachShader, ie: _emscripten_glBeginQuery, ce: _emscripten_glBeginQueryEXT, Gc: _emscripten_glBeginTransformFeedback, If: _emscripten_glBindAttribLocation, Jf: _emscripten_glBindBuffer, Dc: _emscripten_glBindBufferBase, Ec: _emscripten_glBindBufferRange, Ge: _emscripten_glBindFramebuffer, He: _emscripten_glBindRenderbuffer, oe: _emscripten_glBindSampler, Kf: _emscripten_glBindTexture, Tb: _emscripten_glBindTransformFeedback, bf: _emscripten_glBindVertexArray, ef: _emscripten_glBindVertexArrayOES, Lf: _emscripten_glBlendColor, Mf: _emscripten_glBlendEquation, Md: _emscripten_glBlendEquationSeparate, Nf: _emscripten_glBlendFunc, Ld: _emscripten_glBlendFuncSeparate, Ae: _emscripten_glBlitFramebuffer, Of: _emscripten_glBufferData, Pf: _emscripten_glBufferSubData, Ie: _emscripten_glCheckFramebufferStatus, Qf: _emscripten_glClear, gc: _emscripten_glClearBufferfi, hc: _emscripten_glClearBufferfv, jc: _emscripten_glClearBufferiv, ic: _emscripten_glClearBufferuiv, Rf: _emscripten_glClearColor, Kd: _emscripten_glClearDepthf, Sf: _emscripten_glClearStencil, xe: _emscripten_glClientWaitSync, $c: _emscripten_glClipControlEXT, Tf: _emscripten_glColorMask, Uf: _emscripten_glCompileShader, Vf: _emscripten_glCompressedTexImage2D, Sc: _emscripten_glCompressedTexImage3D, Wf: _emscripten_glCompressedTexSubImage2D, Rc: _emscripten_glCompressedTexSubImage3D, ze: _emscripten_glCopyBufferSubData, Jd: _emscripten_glCopyTexImage2D, Xf: _emscripten_glCopyTexSubImage2D, Tc: _emscripten_glCopyTexSubImage3D, Yf: _emscripten_glCreateProgram, Zf: _emscripten_glCreateShader, _f: _emscripten_glCullFace, $f: _emscripten_glDeleteBuffers, Je: _emscripten_glDeleteFramebuffers, ag: _emscripten_glDeleteProgram, je: _emscripten_glDeleteQueries, de: _emscripten_glDeleteQueriesEXT, Ke: _emscripten_glDeleteRenderbuffers, pe: _emscripten_glDeleteSamplers, bg: _emscripten_glDeleteShader, ye: _emscripten_glDeleteSync, cg: _emscripten_glDeleteTextures, Sb: _emscripten_glDeleteTransformFeedbacks, cf: _emscripten_glDeleteVertexArrays, ff: _emscripten_glDeleteVertexArraysOES, Id: _emscripten_glDepthFunc, dg: _emscripten_glDepthMask, Hd: _emscripten_glDepthRangef, Gd: _emscripten_glDetachShader, eg: _emscripten_glDisable, fg: _emscripten_glDisableVertexAttribArray, gg: _emscripten_glDrawArrays, $e: _emscripten_glDrawArraysInstanced, Pd: _emscripten_glDrawArraysInstancedANGLE, Fb: _emscripten_glDrawArraysInstancedARB, Ye: _emscripten_glDrawArraysInstancedBaseInstanceWEBGL, Yc: _emscripten_glDrawArraysInstancedEXT, Gb: _emscripten_glDrawArraysInstancedNV, We: _emscripten_glDrawBuffers, Wc: _emscripten_glDrawBuffersEXT, Qd: _emscripten_glDrawBuffersWEBGL, hg: _emscripten_glDrawElements, af: _emscripten_glDrawElementsInstanced, Od: _emscripten_glDrawElementsInstancedANGLE, Db: _emscripten_glDrawElementsInstancedARB, Ze: _emscripten_glDrawElementsInstancedBaseVertexBaseInstanceWEBGL, Eb: _emscripten_glDrawElementsInstancedEXT, Xc: _emscripten_glDrawElementsInstancedNV, Pe: _emscripten_glDrawRangeElements, fa: _emscripten_glEnable, ga: _emscripten_glEnableVertexAttribArray, ke: _emscripten_glEndQuery, ee: _emscripten_glEndQueryEXT, Fc: _emscripten_glEndTransformFeedback, ue: _emscripten_glFenceSync, ha: _emscripten_glFinish, ia: _emscripten_glFlush, Le: _emscripten_glFramebufferRenderbuffer, Me: _emscripten_glFramebufferTexture2D, Jc: _emscripten_glFramebufferTextureLayer, ja: _emscripten_glFrontFace, ka: _emscripten_glGenBuffers, Ne: _emscripten_glGenFramebuffers, le: _emscripten_glGenQueries, fe: _emscripten_glGenQueriesEXT, Oe: _emscripten_glGenRenderbuffers, qe: _emscripten_glGenSamplers, la: _emscripten_glGenTextures, Rb: _emscripten_glGenTransformFeedbacks, _e: _emscripten_glGenVertexArrays, gf: _emscripten_glGenVertexArraysOES, Ce: _emscripten_glGenerateMipmap, Fd: _emscripten_glGetActiveAttrib, Ed: _emscripten_glGetActiveUniform, bc: _emscripten_glGetActiveUniformBlockName, cc: _emscripten_glGetActiveUniformBlockiv, ec: _emscripten_glGetActiveUniformsiv, Dd: _emscripten_glGetAttachedShaders, Cd: _emscripten_glGetAttribLocation, Bd: _emscripten_glGetBooleanv, Yb: _emscripten_glGetBufferParameteri64v, ma: _emscripten_glGetBufferParameteriv, na: _emscripten_glGetError, oa: _emscripten_glGetFloatv, sc: _emscripten_glGetFragDataLocation, De: _emscripten_glGetFramebufferAttachmentParameteriv, Zb: _emscripten_glGetInteger64i_v, $b: _emscripten_glGetInteger64v, Hc: _emscripten_glGetIntegeri_v, pa: _emscripten_glGetIntegerv, Jb: _emscripten_glGetInternalformativ, Nb: _emscripten_glGetProgramBinary, qa: _emscripten_glGetProgramInfoLog, ra: _emscripten_glGetProgramiv, $d: _emscripten_glGetQueryObjecti64vEXT, Sd: _emscripten_glGetQueryObjectivEXT, ae: _emscripten_glGetQueryObjectui64vEXT, me: _emscripten_glGetQueryObjectuiv, ge: _emscripten_glGetQueryObjectuivEXT, ne: _emscripten_glGetQueryiv, he: _emscripten_glGetQueryivEXT, Ee: _emscripten_glGetRenderbufferParameteriv, Ub: _emscripten_glGetSamplerParameterfv, Vb: _emscripten_glGetSamplerParameteriv, sa: _emscripten_glGetShaderInfoLog, Yd: _emscripten_glGetShaderPrecisionFormat, Ad: _emscripten_glGetShaderSource, ta: _emscripten_glGetShaderiv, ua: _emscripten_glGetString, df: _emscripten_glGetStringi, _b: _emscripten_glGetSynciv, zd: _emscripten_glGetTexParameterfv, yd: _emscripten_glGetTexParameteriv, Bc: _emscripten_glGetTransformFeedbackVarying, dc: _emscripten_glGetUniformBlockIndex, fc: _emscripten_glGetUniformIndices, va: _emscripten_glGetUniformLocation, xd: _emscripten_glGetUniformfv, wd: _emscripten_glGetUniformiv, tc: _emscripten_glGetUniformuiv, Ac: _emscripten_glGetVertexAttribIiv, zc: _emscripten_glGetVertexAttribIuiv, td: _emscripten_glGetVertexAttribPointerv, vd: _emscripten_glGetVertexAttribfv, ud: _emscripten_glGetVertexAttribiv, sd: _emscripten_glHint, Zd: _emscripten_glInvalidateFramebuffer, _d: _emscripten_glInvalidateSubFramebuffer, rd: _emscripten_glIsBuffer, qd: _emscripten_glIsEnabled, pd: _emscripten_glIsFramebuffer, od: _emscripten_glIsProgram, Qc: _emscripten_glIsQuery, Td: _emscripten_glIsQueryEXT, nd: _emscripten_glIsRenderbuffer, Xb: _emscripten_glIsSampler, md: _emscripten_glIsShader, ve: _emscripten_glIsSync, wa: _emscripten_glIsTexture, Qb: _emscripten_glIsTransformFeedback, Ic: _emscripten_glIsVertexArray, Rd: _emscripten_glIsVertexArrayOES, xa: _emscripten_glLineWidth, ya: _emscripten_glLinkProgram, Ue: _emscripten_glMultiDrawArraysInstancedBaseInstanceWEBGL, Ve: _emscripten_glMultiDrawElementsInstancedBaseVertexBaseInstanceWEBGL, Pb: _emscripten_glPauseTransformFeedback, za: _emscripten_glPixelStorei, _c: _emscripten_glPolygonModeWEBGL, kd: _emscripten_glPolygonOffset, bd: _emscripten_glPolygonOffsetClampEXT, Mb: _emscripten_glProgramBinary, Lb: _emscripten_glProgramParameteri, be: _emscripten_glQueryCounterEXT, Xe: _emscripten_glReadBuffer, Aa: _emscripten_glReadPixels, jd: _emscripten_glReleaseShaderCompiler, Fe: _emscripten_glRenderbufferStorage, Be: _emscripten_glRenderbufferStorageMultisample, Ob: _emscripten_glResumeTransformFeedback, id: _emscripten_glSampleCoverage, re: _emscripten_glSamplerParameterf, Wb: _emscripten_glSamplerParameterfv, se: _emscripten_glSamplerParameteri, te: _emscripten_glSamplerParameteriv, Ba: _emscripten_glScissor, hd: _emscripten_glShaderBinary, Ca: _emscripten_glShaderSource, Da: _emscripten_glStencilFunc, Ea: _emscripten_glStencilFuncSeparate, Fa: _emscripten_glStencilMask, Ga: _emscripten_glStencilMaskSeparate, Ha: _emscripten_glStencilOp, Ia: _emscripten_glStencilOpSeparate, Ja: _emscripten_glTexImage2D, Vc: _emscripten_glTexImage3D, Ka: _emscripten_glTexParameterf, La: _emscripten_glTexParameterfv, Ma: _emscripten_glTexParameteri, Na: _emscripten_glTexParameteriv, Qe: _emscripten_glTexStorage2D, Kb: _emscripten_glTexStorage3D, Oa: _emscripten_glTexSubImage2D, Uc: _emscripten_glTexSubImage3D, Cc: _emscripten_glTransformFeedbackVaryings, Pa: _emscripten_glUniform1f, Qa: _emscripten_glUniform1fv, Cf: _emscripten_glUniform1i, Df: _emscripten_glUniform1iv, rc: _emscripten_glUniform1ui, nc: _emscripten_glUniform1uiv, Ef: _emscripten_glUniform2f, Ff: _emscripten_glUniform2fv, Bf: _emscripten_glUniform2i, Af: _emscripten_glUniform2iv, qc: _emscripten_glUniform2ui, mc: _emscripten_glUniform2uiv, zf: _emscripten_glUniform3f, yf: _emscripten_glUniform3fv, xf: _emscripten_glUniform3i, wf: _emscripten_glUniform3iv, pc: _emscripten_glUniform3ui, lc: _emscripten_glUniform3uiv, vf: _emscripten_glUniform4f, uf: _emscripten_glUniform4fv, hf: _emscripten_glUniform4i, jf: _emscripten_glUniform4iv, oc: _emscripten_glUniform4ui, kc: _emscripten_glUniform4uiv, ac: _emscripten_glUniformBlockBinding, kf: _emscripten_glUniformMatrix2fv, Pc: _emscripten_glUniformMatrix2x3fv, Nc: _emscripten_glUniformMatrix2x4fv, lf: _emscripten_glUniformMatrix3fv, Oc: _emscripten_glUniformMatrix3x2fv, Lc: _emscripten_glUniformMatrix3x4fv, mf: _emscripten_glUniformMatrix4fv, Mc: _emscripten_glUniformMatrix4x2fv, Kc: _emscripten_glUniformMatrix4x3fv, nf: _emscripten_glUseProgram, gd: _emscripten_glValidateProgram, of: _emscripten_glVertexAttrib1f, fd: _emscripten_glVertexAttrib1fv, ed: _emscripten_glVertexAttrib2f, pf: _emscripten_glVertexAttrib2fv, dd: _emscripten_glVertexAttrib3f, qf: _emscripten_glVertexAttrib3fv, cd: _emscripten_glVertexAttrib4f, rf: _emscripten_glVertexAttrib4fv, Re: _emscripten_glVertexAttribDivisor, Nd: _emscripten_glVertexAttribDivisorANGLE, Hb: _emscripten_glVertexAttribDivisorARB, Zc: _emscripten_glVertexAttribDivisorEXT, Ib: _emscripten_glVertexAttribDivisorNV, yc: _emscripten_glVertexAttribI4i, vc: _emscripten_glVertexAttribI4iv, wc: _emscripten_glVertexAttribI4ui, uc: _emscripten_glVertexAttribI4uiv, Te: _emscripten_glVertexAttribIPointer, sf: _emscripten_glVertexAttribPointer, tf: _emscripten_glViewport, we: _emscripten_glWaitSync, Va: _emscripten_request_animation_frame_loop, jb: _emscripten_resize_heap, Bb: _environ_get, Cb: _environ_sizes_get, Ta: _exit, Q: _fd_close, kb: _fd_pread, vb: _fd_read, ob: _fd_seek, L: _fd_write, Ra: _glGetIntegerv, U: _glGetString, Sa: _glGetStringi, Wd: invoke_dd, Vd: invoke_ddd, Xd: invoke_dddd, X: invoke_diii, Ud: invoke_fff, Z: invoke_fi, _a: invoke_fif, Y: invoke_fiii, $a: invoke_fiiiif, p: invoke_i, eb: invoke_if, ab: invoke_iffiiiiiiii, f: invoke_ii, x: invoke_iif, T: invoke_iifffi, g: invoke_iii, db: invoke_iiif, h: invoke_iiii, k: invoke_iiiii, fb: invoke_iiiiid, H: invoke_iiiiii, s: invoke_iiiiiii, G: invoke_iiiiiiii, V: invoke_iiiiiiiiii, Se: invoke_iiiiiiiiiiifiii, J: invoke_iiiiiiiiiiii, hb: invoke_j, Ya: invoke_ji, o: invoke_jii, K: invoke_jiiii, n: invoke_v, b: invoke_vi, ea: invoke_vid, D: invoke_vif, C: invoke_viff, A: invoke_vifff, t: invoke_vifffff, Xa: invoke_viffi, da: invoke_vifi, c: invoke_vii, E: invoke_viif, W: invoke_viiff, O: invoke_viifff, ad: invoke_viiffiii, r: invoke_viifii, e: invoke_viii, B: invoke_viiif, ca: invoke_viiifi, u: invoke_viiifif, i: invoke_viiii, Za: invoke_viiiif, j: invoke_viiiii, bb: invoke_viiiiiffiifff, cb: invoke_viiiiiffiifi, l: invoke_viiiiii, ba: invoke_viiiiiiff, q: invoke_viiiiiii, F: invoke_viiiiiiii, Ua: invoke_viiiiiiiii, xc: invoke_viiiiiiiiifii, z: invoke_viiiiiiiiii, Wa: invoke_viiiiiiiiiii, I: invoke_viiiiiiiiiiiiiii, ld: invoke_viij, S: invoke_viiji, N: invoke_vijjjj, R: _llvm_eh_typeid_for, pb: _random_get };
4998
+ var wasmImports = { w: ___cxa_begin_catch, A: ___cxa_end_catch, a: ___cxa_find_matching_catch_2, n: ___cxa_find_matching_catch_3, H: ___cxa_find_matching_catch_4, $: ___cxa_rethrow, x: ___cxa_throw, eb: ___cxa_uncaught_exceptions, d: ___resumeException, ba: ___syscall_fcntl64, sb: ___syscall_fstat64, ob: ___syscall_getcwd, ub: ___syscall_ioctl, pb: ___syscall_lstat64, qb: ___syscall_newfstatat, aa: ___syscall_openat, rb: ___syscall_stat64, xb: __abort_js, gb: __emscripten_throw_longjmp, lb: __gmtime_js, jb: __mmap_js, kb: __munmap_js, yb: __tzset_js, wb: _clock_time_get, vb: _emscripten_date_now, Q: _emscripten_get_now, Gf: _emscripten_glActiveTexture, Hf: _emscripten_glAttachShader, he: _emscripten_glBeginQuery, be: _emscripten_glBeginQueryEXT, Gc: _emscripten_glBeginTransformFeedback, If: _emscripten_glBindAttribLocation, Jf: _emscripten_glBindBuffer, Dc: _emscripten_glBindBufferBase, Ec: _emscripten_glBindBufferRange, Ge: _emscripten_glBindFramebuffer, He: _emscripten_glBindRenderbuffer, ne: _emscripten_glBindSampler, Kf: _emscripten_glBindTexture, Sb: _emscripten_glBindTransformFeedback, bf: _emscripten_glBindVertexArray, ef: _emscripten_glBindVertexArrayOES, Lf: _emscripten_glBlendColor, Mf: _emscripten_glBlendEquation, Ld: _emscripten_glBlendEquationSeparate, Nf: _emscripten_glBlendFunc, Kd: _emscripten_glBlendFuncSeparate, Ae: _emscripten_glBlitFramebuffer, Of: _emscripten_glBufferData, Pf: _emscripten_glBufferSubData, Ie: _emscripten_glCheckFramebufferStatus, Qf: _emscripten_glClear, gc: _emscripten_glClearBufferfi, hc: _emscripten_glClearBufferfv, jc: _emscripten_glClearBufferiv, ic: _emscripten_glClearBufferuiv, Rf: _emscripten_glClearColor, Jd: _emscripten_glClearDepthf, Sf: _emscripten_glClearStencil, we: _emscripten_glClientWaitSync, $c: _emscripten_glClipControlEXT, Tf: _emscripten_glColorMask, Uf: _emscripten_glCompileShader, Vf: _emscripten_glCompressedTexImage2D, Sc: _emscripten_glCompressedTexImage3D, Wf: _emscripten_glCompressedTexSubImage2D, Rc: _emscripten_glCompressedTexSubImage3D, ye: _emscripten_glCopyBufferSubData, Id: _emscripten_glCopyTexImage2D, Xf: _emscripten_glCopyTexSubImage2D, Tc: _emscripten_glCopyTexSubImage3D, Yf: _emscripten_glCreateProgram, Zf: _emscripten_glCreateShader, _f: _emscripten_glCullFace, $f: _emscripten_glDeleteBuffers, Je: _emscripten_glDeleteFramebuffers, ag: _emscripten_glDeleteProgram, ie: _emscripten_glDeleteQueries, ce: _emscripten_glDeleteQueriesEXT, Ke: _emscripten_glDeleteRenderbuffers, oe: _emscripten_glDeleteSamplers, bg: _emscripten_glDeleteShader, xe: _emscripten_glDeleteSync, cg: _emscripten_glDeleteTextures, Rb: _emscripten_glDeleteTransformFeedbacks, cf: _emscripten_glDeleteVertexArrays, ff: _emscripten_glDeleteVertexArraysOES, Hd: _emscripten_glDepthFunc, dg: _emscripten_glDepthMask, Gd: _emscripten_glDepthRangef, Fd: _emscripten_glDetachShader, eg: _emscripten_glDisable, fg: _emscripten_glDisableVertexAttribArray, gg: _emscripten_glDrawArrays, $e: _emscripten_glDrawArraysInstanced, Od: _emscripten_glDrawArraysInstancedANGLE, Eb: _emscripten_glDrawArraysInstancedARB, Ye: _emscripten_glDrawArraysInstancedBaseInstanceWEBGL, Yc: _emscripten_glDrawArraysInstancedEXT, Fb: _emscripten_glDrawArraysInstancedNV, We: _emscripten_glDrawBuffers, Wc: _emscripten_glDrawBuffersEXT, Pd: _emscripten_glDrawBuffersWEBGL, hg: _emscripten_glDrawElements, af: _emscripten_glDrawElementsInstanced, Nd: _emscripten_glDrawElementsInstancedANGLE, Cb: _emscripten_glDrawElementsInstancedARB, Ze: _emscripten_glDrawElementsInstancedBaseVertexBaseInstanceWEBGL, Db: _emscripten_glDrawElementsInstancedEXT, Xc: _emscripten_glDrawElementsInstancedNV, Pe: _emscripten_glDrawRangeElements, ig: _emscripten_glEnable, jg: _emscripten_glEnableVertexAttribArray, je: _emscripten_glEndQuery, de: _emscripten_glEndQueryEXT, Fc: _emscripten_glEndTransformFeedback, te: _emscripten_glFenceSync, ga: _emscripten_glFinish, ha: _emscripten_glFlush, Le: _emscripten_glFramebufferRenderbuffer, Me: _emscripten_glFramebufferTexture2D, Jc: _emscripten_glFramebufferTextureLayer, ia: _emscripten_glFrontFace, ja: _emscripten_glGenBuffers, Ne: _emscripten_glGenFramebuffers, ke: _emscripten_glGenQueries, ee: _emscripten_glGenQueriesEXT, Oe: _emscripten_glGenRenderbuffers, pe: _emscripten_glGenSamplers, ka: _emscripten_glGenTextures, Qb: _emscripten_glGenTransformFeedbacks, _e: _emscripten_glGenVertexArrays, gf: _emscripten_glGenVertexArraysOES, Ce: _emscripten_glGenerateMipmap, Ed: _emscripten_glGetActiveAttrib, Dd: _emscripten_glGetActiveUniform, ac: _emscripten_glGetActiveUniformBlockName, bc: _emscripten_glGetActiveUniformBlockiv, dc: _emscripten_glGetActiveUniformsiv, Cd: _emscripten_glGetAttachedShaders, Bd: _emscripten_glGetAttribLocation, Ad: _emscripten_glGetBooleanv, Xb: _emscripten_glGetBufferParameteri64v, la: _emscripten_glGetBufferParameteriv, ma: _emscripten_glGetError, na: _emscripten_glGetFloatv, tc: _emscripten_glGetFragDataLocation, De: _emscripten_glGetFramebufferAttachmentParameteriv, Yb: _emscripten_glGetInteger64i_v, _b: _emscripten_glGetInteger64v, Hc: _emscripten_glGetIntegeri_v, oa: _emscripten_glGetIntegerv, Ib: _emscripten_glGetInternalformativ, Mb: _emscripten_glGetProgramBinary, pa: _emscripten_glGetProgramInfoLog, qa: _emscripten_glGetProgramiv, _d: _emscripten_glGetQueryObjecti64vEXT, Rd: _emscripten_glGetQueryObjectivEXT, $d: _emscripten_glGetQueryObjectui64vEXT, le: _emscripten_glGetQueryObjectuiv, fe: _emscripten_glGetQueryObjectuivEXT, me: _emscripten_glGetQueryiv, ge: _emscripten_glGetQueryivEXT, Ee: _emscripten_glGetRenderbufferParameteriv, Tb: _emscripten_glGetSamplerParameterfv, Ub: _emscripten_glGetSamplerParameteriv, ra: _emscripten_glGetShaderInfoLog, Xd: _emscripten_glGetShaderPrecisionFormat, zd: _emscripten_glGetShaderSource, sa: _emscripten_glGetShaderiv, ta: _emscripten_glGetString, df: _emscripten_glGetStringi, Zb: _emscripten_glGetSynciv, yd: _emscripten_glGetTexParameterfv, xd: _emscripten_glGetTexParameteriv, Bc: _emscripten_glGetTransformFeedbackVarying, cc: _emscripten_glGetUniformBlockIndex, fc: _emscripten_glGetUniformIndices, ua: _emscripten_glGetUniformLocation, vd: _emscripten_glGetUniformfv, ud: _emscripten_glGetUniformiv, uc: _emscripten_glGetUniformuiv, Ac: _emscripten_glGetVertexAttribIiv, zc: _emscripten_glGetVertexAttribIuiv, rd: _emscripten_glGetVertexAttribPointerv, td: _emscripten_glGetVertexAttribfv, sd: _emscripten_glGetVertexAttribiv, qd: _emscripten_glHint, Yd: _emscripten_glInvalidateFramebuffer, Zd: _emscripten_glInvalidateSubFramebuffer, pd: _emscripten_glIsBuffer, od: _emscripten_glIsEnabled, nd: _emscripten_glIsFramebuffer, md: _emscripten_glIsProgram, Qc: _emscripten_glIsQuery, Sd: _emscripten_glIsQueryEXT, ld: _emscripten_glIsRenderbuffer, Wb: _emscripten_glIsSampler, kd: _emscripten_glIsShader, ue: _emscripten_glIsSync, va: _emscripten_glIsTexture, Pb: _emscripten_glIsTransformFeedback, Ic: _emscripten_glIsVertexArray, Qd: _emscripten_glIsVertexArrayOES, wa: _emscripten_glLineWidth, xa: _emscripten_glLinkProgram, Te: _emscripten_glMultiDrawArraysInstancedBaseInstanceWEBGL, Ve: _emscripten_glMultiDrawElementsInstancedBaseVertexBaseInstanceWEBGL, Ob: _emscripten_glPauseTransformFeedback, ya: _emscripten_glPixelStorei, _c: _emscripten_glPolygonModeWEBGL, jd: _emscripten_glPolygonOffset, ad: _emscripten_glPolygonOffsetClampEXT, Lb: _emscripten_glProgramBinary, Kb: _emscripten_glProgramParameteri, ae: _emscripten_glQueryCounterEXT, Xe: _emscripten_glReadBuffer, za: _emscripten_glReadPixels, id: _emscripten_glReleaseShaderCompiler, Fe: _emscripten_glRenderbufferStorage, Be: _emscripten_glRenderbufferStorageMultisample, Nb: _emscripten_glResumeTransformFeedback, hd: _emscripten_glSampleCoverage, qe: _emscripten_glSamplerParameterf, Vb: _emscripten_glSamplerParameterfv, re: _emscripten_glSamplerParameteri, se: _emscripten_glSamplerParameteriv, Aa: _emscripten_glScissor, gd: _emscripten_glShaderBinary, Ba: _emscripten_glShaderSource, Ca: _emscripten_glStencilFunc, Da: _emscripten_glStencilFuncSeparate, Ea: _emscripten_glStencilMask, Fa: _emscripten_glStencilMaskSeparate, Ga: _emscripten_glStencilOp, Ha: _emscripten_glStencilOpSeparate, Ia: _emscripten_glTexImage2D, Vc: _emscripten_glTexImage3D, Ja: _emscripten_glTexParameterf, Ka: _emscripten_glTexParameterfv, La: _emscripten_glTexParameteri, Ma: _emscripten_glTexParameteriv, Qe: _emscripten_glTexStorage2D, Jb: _emscripten_glTexStorage3D, Na: _emscripten_glTexSubImage2D, Uc: _emscripten_glTexSubImage3D, Cc: _emscripten_glTransformFeedbackVaryings, Oa: _emscripten_glUniform1f, Pa: _emscripten_glUniform1fv, Cf: _emscripten_glUniform1i, Df: _emscripten_glUniform1iv, sc: _emscripten_glUniform1ui, nc: _emscripten_glUniform1uiv, Ef: _emscripten_glUniform2f, Ff: _emscripten_glUniform2fv, Bf: _emscripten_glUniform2i, Af: _emscripten_glUniform2iv, rc: _emscripten_glUniform2ui, mc: _emscripten_glUniform2uiv, zf: _emscripten_glUniform3f, yf: _emscripten_glUniform3fv, xf: _emscripten_glUniform3i, wf: _emscripten_glUniform3iv, qc: _emscripten_glUniform3ui, lc: _emscripten_glUniform3uiv, vf: _emscripten_glUniform4f, uf: _emscripten_glUniform4fv, hf: _emscripten_glUniform4i, jf: _emscripten_glUniform4iv, oc: _emscripten_glUniform4ui, kc: _emscripten_glUniform4uiv, $b: _emscripten_glUniformBlockBinding, kf: _emscripten_glUniformMatrix2fv, Pc: _emscripten_glUniformMatrix2x3fv, Nc: _emscripten_glUniformMatrix2x4fv, lf: _emscripten_glUniformMatrix3fv, Oc: _emscripten_glUniformMatrix3x2fv, Lc: _emscripten_glUniformMatrix3x4fv, mf: _emscripten_glUniformMatrix4fv, Mc: _emscripten_glUniformMatrix4x2fv, Kc: _emscripten_glUniformMatrix4x3fv, nf: _emscripten_glUseProgram, fd: _emscripten_glValidateProgram, of: _emscripten_glVertexAttrib1f, ed: _emscripten_glVertexAttrib1fv, dd: _emscripten_glVertexAttrib2f, pf: _emscripten_glVertexAttrib2fv, cd: _emscripten_glVertexAttrib3f, qf: _emscripten_glVertexAttrib3fv, bd: _emscripten_glVertexAttrib4f, rf: _emscripten_glVertexAttrib4fv, Re: _emscripten_glVertexAttribDivisor, Md: _emscripten_glVertexAttribDivisorANGLE, Gb: _emscripten_glVertexAttribDivisorARB, Zc: _emscripten_glVertexAttribDivisorEXT, Hb: _emscripten_glVertexAttribDivisorNV, yc: _emscripten_glVertexAttribI4i, wc: _emscripten_glVertexAttribI4iv, xc: _emscripten_glVertexAttribI4ui, vc: _emscripten_glVertexAttribI4uiv, Se: _emscripten_glVertexAttribIPointer, sf: _emscripten_glVertexAttribPointer, tf: _emscripten_glViewport, ve: _emscripten_glWaitSync, Ua: _emscripten_request_animation_frame_loop, hb: _emscripten_resize_heap, zb: _environ_get, Ab: _environ_sizes_get, Sa: _exit, R: _fd_close, ib: _fd_pread, tb: _fd_read, mb: _fd_seek, L: _fd_write, Qa: _glGetIntegerv, U: _glGetString, Ra: _glGetStringi, Vd: invoke_dd, Ud: invoke_ddd, Wd: invoke_dddd, Z: invoke_diii, Td: invoke_fff, W: invoke_fi, ab: invoke_fif, _: invoke_fiii, bb: invoke_fiiiif, p: invoke_i, Xa: invoke_if, Bb: invoke_iffiiiiiiii, f: invoke_ii, y: invoke_iif, T: invoke_iifffi, g: invoke_iii, Wa: invoke_iiif, h: invoke_iiii, k: invoke_iiiii, db: invoke_iiiiid, M: invoke_iiiiii, s: invoke_iiiiiii, G: invoke_iiiiiiii, V: invoke_iiiiiiiiii, ze: invoke_iiiiiiiiiiifiii, J: invoke_iiiiiiiiiiii, fb: invoke_j, $a: invoke_ji, l: invoke_jii, K: invoke_jiiii, o: invoke_v, b: invoke_vi, fa: invoke_vid, E: invoke_vif, D: invoke_viff, C: invoke_vifff, u: invoke_vifffff, wd: invoke_viffi, da: invoke_vifi, c: invoke_vii, F: invoke_viif, Y: invoke_viiff, N: invoke_viifff, Ya: invoke_viiffiii, r: invoke_viifii, e: invoke_viii, t: invoke_viiif, ea: invoke_viiifi, v: invoke_viiifif, i: invoke_viiii, Ue: invoke_viiiif, j: invoke_viiiii, ec: invoke_viiiiiffiifff, pc: invoke_viiiiiffiifi, m: invoke_viiiiii, X: invoke_viiiiiiff, q: invoke_viiiiiii, z: invoke_viiiiiiii, Ta: invoke_viiiiiiiii, cb: invoke_viiiiiiiiifii, B: invoke_viiiiiiiiii, Va: invoke_viiiiiiiiiii, I: invoke_viiiiiiiiiiiiiii, ca: invoke_viij, S: invoke_viiji, _a: invoke_viji, Za: invoke_vijii, O: invoke_vijjjj, P: _llvm_eh_typeid_for, nb: _random_get };
4999
4999
  var wasmExports = await createWasm();
5000
- var ___wasm_call_ctors = wasmExports["jg"];
5001
- var _allocate = Module["_allocate"] = wasmExports["lg"];
5002
- var _deallocate = Module["_deallocate"] = wasmExports["mg"];
5000
+ var ___wasm_call_ctors = wasmExports["lg"];
5003
5001
  var _init = Module["_init"] = wasmExports["ng"];
5004
5002
  var _tick = Module["_tick"] = wasmExports["og"];
5005
5003
  var _resize_surface = Module["_resize_surface"] = wasmExports["pg"];
@@ -5033,18 +5031,24 @@ var require_grida_canvas_wasm = __commonJS({
5033
5031
  var _highlight_strokes = Module["_highlight_strokes"] = wasmExports["Rg"];
5034
5032
  var _load_dummy_scene = Module["_load_dummy_scene"] = wasmExports["Sg"];
5035
5033
  var _load_benchmark_scene = Module["_load_benchmark_scene"] = wasmExports["Tg"];
5036
- var _main = Module["_main"] = wasmExports["Ug"];
5037
- var _malloc = wasmExports["Vg"];
5038
- var _emscripten_builtin_memalign = wasmExports["Wg"];
5039
- var _setThrew = wasmExports["Xg"];
5040
- var __emscripten_tempret_set = wasmExports["Yg"];
5041
- var __emscripten_stack_restore = wasmExports["Zg"];
5042
- var __emscripten_stack_alloc = wasmExports["_g"];
5043
- var _emscripten_stack_get_current = wasmExports["$g"];
5044
- var ___cxa_decrement_exception_refcount = wasmExports["ah"];
5045
- var ___cxa_increment_exception_refcount = wasmExports["bh"];
5046
- var ___cxa_can_catch = wasmExports["ch"];
5047
- var ___cxa_get_exception_ptr = wasmExports["dh"];
5034
+ var _allocate = Module["_allocate"] = wasmExports["Ug"];
5035
+ var _deallocate = Module["_deallocate"] = wasmExports["Vg"];
5036
+ var _main = Module["_main"] = wasmExports["Wg"];
5037
+ var _grida_fonts_analyze_family = Module["_grida_fonts_analyze_family"] = wasmExports["Xg"];
5038
+ var _grida_fonts_parse_font = Module["_grida_fonts_parse_font"] = wasmExports["Yg"];
5039
+ var _grida_fonts_free = Module["_grida_fonts_free"] = wasmExports["Zg"];
5040
+ var _grida_fonts_version = Module["_grida_fonts_version"] = wasmExports["_g"];
5041
+ var _malloc = wasmExports["$g"];
5042
+ var _emscripten_builtin_memalign = wasmExports["ah"];
5043
+ var _setThrew = wasmExports["bh"];
5044
+ var __emscripten_tempret_set = wasmExports["ch"];
5045
+ var __emscripten_stack_restore = wasmExports["dh"];
5046
+ var __emscripten_stack_alloc = wasmExports["eh"];
5047
+ var _emscripten_stack_get_current = wasmExports["fh"];
5048
+ var ___cxa_decrement_exception_refcount = wasmExports["gh"];
5049
+ var ___cxa_increment_exception_refcount = wasmExports["hh"];
5050
+ var ___cxa_can_catch = wasmExports["ih"];
5051
+ var ___cxa_get_exception_ptr = wasmExports["jh"];
5048
5052
  function invoke_vii(index, a1, a2) {
5049
5053
  var sp = stackSave();
5050
5054
  try {
@@ -5165,20 +5169,40 @@ var require_grida_canvas_wasm = __commonJS({
5165
5169
  _setThrew(1, 0);
5166
5170
  }
5167
5171
  }
5168
- function invoke_viiif(index, a1, a2, a3, a4) {
5172
+ function invoke_viif(index, a1, a2, a3) {
5169
5173
  var sp = stackSave();
5170
5174
  try {
5171
- getWasmTableEntry(index)(a1, a2, a3, a4);
5175
+ getWasmTableEntry(index)(a1, a2, a3);
5172
5176
  } catch (e) {
5173
5177
  stackRestore(sp);
5174
5178
  if (e !== e + 0) throw e;
5175
5179
  _setThrew(1, 0);
5176
5180
  }
5177
5181
  }
5178
- function invoke_viiiiiii(index, a1, a2, a3, a4, a5, a6, a7) {
5182
+ function invoke_viiifi(index, a1, a2, a3, a4, a5) {
5179
5183
  var sp = stackSave();
5180
5184
  try {
5181
- getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6, a7);
5185
+ getWasmTableEntry(index)(a1, a2, a3, a4, a5);
5186
+ } catch (e) {
5187
+ stackRestore(sp);
5188
+ if (e !== e + 0) throw e;
5189
+ _setThrew(1, 0);
5190
+ }
5191
+ }
5192
+ function invoke_iif(index, a1, a2) {
5193
+ var sp = stackSave();
5194
+ try {
5195
+ return getWasmTableEntry(index)(a1, a2);
5196
+ } catch (e) {
5197
+ stackRestore(sp);
5198
+ if (e !== e + 0) throw e;
5199
+ _setThrew(1, 0);
5200
+ }
5201
+ }
5202
+ function invoke_viiiif(index, a1, a2, a3, a4, a5) {
5203
+ var sp = stackSave();
5204
+ try {
5205
+ getWasmTableEntry(index)(a1, a2, a3, a4, a5);
5182
5206
  } catch (e) {
5183
5207
  stackRestore(sp);
5184
5208
  if (e !== e + 0) throw e;
@@ -5225,108 +5249,107 @@ var require_grida_canvas_wasm = __commonJS({
5225
5249
  _setThrew(1, 0);
5226
5250
  }
5227
5251
  }
5228
- function invoke_viifff(index, a1, a2, a3, a4, a5) {
5252
+ function invoke_viij(index, a1, a2, a3) {
5229
5253
  var sp = stackSave();
5230
5254
  try {
5231
- getWasmTableEntry(index)(a1, a2, a3, a4, a5);
5255
+ getWasmTableEntry(index)(a1, a2, a3);
5232
5256
  } catch (e) {
5233
5257
  stackRestore(sp);
5234
5258
  if (e !== e + 0) throw e;
5235
5259
  _setThrew(1, 0);
5236
5260
  }
5237
5261
  }
5238
- function invoke_iif(index, a1, a2) {
5262
+ function invoke_i(index) {
5239
5263
  var sp = stackSave();
5240
5264
  try {
5241
- return getWasmTableEntry(index)(a1, a2);
5265
+ return getWasmTableEntry(index)();
5242
5266
  } catch (e) {
5243
5267
  stackRestore(sp);
5244
5268
  if (e !== e + 0) throw e;
5245
5269
  _setThrew(1, 0);
5246
5270
  }
5247
5271
  }
5248
- function invoke_v(index) {
5272
+ function invoke_viiji(index, a1, a2, a3, a4) {
5249
5273
  var sp = stackSave();
5250
5274
  try {
5251
- getWasmTableEntry(index)();
5275
+ getWasmTableEntry(index)(a1, a2, a3, a4);
5252
5276
  } catch (e) {
5253
5277
  stackRestore(sp);
5254
5278
  if (e !== e + 0) throw e;
5255
5279
  _setThrew(1, 0);
5256
5280
  }
5257
5281
  }
5258
- function invoke_jii(index, a1, a2) {
5282
+ function invoke_viffi(index, a1, a2, a3, a4) {
5259
5283
  var sp = stackSave();
5260
5284
  try {
5261
- return getWasmTableEntry(index)(a1, a2);
5285
+ getWasmTableEntry(index)(a1, a2, a3, a4);
5262
5286
  } catch (e) {
5263
5287
  stackRestore(sp);
5264
5288
  if (e !== e + 0) throw e;
5265
5289
  _setThrew(1, 0);
5266
- return 0n;
5267
5290
  }
5268
5291
  }
5269
- function invoke_i(index) {
5292
+ function invoke_viifff(index, a1, a2, a3, a4, a5) {
5270
5293
  var sp = stackSave();
5271
5294
  try {
5272
- return getWasmTableEntry(index)();
5295
+ getWasmTableEntry(index)(a1, a2, a3, a4, a5);
5273
5296
  } catch (e) {
5274
5297
  stackRestore(sp);
5275
5298
  if (e !== e + 0) throw e;
5276
5299
  _setThrew(1, 0);
5277
5300
  }
5278
5301
  }
5279
- function invoke_viiifi(index, a1, a2, a3, a4, a5) {
5302
+ function invoke_vifff(index, a1, a2, a3, a4) {
5280
5303
  var sp = stackSave();
5281
5304
  try {
5282
- getWasmTableEntry(index)(a1, a2, a3, a4, a5);
5305
+ getWasmTableEntry(index)(a1, a2, a3, a4);
5283
5306
  } catch (e) {
5284
5307
  stackRestore(sp);
5285
5308
  if (e !== e + 0) throw e;
5286
5309
  _setThrew(1, 0);
5287
5310
  }
5288
5311
  }
5289
- function invoke_viij(index, a1, a2, a3) {
5312
+ function invoke_vifffff(index, a1, a2, a3, a4, a5, a6) {
5290
5313
  var sp = stackSave();
5291
5314
  try {
5292
- getWasmTableEntry(index)(a1, a2, a3);
5315
+ getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6);
5293
5316
  } catch (e) {
5294
5317
  stackRestore(sp);
5295
5318
  if (e !== e + 0) throw e;
5296
5319
  _setThrew(1, 0);
5297
5320
  }
5298
5321
  }
5299
- function invoke_viiffiii(index, a1, a2, a3, a4, a5, a6, a7) {
5322
+ function invoke_viiifif(index, a1, a2, a3, a4, a5, a6) {
5300
5323
  var sp = stackSave();
5301
5324
  try {
5302
- getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6, a7);
5325
+ getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6);
5303
5326
  } catch (e) {
5304
5327
  stackRestore(sp);
5305
5328
  if (e !== e + 0) throw e;
5306
5329
  _setThrew(1, 0);
5307
5330
  }
5308
5331
  }
5309
- function invoke_viiiiiiff(index, a1, a2, a3, a4, a5, a6, a7, a8) {
5332
+ function invoke_v(index) {
5310
5333
  var sp = stackSave();
5311
5334
  try {
5312
- getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6, a7, a8);
5335
+ getWasmTableEntry(index)();
5313
5336
  } catch (e) {
5314
5337
  stackRestore(sp);
5315
5338
  if (e !== e + 0) throw e;
5316
5339
  _setThrew(1, 0);
5317
5340
  }
5318
5341
  }
5319
- function invoke_viiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) {
5342
+ function invoke_viiiiiffiifi(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) {
5320
5343
  var sp = stackSave();
5321
5344
  try {
5322
- getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6, a7, a8);
5345
+ getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
5323
5346
  } catch (e) {
5324
5347
  stackRestore(sp);
5325
5348
  if (e !== e + 0) throw e;
5326
5349
  _setThrew(1, 0);
5327
5350
  }
5328
5351
  }
5329
- function invoke_viiiiiiiiifii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) {
5352
+ function invoke_viiiiiffiifff(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) {
5330
5353
  var sp = stackSave();
5331
5354
  try {
5332
5355
  getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
@@ -5336,17 +5359,17 @@ var require_grida_canvas_wasm = __commonJS({
5336
5359
  _setThrew(1, 0);
5337
5360
  }
5338
5361
  }
5339
- function invoke_viif(index, a1, a2, a3) {
5362
+ function invoke_viiiiiii(index, a1, a2, a3, a4, a5, a6, a7) {
5340
5363
  var sp = stackSave();
5341
5364
  try {
5342
- getWasmTableEntry(index)(a1, a2, a3);
5365
+ getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6, a7);
5343
5366
  } catch (e) {
5344
5367
  stackRestore(sp);
5345
5368
  if (e !== e + 0) throw e;
5346
5369
  _setThrew(1, 0);
5347
5370
  }
5348
5371
  }
5349
- function invoke_viiji(index, a1, a2, a3, a4) {
5372
+ function invoke_viiif(index, a1, a2, a3, a4) {
5350
5373
  var sp = stackSave();
5351
5374
  try {
5352
5375
  getWasmTableEntry(index)(a1, a2, a3, a4);
@@ -5356,147 +5379,149 @@ var require_grida_canvas_wasm = __commonJS({
5356
5379
  _setThrew(1, 0);
5357
5380
  }
5358
5381
  }
5359
- function invoke_vifffff(index, a1, a2, a3, a4, a5, a6) {
5382
+ function invoke_iffiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) {
5360
5383
  var sp = stackSave();
5361
5384
  try {
5362
- getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6);
5385
+ return getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
5363
5386
  } catch (e) {
5364
5387
  stackRestore(sp);
5365
5388
  if (e !== e + 0) throw e;
5366
5389
  _setThrew(1, 0);
5367
5390
  }
5368
5391
  }
5369
- function invoke_viiifif(index, a1, a2, a3, a4, a5, a6) {
5392
+ function invoke_iiiiii(index, a1, a2, a3, a4, a5) {
5370
5393
  var sp = stackSave();
5371
5394
  try {
5372
- getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6);
5395
+ return getWasmTableEntry(index)(a1, a2, a3, a4, a5);
5373
5396
  } catch (e) {
5374
5397
  stackRestore(sp);
5375
5398
  if (e !== e + 0) throw e;
5376
5399
  _setThrew(1, 0);
5377
5400
  }
5378
5401
  }
5379
- function invoke_vifff(index, a1, a2, a3, a4) {
5402
+ function invoke_jii(index, a1, a2) {
5380
5403
  var sp = stackSave();
5381
5404
  try {
5382
- getWasmTableEntry(index)(a1, a2, a3, a4);
5405
+ return getWasmTableEntry(index)(a1, a2);
5383
5406
  } catch (e) {
5384
5407
  stackRestore(sp);
5385
5408
  if (e !== e + 0) throw e;
5386
5409
  _setThrew(1, 0);
5410
+ return 0n;
5387
5411
  }
5388
5412
  }
5389
- function invoke_fi(index, a1) {
5413
+ function invoke_viiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8) {
5390
5414
  var sp = stackSave();
5391
5415
  try {
5392
- return getWasmTableEntry(index)(a1);
5416
+ getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6, a7, a8);
5393
5417
  } catch (e) {
5394
5418
  stackRestore(sp);
5395
5419
  if (e !== e + 0) throw e;
5396
5420
  _setThrew(1, 0);
5397
5421
  }
5398
5422
  }
5399
- function invoke_vif(index, a1, a2) {
5423
+ function invoke_viiiiiiiiifii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) {
5400
5424
  var sp = stackSave();
5401
5425
  try {
5402
- getWasmTableEntry(index)(a1, a2);
5426
+ getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
5403
5427
  } catch (e) {
5404
5428
  stackRestore(sp);
5405
5429
  if (e !== e + 0) throw e;
5406
5430
  _setThrew(1, 0);
5407
5431
  }
5408
5432
  }
5409
- function invoke_if(index, a1) {
5433
+ function invoke_vif(index, a1, a2) {
5410
5434
  var sp = stackSave();
5411
5435
  try {
5412
- return getWasmTableEntry(index)(a1);
5436
+ getWasmTableEntry(index)(a1, a2);
5413
5437
  } catch (e) {
5414
5438
  stackRestore(sp);
5415
5439
  if (e !== e + 0) throw e;
5416
5440
  _setThrew(1, 0);
5417
5441
  }
5418
5442
  }
5419
- function invoke_iiif(index, a1, a2, a3) {
5443
+ function invoke_fiiiif(index, a1, a2, a3, a4, a5) {
5420
5444
  var sp = stackSave();
5421
5445
  try {
5422
- return getWasmTableEntry(index)(a1, a2, a3);
5446
+ return getWasmTableEntry(index)(a1, a2, a3, a4, a5);
5423
5447
  } catch (e) {
5424
5448
  stackRestore(sp);
5425
5449
  if (e !== e + 0) throw e;
5426
5450
  _setThrew(1, 0);
5427
5451
  }
5428
5452
  }
5429
- function invoke_viiiiiffiifi(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) {
5453
+ function invoke_fif(index, a1, a2) {
5430
5454
  var sp = stackSave();
5431
5455
  try {
5432
- getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
5456
+ return getWasmTableEntry(index)(a1, a2);
5433
5457
  } catch (e) {
5434
5458
  stackRestore(sp);
5435
5459
  if (e !== e + 0) throw e;
5436
5460
  _setThrew(1, 0);
5437
5461
  }
5438
5462
  }
5439
- function invoke_viiiiiffiifff(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) {
5463
+ function invoke_viiff(index, a1, a2, a3, a4) {
5440
5464
  var sp = stackSave();
5441
5465
  try {
5442
- getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
5466
+ getWasmTableEntry(index)(a1, a2, a3, a4);
5443
5467
  } catch (e) {
5444
5468
  stackRestore(sp);
5445
5469
  if (e !== e + 0) throw e;
5446
5470
  _setThrew(1, 0);
5447
5471
  }
5448
5472
  }
5449
- function invoke_iffiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) {
5473
+ function invoke_ji(index, a1) {
5450
5474
  var sp = stackSave();
5451
5475
  try {
5452
- return getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
5476
+ return getWasmTableEntry(index)(a1);
5453
5477
  } catch (e) {
5454
5478
  stackRestore(sp);
5455
5479
  if (e !== e + 0) throw e;
5456
5480
  _setThrew(1, 0);
5481
+ return 0n;
5457
5482
  }
5458
5483
  }
5459
- function invoke_iiiiii(index, a1, a2, a3, a4, a5) {
5484
+ function invoke_viji(index, a1, a2, a3) {
5460
5485
  var sp = stackSave();
5461
5486
  try {
5462
- return getWasmTableEntry(index)(a1, a2, a3, a4, a5);
5487
+ getWasmTableEntry(index)(a1, a2, a3);
5463
5488
  } catch (e) {
5464
5489
  stackRestore(sp);
5465
5490
  if (e !== e + 0) throw e;
5466
5491
  _setThrew(1, 0);
5467
5492
  }
5468
5493
  }
5469
- function invoke_fiiiif(index, a1, a2, a3, a4, a5) {
5494
+ function invoke_vijii(index, a1, a2, a3, a4) {
5470
5495
  var sp = stackSave();
5471
5496
  try {
5472
- return getWasmTableEntry(index)(a1, a2, a3, a4, a5);
5497
+ getWasmTableEntry(index)(a1, a2, a3, a4);
5473
5498
  } catch (e) {
5474
5499
  stackRestore(sp);
5475
5500
  if (e !== e + 0) throw e;
5476
5501
  _setThrew(1, 0);
5477
5502
  }
5478
5503
  }
5479
- function invoke_fif(index, a1, a2) {
5504
+ function invoke_viiffiii(index, a1, a2, a3, a4, a5, a6, a7) {
5480
5505
  var sp = stackSave();
5481
5506
  try {
5482
- return getWasmTableEntry(index)(a1, a2);
5507
+ getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6, a7);
5483
5508
  } catch (e) {
5484
5509
  stackRestore(sp);
5485
5510
  if (e !== e + 0) throw e;
5486
5511
  _setThrew(1, 0);
5487
5512
  }
5488
5513
  }
5489
- function invoke_viiiif(index, a1, a2, a3, a4, a5) {
5514
+ function invoke_viiiiiiff(index, a1, a2, a3, a4, a5, a6, a7, a8) {
5490
5515
  var sp = stackSave();
5491
5516
  try {
5492
- getWasmTableEntry(index)(a1, a2, a3, a4, a5);
5517
+ getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6, a7, a8);
5493
5518
  } catch (e) {
5494
5519
  stackRestore(sp);
5495
5520
  if (e !== e + 0) throw e;
5496
5521
  _setThrew(1, 0);
5497
5522
  }
5498
5523
  }
5499
- function invoke_ji(index, a1) {
5524
+ function invoke_if(index, a1) {
5500
5525
  var sp = stackSave();
5501
5526
  try {
5502
5527
  return getWasmTableEntry(index)(a1);
@@ -5504,23 +5529,22 @@ var require_grida_canvas_wasm = __commonJS({
5504
5529
  stackRestore(sp);
5505
5530
  if (e !== e + 0) throw e;
5506
5531
  _setThrew(1, 0);
5507
- return 0n;
5508
5532
  }
5509
5533
  }
5510
- function invoke_viiff(index, a1, a2, a3, a4) {
5534
+ function invoke_iiif(index, a1, a2, a3) {
5511
5535
  var sp = stackSave();
5512
5536
  try {
5513
- getWasmTableEntry(index)(a1, a2, a3, a4);
5537
+ return getWasmTableEntry(index)(a1, a2, a3);
5514
5538
  } catch (e) {
5515
5539
  stackRestore(sp);
5516
5540
  if (e !== e + 0) throw e;
5517
5541
  _setThrew(1, 0);
5518
5542
  }
5519
5543
  }
5520
- function invoke_viffi(index, a1, a2, a3, a4) {
5544
+ function invoke_fi(index, a1) {
5521
5545
  var sp = stackSave();
5522
5546
  try {
5523
- getWasmTableEntry(index)(a1, a2, a3, a4);
5547
+ return getWasmTableEntry(index)(a1);
5524
5548
  } catch (e) {
5525
5549
  stackRestore(sp);
5526
5550
  if (e !== e + 0) throw e;
@@ -5785,68 +5809,187 @@ var require_grida_canvas_wasm = __commonJS({
5785
5809
  // lib/index.ts
5786
5810
  var index_exports = {};
5787
5811
  __export(index_exports, {
5788
- Grida2D: () => Grida2D,
5789
- default: () => init
5812
+ default: () => init,
5813
+ version: () => version2
5790
5814
  });
5791
5815
  module.exports = __toCommonJS(index_exports);
5792
5816
  var import_grida_canvas_wasm = __toESM(require_grida_canvas_wasm());
5793
5817
 
5794
5818
  // package.json
5795
- var version = "0.0.56";
5819
+ var version = "0.0.57";
5796
5820
 
5797
- // lib/index.ts
5798
- async function init(opts) {
5799
- const bindings = await (0, import_grida_canvas_wasm.default)({
5800
- locateFile: (opts == null ? void 0 : opts.locateFile) ? (file, __scriptDirectory) => opts == null ? void 0 : opts.locateFile(file, version) : void 0
5801
- });
5802
- return new ApplicationFactory(
5803
- bindings
5804
- );
5805
- }
5806
- var ApplicationFactory = class {
5821
+ // lib/modules/fonts.ts
5822
+ var FontsAPI = class {
5807
5823
  module;
5808
5824
  constructor(module2) {
5809
5825
  this.module = module2;
5810
5826
  }
5811
- createWebGLCanvasSurface(canvas, options = { use_embedded_fonts: true }) {
5812
- const context = canvas.getContext("webgl2", {
5813
- antialias: true,
5814
- depth: true,
5815
- stencil: true,
5816
- alpha: true
5817
- });
5818
- if (!context) {
5819
- throw new Error("Failed to get WebGL2 context");
5827
+ /**
5828
+ * Allocates memory for a string and returns pointer and length.
5829
+ * @param txt - String to allocate
5830
+ * @returns [pointer, length] tuple
5831
+ */
5832
+ _alloc_string(txt) {
5833
+ const len = this.module.lengthBytesUTF8(txt) + 1;
5834
+ const ptr = this.module._allocate(len);
5835
+ this.module.stringToUTF8(txt, ptr, len);
5836
+ return [ptr, len];
5837
+ }
5838
+ /**
5839
+ * Frees memory allocated for a string.
5840
+ * @param ptr - Pointer to free
5841
+ * @param len - Length of allocated memory
5842
+ */
5843
+ _free_string(ptr, len) {
5844
+ this.module._deallocate(ptr, len);
5845
+ }
5846
+ /**
5847
+ * Allocates memory for binary data and returns pointer.
5848
+ * @param data - Binary data to allocate
5849
+ * @returns [pointer, length] tuple
5850
+ */
5851
+ _alloc_data(data) {
5852
+ const uint8Data = data instanceof ArrayBuffer ? new Uint8Array(data) : data;
5853
+ const len = uint8Data.length;
5854
+ const ptr = this.module._allocate(len);
5855
+ this.module.HEAPU8.set(uint8Data, ptr);
5856
+ return [ptr, len];
5857
+ }
5858
+ /**
5859
+ * Converts a WASM-allocated string to JavaScript string and frees the WASM memory.
5860
+ * @param ptr - Pointer to WASM string
5861
+ * @returns JavaScript string
5862
+ */
5863
+ _string_from_wasm(ptr) {
5864
+ const str = this.module.UTF8ToString(ptr);
5865
+ const len = this.module.lengthBytesUTF8(str) + 1;
5866
+ this._free_string(ptr, len);
5867
+ return str;
5868
+ }
5869
+ /**
5870
+ * Analyzes a font family with JavaScript-friendly interface.
5871
+ * This is the main API for working with multiple font files under the same family.
5872
+ *
5873
+ * @param fontFaces - Array of font face objects
5874
+ * @param familyName - Family name (optional)
5875
+ * @returns Promise resolving to FontAnalysisResult or FontError
5876
+ */
5877
+ async analyzeFamily(fontFaces, familyName) {
5878
+ try {
5879
+ const fontCount = fontFaces.length;
5880
+ const familyNamePtr = familyName ? this._alloc_string(familyName)[0] : 0;
5881
+ const faceIdsPtr = this.module._allocate(fontCount * 4);
5882
+ const fontDataPtrsPtr = this.module._allocate(fontCount * 4);
5883
+ const fontDataSizesPtr = this.module._allocate(fontCount * 4);
5884
+ const userItalicFlagsPtr = this.module._allocate(fontCount * 4);
5885
+ const faceIdPtrs = [];
5886
+ const fontDataPtrs = [];
5887
+ const fontDataSizes = [];
5888
+ const userItalicFlags = [];
5889
+ for (let i = 0; i < fontCount; i++) {
5890
+ const face = fontFaces[i];
5891
+ const [faceIdPtr, faceIdLen] = this._alloc_string(face.faceId);
5892
+ faceIdPtrs.push(faceIdPtr);
5893
+ const [fontDataPtr, fontDataSize] = this._alloc_data(face.data);
5894
+ fontDataPtrs.push(fontDataPtr);
5895
+ fontDataSizes.push(fontDataSize);
5896
+ const italicFlag = face.userFontStyleItalic === void 0 ? -1 : face.userFontStyleItalic ? 1 : 0;
5897
+ userItalicFlags.push(italicFlag);
5898
+ }
5899
+ for (let i = 0; i < fontCount; i++) {
5900
+ this.module.HEAPU32[faceIdsPtr / 4 + i] = faceIdPtrs[i];
5901
+ this.module.HEAPU32[fontDataPtrsPtr / 4 + i] = fontDataPtrs[i];
5902
+ this.module.HEAPU32[fontDataSizesPtr / 4 + i] = fontDataSizes[i];
5903
+ this.module.HEAP32[userItalicFlagsPtr / 4 + i] = userItalicFlags[i];
5904
+ }
5905
+ const resultPtr = this.module._grida_fonts_analyze_family(
5906
+ familyNamePtr,
5907
+ fontCount,
5908
+ faceIdsPtr,
5909
+ fontDataPtrsPtr,
5910
+ fontDataSizesPtr,
5911
+ userItalicFlagsPtr
5912
+ );
5913
+ const resultJson = this._string_from_wasm(resultPtr);
5914
+ const result = JSON.parse(resultJson);
5915
+ if (familyNamePtr !== 0) {
5916
+ this._free_string(
5917
+ familyNamePtr,
5918
+ this.module.lengthBytesUTF8(familyName || "") + 1
5919
+ );
5920
+ }
5921
+ this.module._deallocate(faceIdsPtr, fontCount * 4);
5922
+ this.module._deallocate(fontDataPtrsPtr, fontCount * 4);
5923
+ this.module._deallocate(fontDataSizesPtr, fontCount * 4);
5924
+ this.module._deallocate(userItalicFlagsPtr, fontCount * 4);
5925
+ for (let i = 0; i < fontCount; i++) {
5926
+ this._free_string(
5927
+ faceIdPtrs[i],
5928
+ this.module.lengthBytesUTF8(fontFaces[i].faceId) + 1
5929
+ );
5930
+ this.module._deallocate(fontDataPtrs[i], fontDataSizes[i]);
5931
+ }
5932
+ return result;
5933
+ } catch (error) {
5934
+ return {
5935
+ success: false,
5936
+ error: {
5937
+ message: error instanceof Error ? error.message : String(error)
5938
+ }
5939
+ };
5820
5940
  }
5821
- const handle = this.module.GL.registerContext(context, {
5822
- majorVersion: 2
5823
- });
5824
- this.module.GL.makeContextCurrent(handle);
5825
- const ptr = this.module._init(
5826
- canvas.width,
5827
- canvas.height,
5828
- options.use_embedded_fonts
5829
- );
5830
- const _ = new Grida2D(this.module, ptr);
5831
- _.resize(canvas.width, canvas.height);
5832
- return _;
5833
5941
  }
5834
- createWebGLCanvasSurfaceById(htmlcanvasid) {
5835
- const canvas = document.getElementById(htmlcanvasid);
5836
- if (!(canvas instanceof HTMLCanvasElement)) {
5837
- throw new Error(`Element with id ${htmlcanvasid} is not a <canvas>`);
5942
+ /**
5943
+ * Parses a single font file with JavaScript-friendly interface.
5944
+ * This is exposed for fast, single font analysis.
5945
+ *
5946
+ * @param fontData - Font data as ArrayBuffer or Uint8Array
5947
+ * @param faceId - Unique identifier for this font face
5948
+ * @param userFontStyleItalic - User-declared italic style (optional)
5949
+ * @returns Promise resolving to FaceRecord
5950
+ */
5951
+ async parseFont(fontData, faceId, userFontStyleItalic) {
5952
+ try {
5953
+ const [fontDataPtr, fontDataSize] = this._alloc_data(fontData);
5954
+ const [faceIdPtr, faceIdLen] = this._alloc_string(faceId);
5955
+ const userItalicPtr = userFontStyleItalic !== void 0 ? this._alloc_string(userFontStyleItalic.toString())[0] : 0;
5956
+ const resultPtr = this.module._grida_fonts_parse_font(
5957
+ fontDataPtr,
5958
+ fontDataSize,
5959
+ faceIdPtr,
5960
+ userItalicPtr
5961
+ );
5962
+ const resultJson = this._string_from_wasm(resultPtr);
5963
+ const result = JSON.parse(resultJson);
5964
+ this.module._deallocate(fontDataPtr, fontDataSize);
5965
+ this._free_string(faceIdPtr, faceIdLen);
5966
+ if (userItalicPtr !== 0) {
5967
+ this._free_string(userItalicPtr, 6);
5968
+ }
5969
+ return result;
5970
+ } catch (error) {
5971
+ throw new Error(error instanceof Error ? error.message : String(error));
5972
+ }
5973
+ }
5974
+ /**
5975
+ * Gets the version of the font parsing library.
5976
+ * This is a ping function to verify the WASM module is working.
5977
+ *
5978
+ * @returns Version string
5979
+ */
5980
+ getVersion() {
5981
+ try {
5982
+ const versionPtr = this.module._grida_fonts_version();
5983
+ return this._string_from_wasm(versionPtr);
5984
+ } catch (error) {
5985
+ return "unknown";
5838
5986
  }
5839
- return this.createWebGLCanvasSurface(canvas);
5840
5987
  }
5841
5988
  };
5842
- var ApplicationCommandID = {
5843
- ZoomIn: 1,
5844
- ZoomOut: 2,
5845
- ZoomDelta: 3,
5846
- Pan: 4
5847
- };
5848
- var utils;
5849
- ((utils2) => {
5989
+
5990
+ // lib/modules/memory.ts
5991
+ var memory;
5992
+ ((memory2) => {
5850
5993
  function rect_from_vec4(vec4) {
5851
5994
  return {
5852
5995
  x: vec4[0],
@@ -5855,21 +5998,41 @@ var utils;
5855
5998
  height: vec4[3]
5856
5999
  };
5857
6000
  }
5858
- utils2.rect_from_vec4 = rect_from_vec4;
5859
- })(utils || (utils = {}));
5860
- var Grida2D = class {
6001
+ memory2.rect_from_vec4 = rect_from_vec4;
6002
+ })(memory || (memory = {}));
6003
+
6004
+ // lib/modules/canvas.ts
6005
+ var ApplicationCommandID = {
6006
+ ZoomIn: 1,
6007
+ ZoomOut: 2,
6008
+ ZoomDelta: 3,
6009
+ Pan: 4
6010
+ };
6011
+ var Scene = class {
5861
6012
  appptr;
5862
6013
  module;
6014
+ fontskit;
5863
6015
  constructor(module2, ptr) {
5864
6016
  this.module = module2;
5865
6017
  this.appptr = ptr;
6018
+ this.fontskit = new FontsAPI(module2);
5866
6019
  }
6020
+ /**
6021
+ * Allocates memory for a string and returns pointer and length.
6022
+ * @param txt - String to allocate
6023
+ * @returns [pointer, length] tuple
6024
+ */
5867
6025
  _alloc_string(txt) {
5868
6026
  const len = this.module.lengthBytesUTF8(txt) + 1;
5869
6027
  const ptr = this.module._allocate(len);
5870
6028
  this.module.stringToUTF8(txt, ptr, len);
5871
6029
  return [ptr, len];
5872
6030
  }
6031
+ /**
6032
+ * Frees memory allocated for a string.
6033
+ * @param ptr - Pointer to free
6034
+ * @param len - Length of allocated memory
6035
+ */
5873
6036
  _free_string(ptr, len) {
5874
6037
  this.module._deallocate(ptr, len);
5875
6038
  }
@@ -6042,7 +6205,7 @@ var Grida2D = class {
6042
6205
  }
6043
6206
  const rect = this.module.HEAPF32.slice(outptr >> 2, (outptr >> 2) + 4);
6044
6207
  this.module._deallocate(outptr, 4 * 4);
6045
- return utils.rect_from_vec4(rect);
6208
+ return memory.rect_from_vec4(rect);
6046
6209
  }
6047
6210
  /**
6048
6211
  * @deprecated not fully implemented yet
@@ -6158,7 +6321,54 @@ var Grida2D = class {
6158
6321
  this.module._devtools_rendering_set_show_ruler(this.appptr, show);
6159
6322
  }
6160
6323
  };
6324
+
6325
+ // lib/index.ts
6326
+ var version2 = version;
6327
+ async function init(opts) {
6328
+ const bindings = await (0, import_grida_canvas_wasm.default)({
6329
+ locateFile: (opts == null ? void 0 : opts.locateFile) ? (file, __scriptDirectory) => opts == null ? void 0 : opts.locateFile(file, version2) : void 0
6330
+ });
6331
+ return new ApplicationFactory(
6332
+ bindings
6333
+ );
6334
+ }
6335
+ var ApplicationFactory = class {
6336
+ module;
6337
+ constructor(module2) {
6338
+ this.module = module2;
6339
+ }
6340
+ createWebGLCanvasSurface(canvas, options = { use_embedded_fonts: true }) {
6341
+ const context = canvas.getContext("webgl2", {
6342
+ antialias: true,
6343
+ depth: true,
6344
+ stencil: true,
6345
+ alpha: true
6346
+ });
6347
+ if (!context) {
6348
+ throw new Error("Failed to get WebGL2 context");
6349
+ }
6350
+ const handle = this.module.GL.registerContext(context, {
6351
+ majorVersion: 2
6352
+ });
6353
+ this.module.GL.makeContextCurrent(handle);
6354
+ const ptr = this.module._init(
6355
+ canvas.width,
6356
+ canvas.height,
6357
+ options.use_embedded_fonts
6358
+ );
6359
+ const _ = new Scene(this.module, ptr);
6360
+ _.resize(canvas.width, canvas.height);
6361
+ return _;
6362
+ }
6363
+ createWebGLCanvasSurfaceById(htmlcanvasid) {
6364
+ const canvas = document.getElementById(htmlcanvasid);
6365
+ if (!(canvas instanceof HTMLCanvasElement)) {
6366
+ throw new Error(`Element with id ${htmlcanvasid} is not a <canvas>`);
6367
+ }
6368
+ return this.createWebGLCanvasSurface(canvas);
6369
+ }
6370
+ };
6161
6371
  // Annotate the CommonJS export names for ESM import in node:
6162
6372
  0 && (module.exports = {
6163
- Grida2D
6373
+ version
6164
6374
  });