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