textmode.js 0.4.0 → 0.4.1-beta.1
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/textmode.esm.js +281 -270
- package/dist/textmode.esm.min.js +77 -66
- package/dist/textmode.umd.js +5 -5
- package/dist/textmode.umd.min.js +3 -3
- package/dist/types/textmode/Textmodifier.d.ts +4 -0
- package/package.json +1 -1
package/dist/textmode.esm.min.js
CHANGED
|
@@ -28,12 +28,12 @@ ${"↓".repeat(24)}
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
var ct = ((a) => (a[a.SILENT = 0] = "SILENT", a[a.WARNING = 1] = "WARNING", a[a.ERROR = 2] = "ERROR", a[a.THROW = 3] = "THROW", a))(ct || {});
|
|
31
|
-
const
|
|
31
|
+
const I = class I {
|
|
32
32
|
constructor() {
|
|
33
33
|
h(this, "u", { globalLevel: 3 });
|
|
34
34
|
}
|
|
35
35
|
static _() {
|
|
36
|
-
return
|
|
36
|
+
return I.l || (I.l = new I()), I.l;
|
|
37
37
|
}
|
|
38
38
|
m(t, e) {
|
|
39
39
|
const i = "%c[textmode.js] Oops! (╯°□°)╯︵ Something went wrong in your code.", s = "color: #f44336; font-weight: bold; background: #ffebee; padding: 2px 6px; border-radius: 3px;";
|
|
@@ -55,8 +55,8 @@ const S = class S {
|
|
|
55
55
|
this.u.globalLevel = t;
|
|
56
56
|
}
|
|
57
57
|
};
|
|
58
|
-
h(
|
|
59
|
-
let K =
|
|
58
|
+
h(I, "l", null);
|
|
59
|
+
let K = I;
|
|
60
60
|
const k = K._(), et = /* @__PURE__ */ new WeakMap();
|
|
61
61
|
function X(a, t) {
|
|
62
62
|
et.set(a, t);
|
|
@@ -362,8 +362,8 @@ class G {
|
|
|
362
362
|
this.gt.deleteProgram(this.Lt);
|
|
363
363
|
}
|
|
364
364
|
}
|
|
365
|
-
const
|
|
366
|
-
in vec2 a_position;in vec2 a_texCoord;in vec2 a_instancePosition;in vec2 a_instanceSize;in vec3 a_instanceCharacter;in vec4 a_instancePrimaryColor;in vec4 a_instanceSecondaryColor;in vec2 a_instanceRotation;in vec3 a_instanceTransform;in vec3 a_instanceGlobalRotation;in vec2 a_instanceRotationCenter;in vec2 a_instanceBezierCP1;in vec2 a_instanceBezierCP2;in vec2 a_instanceBezierStart;in vec2 a_instanceBezierEnd;in vec2 a_instanceArcAngles;uniform float U9;uniform vec2
|
|
365
|
+
const N = `#version 300 es
|
|
366
|
+
in vec2 a_position;in vec2 a_texCoord;in vec2 a_instancePosition;in vec2 a_instanceSize;in vec3 a_instanceCharacter;in vec4 a_instancePrimaryColor;in vec4 a_instanceSecondaryColor;in vec2 a_instanceRotation;in vec3 a_instanceTransform;in vec3 a_instanceGlobalRotation;in vec2 a_instanceRotationCenter;in vec2 a_instanceBezierCP1;in vec2 a_instanceBezierCP2;in vec2 a_instanceBezierStart;in vec2 a_instanceBezierEnd;in vec2 a_instanceArcAngles;uniform float U9;uniform vec2 Uw;out vec2 v_uv;out vec3 v_character;out vec4 v_primaryColor;out vec4 v_secondaryColor;out vec2 v_rotation;out vec3 v_transform;mat3 A(float B){float C=sin(B),D=cos(B);return mat3(1,0,0,0,D,-C,0,C,D);}mat3 E(float B){float C=sin(B),D=cos(B);return mat3(D,0,C,0,1,0,-C,0,D);}mat3 F(float B){float C=sin(B),D=cos(B);return mat3(D,-C,0,C,D,0,0,0,1);}vec2 G(float H,vec2 I,vec2 J,vec2 K,vec2 L){float M=1.-H,N=M*M,O=H*H;return N*M*I+3.*N*H*J+3.*M*O*K+O*H*L;}vec2 P(float H,vec2 I,vec2 J,vec2 K,vec2 L){float M=1.-H,N=M*M,O=H*H;return-3.*N*I+3.*N*J-6.*M*H*J+6.*M*H*K-3.*O*K+3.*O*L;}void main(){v_uv=a_texCoord;v_character=a_instanceCharacter;v_primaryColor=a_instancePrimaryColor;v_secondaryColor=a_instanceSecondaryColor;v_rotation=a_instanceRotation;v_transform=a_instanceTransform;vec2 Q;bool R=length(a_instanceBezierCP1)+length(a_instanceBezierCP2)+length(a_instanceBezierStart)+length(a_instanceBezierEnd)>0.;bool S=a_instanceArcAngles.x!=0.||a_instanceArcAngles.y!=0.;if(R){float H=a_position.x;vec2 T=G(H,a_instanceBezierStart,a_instanceBezierCP1,a_instanceBezierCP2,a_instanceBezierEnd);vec2 U=P(H,a_instanceBezierStart,a_instanceBezierCP1,a_instanceBezierCP2,a_instanceBezierEnd);float V=length(U);U=V>0.?U/V:vec2(1,0);Q=T+vec2(-U.y,U.x)*a_position.y*a_instanceSize.y;}else if(S){float C=a_instanceArcAngles.x,W=a_instanceArcAngles.y;C=mod(C,6.28318530718);if(C<0.)C+=6.28318530718;W=mod(W,6.28318530718);if(W<0.)W+=6.28318530718;float X=C-W;if(X<=0.)X+=6.28318530718;float Y=C-a_position.x*X;vec2 Z=vec2(cos(Y),sin(Y))*a_position.y;Q=Z*a_instanceSize*.5+a_instanceSize*.5+a_instancePosition;}else{Q=a_position*a_instanceSize+a_instancePosition;}vec2 a=(Q/Uw)*2.-1.;a.y=-a.y;if(length(a_instanceGlobalRotation)>0.){vec3 b=vec3(a-a_instanceRotationCenter,0);b.x*=U9;if(a_instanceGlobalRotation.x!=0.)b=A(-a_instanceGlobalRotation.x)*b;if(a_instanceGlobalRotation.y!=0.)b=E(-a_instanceGlobalRotation.y)*b;if(a_instanceGlobalRotation.z!=0.)b=F(-a_instanceGlobalRotation.z)*b;b.x/=U9;a=b.xy+a_instanceRotationCenter;}gl_Position=vec4(a,0,1);}`, st = "attribute vec2 a_position;attribute vec2 a_texCoord;varying vec2 v_uv;void main(){v_uv=a_texCoord;gl_Position=vec4(a_position,0.,1.);}";
|
|
367
367
|
class lt {
|
|
368
368
|
constructor(t) {
|
|
369
369
|
h(this, "gt");
|
|
@@ -371,9 +371,9 @@ class lt {
|
|
|
371
371
|
h(this, "Qt");
|
|
372
372
|
h(this, "ts");
|
|
373
373
|
h(this, "ss");
|
|
374
|
-
this.gt = t, this.Qt = new G(this.gt,
|
|
375
|
-
precision highp float;in vec2 v_uv;in vec3 v_character;in vec4 v_primaryColor;in vec4 v_secondaryColor;in vec2 v_rotation;in vec3 v_transform;layout(location=0)out vec4 o_character;layout(location=1)out vec4 o_primaryColor;layout(location=2)out vec4 o_secondaryColor;layout(location=3)out vec4 o_rotation;layout(location=4)out vec4 o_transform;void main(){o_character=vec4(v_character,1.);o_primaryColor=v_primaryColor;o_secondaryColor=v_secondaryColor;o_rotation=vec4(v_rotation,0.,1.);o_transform=vec4(v_transform,1.);}`), this.Jt = new G(this.gt,
|
|
376
|
-
precision highp float;in vec2 v_uv;uniform sampler2D Ue;uniform sampler2D Uf;uniform sampler2D Ug;uniform sampler2D Uh;uniform sampler2D Ui;uniform vec2 Uj;layout(location=0)out vec4 o_character;layout(location=1)out vec4 o_primaryColor;layout(location=2)out vec4 o_secondaryColor;layout(location=3)out vec4 o_rotation;layout(location=4)out vec4 o_transform;void main(){vec2 A=vec2(v_uv.x,1.-v_uv.y);vec2 B=A*Uj;vec2 C=(floor(B)+0.5f)/Uj;vec4 D=texture(Ue,C);vec4 E=texture(Uf,C);if(E.a==0.){discard;}vec4 F=texture(Ug,C);vec4 G=texture(Uh,C);vec4 H=texture(Ui,C);o_character=D;o_primaryColor=E;o_secondaryColor=F;o_rotation=G;o_transform=H;}`), this.ts = new G(this.gt, st, "precision mediump float;uniform sampler2D U0;uniform vec2 U1;uniform sampler2D U3;uniform sampler2D U4;uniform sampler2D U5;uniform sampler2D U2;uniform sampler2D U6;uniform vec2 U7;uniform vec2 U8;mat2 A(float B){float C=sin(B);float D=cos(B);return mat2(D,-C,C,D);}void main(){vec2 E=gl_FragCoord.xy/U8;vec2 F=E*U7;vec2 G=floor(F);vec2 H=(G+0.5)/U7;vec4 I=texture2D(U3,H);vec4 J=texture2D(U4,H);vec4 K=texture2D(U5,H);bool L=K.r>0.5;bool M=K.g>0.5;bool N=K.b>0.5;vec4 O=texture2D(U2,H);int P=int(O.r*255.+0.5)+int(O.g*255.+0.5)*256;int Q=int(mod(float(P),U1.x));int R=P/int(U1.x);float S=(U1.y-1.)-float(R);vec2 T=vec2(float(Q),S)/U1;vec4 U=texture2D(U6,H);float V=U.r*255.+U.g;float W=-(V*360./255.)*0.017453292;vec2 X=fract(F)-0.5;if(M)X.x=-X.x;if(N)X.y=-X.y;X=A(W)*X+0.5;vec2 Y=1./U1;vec2 Z=T+X*Y;vec2 a=T+Y;if(any(lessThan(Z,T))||any(greaterThan(Z,a))){gl_FragColor=L?I:J;return;}vec4 b=texture2D(U0,Z);if(L)b.rgb=1.-b.rgb;gl_FragColor=mix(J,I,b);}"), this.ss = new G(this.gt,
|
|
374
|
+
this.gt = t, this.Qt = new G(this.gt, N, `#version 300 es
|
|
375
|
+
precision highp float;in vec2 v_uv;in vec3 v_character;in vec4 v_primaryColor;in vec4 v_secondaryColor;in vec2 v_rotation;in vec3 v_transform;layout(location=0)out vec4 o_character;layout(location=1)out vec4 o_primaryColor;layout(location=2)out vec4 o_secondaryColor;layout(location=3)out vec4 o_rotation;layout(location=4)out vec4 o_transform;void main(){o_character=vec4(v_character,1.);o_primaryColor=v_primaryColor;o_secondaryColor=v_secondaryColor;o_rotation=vec4(v_rotation,0.,1.);o_transform=vec4(v_transform,1.);}`), this.Jt = new G(this.gt, N, `#version 300 es
|
|
376
|
+
precision highp float;in vec2 v_uv;uniform sampler2D Ue;uniform sampler2D Uf;uniform sampler2D Ug;uniform sampler2D Uh;uniform sampler2D Ui;uniform vec2 Uj;layout(location=0)out vec4 o_character;layout(location=1)out vec4 o_primaryColor;layout(location=2)out vec4 o_secondaryColor;layout(location=3)out vec4 o_rotation;layout(location=4)out vec4 o_transform;void main(){vec2 A=vec2(v_uv.x,1.-v_uv.y);vec2 B=A*Uj;vec2 C=(floor(B)+0.5f)/Uj;vec4 D=texture(Ue,C);vec4 E=texture(Uf,C);if(E.a==0.){discard;}vec4 F=texture(Ug,C);vec4 G=texture(Uh,C);vec4 H=texture(Ui,C);o_character=D;o_primaryColor=E;o_secondaryColor=F;o_rotation=G;o_transform=H;}`), this.ts = new G(this.gt, st, "precision mediump float;uniform sampler2D U0;uniform vec2 U1;uniform sampler2D U3;uniform sampler2D U4;uniform sampler2D U5;uniform sampler2D U2;uniform sampler2D U6;uniform vec2 U7;uniform vec2 U8;mat2 A(float B){float C=sin(B);float D=cos(B);return mat2(D,-C,C,D);}void main(){vec2 E=gl_FragCoord.xy/U8;vec2 F=E*U7;vec2 G=floor(F);vec2 H=(G+0.5)/U7;vec4 I=texture2D(U3,H);vec4 J=texture2D(U4,H);vec4 K=texture2D(U5,H);bool L=K.r>0.5;bool M=K.g>0.5;bool N=K.b>0.5;vec4 O=texture2D(U2,H);int P=int(O.r*255.+0.5)+int(O.g*255.+0.5)*256;int Q=int(mod(float(P),U1.x));int R=P/int(U1.x);float S=(U1.y-1.)-float(R);vec2 T=vec2(float(Q),S)/U1;vec4 U=texture2D(U6,H);float V=U.r*255.+U.g;float W=-(V*360./255.)*0.017453292;vec2 X=fract(F)-0.5;if(M)X.x=-X.x;if(N)X.y=-X.y;X=A(W)*X+0.5;vec2 Y=1./U1;vec2 Z=T+X*Y;vec2 a=T+Y;if(any(lessThan(Z,T))||any(greaterThan(Z,a))){gl_FragColor=L?I:J;return;}vec4 b=texture2D(U0,Z);if(L)b.rgb=1.-b.rgb;gl_FragColor=mix(J,I,b);}"), this.ss = new G(this.gt, N, `#version 300 es
|
|
377
377
|
precision highp float;in vec2 v_uv;uniform sampler2D Uk;uniform bool Ul;uniform bool Um;uniform bool Un;uniform vec2 Uo;uniform bool Up;uniform vec4 Uq;uniform bool Ur;uniform vec4 Us;uniform vec4 Ut;uniform int Uu;uniform vec3 Uv[64];layout(location=0)out vec4 o_character;layout(location=1)out vec4 o_primaryColor;layout(location=2)out vec4 o_secondaryColor;layout(location=3)out vec4 o_rotation;layout(location=4)out vec4 o_transform;float A(vec3 B){return dot(B,vec3(0.299f,0.587f,0.114f));}void main(){vec2 C=vec2(v_uv.x,1.0f-v_uv.y);vec4 D=texture(Uk,C);float E=A(D.rgb);if(Uu>0){float F=float(Uu);float G=clamp(E*(F-1.0f),0.0f,F-1.0f);int H=int(floor(G+0.5f));vec3 I=Uv[H];o_character=vec4(I,1.0f);}else{o_character=vec4(E,0.0f,0.0f,1.0f);}vec4 J=Up?Uq:D;vec4 K=Ur?Us:D;if(D.a<0.01f){J=Ut;K=Ut;}else{}o_primaryColor=vec4(J);o_secondaryColor=vec4(K);o_rotation=vec4(Uo.xy,0.0f,1.0f);o_transform=vec4(float(Ul),float(Um),float(Un),1.0f);}`);
|
|
378
378
|
}
|
|
379
379
|
es() {
|
|
@@ -389,7 +389,7 @@ precision highp float;in vec2 v_uv;uniform sampler2D Uk;uniform bool Ul;uniform
|
|
|
389
389
|
return this.ss;
|
|
390
390
|
}
|
|
391
391
|
hs(t) {
|
|
392
|
-
return new G(this.gt,
|
|
392
|
+
return new G(this.gt, N, t);
|
|
393
393
|
}
|
|
394
394
|
cs(t, e) {
|
|
395
395
|
return new G(this.gt, t, e);
|
|
@@ -437,7 +437,7 @@ class ft {
|
|
|
437
437
|
}
|
|
438
438
|
bs(t, e, i) {
|
|
439
439
|
const { shader: s } = t, r = Y(this.gt) || this.gt.getParameter(this.gt.VIEWPORT);
|
|
440
|
-
s.Xt({ U9: r[2] / r[3],
|
|
440
|
+
s.Xt({ U9: r[2] / r[3], Uw: [r[2], r[3]] });
|
|
441
441
|
const n = (l) => {
|
|
442
442
|
if (!l || !l.$s()) return;
|
|
443
443
|
const f = l.unitGeometry, u = l.unitBuffer;
|
|
@@ -468,7 +468,7 @@ class ft {
|
|
|
468
468
|
Ps(t, e, i, s, r, n, o, c) {
|
|
469
469
|
e.Ht(), e.Xt(i);
|
|
470
470
|
const l = this.gt.getParameter(this.gt.VIEWPORT);
|
|
471
|
-
if (e.Xt({ U9: l[2] / l[3],
|
|
471
|
+
if (e.Xt({ U9: l[2] / l[3], Uw: [l[2], l[3]] }), t.As(), t.ks({ x: s, y: r, width: n, height: o }, c), t.$s()) {
|
|
472
472
|
const f = t.unitGeometry, u = t.unitBuffer;
|
|
473
473
|
try {
|
|
474
474
|
this.gs.us(e.Zt, t.type + "", f, u), t.batch.Ms(e), t.batch.Rs(f.Fs, f.Ss);
|
|
@@ -928,7 +928,7 @@ const R = { readShort: (a, t) => (R.t.uint16[0] = a[t] << 8 | a[t + 1], R.t.int1
|
|
|
928
928
|
function W(a) {
|
|
929
929
|
return a + 3 & -4;
|
|
930
930
|
}
|
|
931
|
-
function
|
|
931
|
+
function $(a, t, e) {
|
|
932
932
|
const i = t + e;
|
|
933
933
|
let s = 0;
|
|
934
934
|
const r = R.t;
|
|
@@ -978,7 +978,7 @@ function O(a) {
|
|
|
978
978
|
}
|
|
979
979
|
return { min: t, max: e, table: n };
|
|
980
980
|
}
|
|
981
|
-
function
|
|
981
|
+
function V(a, t) {
|
|
982
982
|
let e = 0;
|
|
983
983
|
for (let i = 1; i <= t.max; i++) {
|
|
984
984
|
e |= a.readBits(1) << i - 1;
|
|
@@ -1030,19 +1030,19 @@ function Pt(a) {
|
|
|
1030
1030
|
for (let U = 0; U < p; U++) x[w[U]] = r.readBits(3);
|
|
1031
1031
|
const _ = O(x), A = [];
|
|
1032
1032
|
for (; A.length < d + y; ) {
|
|
1033
|
-
const U =
|
|
1033
|
+
const U = V(r, _);
|
|
1034
1034
|
if (U <= 15) A.push(U);
|
|
1035
1035
|
else if (U === 16) {
|
|
1036
|
-
const B = r.readBits(2) + 3,
|
|
1037
|
-
for (let Z = 0; Z < B; Z++) A.push(
|
|
1036
|
+
const B = r.readBits(2) + 3, S = A[A.length - 1] || 0;
|
|
1037
|
+
for (let Z = 0; Z < B; Z++) A.push(S);
|
|
1038
1038
|
} else if (U === 17) {
|
|
1039
1039
|
const B = r.readBits(3) + 3;
|
|
1040
|
-
for (let
|
|
1040
|
+
for (let S = 0; S < B; S++) A.push(0);
|
|
1041
1041
|
} else {
|
|
1042
1042
|
if (U !== 18) throw Error("Invalid code length symbol");
|
|
1043
1043
|
{
|
|
1044
1044
|
const B = r.readBits(7) + 11;
|
|
1045
|
-
for (let
|
|
1045
|
+
for (let S = 0; S < B; S++) A.push(0);
|
|
1046
1046
|
}
|
|
1047
1047
|
}
|
|
1048
1048
|
}
|
|
@@ -1050,7 +1050,7 @@ function Pt(a) {
|
|
|
1050
1050
|
v = O(T), g = O(F);
|
|
1051
1051
|
}
|
|
1052
1052
|
for (; ; ) {
|
|
1053
|
-
const d =
|
|
1053
|
+
const d = V(r, v);
|
|
1054
1054
|
if (d < 256) n.push(d);
|
|
1055
1055
|
else {
|
|
1056
1056
|
if (d === 256) break;
|
|
@@ -1059,7 +1059,7 @@ function Pt(a) {
|
|
|
1059
1059
|
let p = o[y];
|
|
1060
1060
|
const w = c[y];
|
|
1061
1061
|
w && (p += r.readBits(w));
|
|
1062
|
-
const x =
|
|
1062
|
+
const x = V(r, g);
|
|
1063
1063
|
if (x >= 30) throw Error("Invalid distance symbol");
|
|
1064
1064
|
let _ = l[x];
|
|
1065
1065
|
const A = f[x];
|
|
@@ -1108,10 +1108,10 @@ function Lt(a) {
|
|
|
1108
1108
|
if (p.tag === "head" && w.length >= 12) {
|
|
1109
1109
|
const x = new Uint8Array(w);
|
|
1110
1110
|
t.writeUint(x, 8, 0);
|
|
1111
|
-
const _ =
|
|
1111
|
+
const _ = $(x, 0, W(x.length));
|
|
1112
1112
|
t.writeUint(d, y, _), y += 4;
|
|
1113
1113
|
} else {
|
|
1114
|
-
const x =
|
|
1114
|
+
const x = $(w, 0, W(w.length));
|
|
1115
1115
|
t.writeUint(d, y, x), y += 4;
|
|
1116
1116
|
}
|
|
1117
1117
|
t.writeUint(d, y, g[p.tag]), y += 4, t.writeUint(d, y, p.data.length), y += 4;
|
|
@@ -1124,14 +1124,14 @@ function Lt(a) {
|
|
|
1124
1124
|
const p = g.head, w = function(x, _) {
|
|
1125
1125
|
const A = R, T = _ + 8, F = [x[T], x[T + 1], x[T + 2], x[T + 3]];
|
|
1126
1126
|
A.writeUint(x, T, 0);
|
|
1127
|
-
const U = 2981146554 - (
|
|
1127
|
+
const U = 2981146554 - ($(x, 0, W(x.length)) >>> 0) >>> 0;
|
|
1128
1128
|
return x[T] = F[0], x[T + 1] = F[1], x[T + 2] = F[2], x[T + 3] = F[3], U >>> 0;
|
|
1129
1129
|
}(d, p);
|
|
1130
1130
|
t.writeUint(d, p + 8, w);
|
|
1131
1131
|
}
|
|
1132
1132
|
return d.buffer;
|
|
1133
1133
|
}
|
|
1134
|
-
const
|
|
1134
|
+
const St = { parseTab(a, t, e) {
|
|
1135
1135
|
const i = { tables: [], ids: {}, off: t };
|
|
1136
1136
|
a = new Uint8Array(a.buffer, t, e), t = 0;
|
|
1137
1137
|
const s = R, r = s.readUshort, n = r(a, t += 2);
|
|
@@ -1168,7 +1168,7 @@ const It = { parseTab(a, t, e) {
|
|
|
1168
1168
|
const s = new Uint32Array(3 * i);
|
|
1169
1169
|
for (let r = 0; r < 3 * i; r += 3) s[r] = e(a, t + (r << 2)), s[r + 1] = e(a, t + (r << 2) + 4), s[r + 2] = e(a, t + (r << 2) + 8);
|
|
1170
1170
|
return { format: 12, groups: s };
|
|
1171
|
-
} },
|
|
1171
|
+
} }, It = { parseTab(a, t, e) {
|
|
1172
1172
|
const i = R;
|
|
1173
1173
|
t += 18;
|
|
1174
1174
|
const s = i.readUshort(a, t);
|
|
@@ -1196,7 +1196,7 @@ const It = { parseTab(a, t, e) {
|
|
|
1196
1196
|
for (; u < c; ) l = s.readUshort(a, t + (u << 2)), f = s.readShort(a, t + (u << 2) + 2), r.push(l), n.push(f), u++;
|
|
1197
1197
|
for (; u < o; ) r.push(l), n.push(f), u++;
|
|
1198
1198
|
return { aWidth: r, lsBearing: n };
|
|
1199
|
-
} }, tt = { cmap:
|
|
1199
|
+
} }, tt = { cmap: St, head: It, hhea: Mt, maxp: { parseTab(a, t, e) {
|
|
1200
1200
|
const i = R;
|
|
1201
1201
|
return i.readUint(a, t), t += 4, { numGlyphs: i.readUshort(a, t) };
|
|
1202
1202
|
} }, hmtx: Gt, loca: { parseTab(a, t, e, i) {
|
|
@@ -1520,7 +1520,7 @@ class kt {
|
|
|
1520
1520
|
return k.v(typeof t == "string" && t.length > 0, "Characters must be a string with at least one character.", { method: "getCharacterColors", providedValue: t }) ? Array.from(t).map((i) => this.Ai(i, e) || [0, 0, 0]) : [[0, 0, 0]];
|
|
1521
1521
|
}
|
|
1522
1522
|
}
|
|
1523
|
-
class
|
|
1523
|
+
class zt {
|
|
1524
1524
|
constructor(t, e = 16) {
|
|
1525
1525
|
h(this, "ki");
|
|
1526
1526
|
h(this, "Ei", []);
|
|
@@ -1641,7 +1641,7 @@ class Nt {
|
|
|
1641
1641
|
return this.ki;
|
|
1642
1642
|
}
|
|
1643
1643
|
}
|
|
1644
|
-
class
|
|
1644
|
+
class Nt {
|
|
1645
1645
|
constructor(t, e, i) {
|
|
1646
1646
|
h(this, "Ji");
|
|
1647
1647
|
h(this, "Qi");
|
|
@@ -1767,7 +1767,7 @@ class Wt {
|
|
|
1767
1767
|
return this.er.height;
|
|
1768
1768
|
}
|
|
1769
1769
|
}
|
|
1770
|
-
class
|
|
1770
|
+
class z {
|
|
1771
1771
|
constructor(t, e, i, s) {
|
|
1772
1772
|
h(this, "yr");
|
|
1773
1773
|
h(this, "dt");
|
|
@@ -1830,7 +1830,7 @@ class N {
|
|
|
1830
1830
|
static Fr(t, e, i) {
|
|
1831
1831
|
const s = t.context, r = s.createTexture();
|
|
1832
1832
|
s.bindTexture(s.TEXTURE_2D, r), s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL, 1), s.texParameteri(s.TEXTURE_2D, s.TEXTURE_MIN_FILTER, s.NEAREST), s.texParameteri(s.TEXTURE_2D, s.TEXTURE_MAG_FILTER, s.NEAREST), s.texParameteri(s.TEXTURE_2D, s.TEXTURE_WRAP_S, s.CLAMP_TO_EDGE), s.texParameteri(s.TEXTURE_2D, s.TEXTURE_WRAP_T, s.CLAMP_TO_EDGE), s.texImage2D(s.TEXTURE_2D, 0, s.RGBA, s.RGBA, s.UNSIGNED_BYTE, e), s.bindTexture(s.TEXTURE_2D, null);
|
|
1833
|
-
const n = e.naturalWidth ?? e.width ?? e.videoWidth ?? 0, o = e.naturalHeight ?? e.height ?? e.videoHeight ?? 0, c = new
|
|
1833
|
+
const n = e.naturalWidth ?? e.width ?? e.videoWidth ?? 0, o = e.naturalHeight ?? e.height ?? e.videoHeight ?? 0, c = new z(s, r, n, o);
|
|
1834
1834
|
return c.Mr = i, c;
|
|
1835
1835
|
}
|
|
1836
1836
|
get texture() {
|
|
@@ -2326,7 +2326,7 @@ class ot {
|
|
|
2326
2326
|
return 180 * Math.atan2(e.clientY - t.clientY, e.clientX - t.clientX) / Math.PI;
|
|
2327
2327
|
}
|
|
2328
2328
|
}
|
|
2329
|
-
const
|
|
2329
|
+
const $t = Object.freeze(Object.defineProperty({ __proto__: null, TouchManager: ot }, Symbol.toStringTag, { value: "Module" })), Vt = (a) => class extends a {
|
|
2330
2330
|
rotate(t = 0, e = 0, i = 0) {
|
|
2331
2331
|
this.xt.state.st(t), this.xt.state.et(e), this.xt.state.it(i);
|
|
2332
2332
|
}
|
|
@@ -2421,12 +2421,12 @@ const Vt = Object.freeze(Object.defineProperty({ __proto__: null, TouchManager:
|
|
|
2421
2421
|
}
|
|
2422
2422
|
}
|
|
2423
2423
|
async loadImage(t) {
|
|
2424
|
-
if (typeof t != "string") return
|
|
2424
|
+
if (typeof t != "string") return z.Fr(this.xt, t, (s) => this.ki.zi(s));
|
|
2425
2425
|
const e = t, i = await new Promise((s, r) => {
|
|
2426
2426
|
const n = new Image();
|
|
2427
2427
|
n.crossOrigin = "anonymous", n.onload = () => s(n), n.onerror = (o) => r(o), n.src = e;
|
|
2428
2428
|
});
|
|
2429
|
-
return
|
|
2429
|
+
return z.Fr(this.xt, i, (s) => this.ki.zi(s));
|
|
2430
2430
|
}
|
|
2431
2431
|
}, Kt = (a) => class extends a {
|
|
2432
2432
|
async loadFont(t) {
|
|
@@ -2644,68 +2644,79 @@ class te {
|
|
|
2644
2644
|
}
|
|
2645
2645
|
class ee extends function(e, ...i) {
|
|
2646
2646
|
return i.reduce((s, r) => r(s), e);
|
|
2647
|
-
}(te,
|
|
2647
|
+
}(te, Vt, Kt, qt, jt, Jt, Zt) {
|
|
2648
2648
|
constructor(e = {}) {
|
|
2649
2649
|
super();
|
|
2650
2650
|
h(this, "Ch");
|
|
2651
2651
|
h(this, "wh", !1);
|
|
2652
|
-
h(this, "bh",
|
|
2652
|
+
h(this, "bh", !1);
|
|
2653
|
+
h(this, "$h", !1);
|
|
2654
|
+
h(this, "xh", () => {
|
|
2653
2655
|
});
|
|
2654
|
-
h(this, "
|
|
2656
|
+
h(this, "Mh", () => {
|
|
2655
2657
|
});
|
|
2656
|
-
h(this, "
|
|
2658
|
+
h(this, "Rh", () => {
|
|
2657
2659
|
});
|
|
2658
|
-
h(this, "
|
|
2660
|
+
h(this, "Fh");
|
|
2659
2661
|
h(this, "lr");
|
|
2660
2662
|
h(this, "cr", !1);
|
|
2661
|
-
h(this, "
|
|
2662
|
-
this.Ch = new Qt(this), this.cr = e.overlay ?? !1, this.er = new Wt(e), this.xt = new _t(this.er.gr()), this.ki = new
|
|
2663
|
+
h(this, "Sh");
|
|
2664
|
+
this.Ch = new Qt(this), this.cr = e.overlay ?? !1, this.er = new Wt(e), this.xt = new _t(this.er.gr()), this.ki = new zt(this.xt, e.fontSize ?? 16), this.qo = new Xt(e.frameRate ?? 60), this.In = new rt(this.er), this.Jo = new ot(this.er, this.In), this.Qo = new nt(), this.ph = this.xt.At(), this.mh = this.xt.rs(), this.Th(e);
|
|
2663
2665
|
}
|
|
2664
|
-
async
|
|
2666
|
+
async Th(e) {
|
|
2665
2667
|
await this.ki.Ni(e.fontSource);
|
|
2666
2668
|
const i = this.ki.maxGlyphDimensions;
|
|
2667
|
-
this.Gr = new
|
|
2669
|
+
this.Gr = new Nt(this.er.canvas, i.width, i.height), this.In.Ni(this.Gr), this.Jo.Ni(this.Gr), this.Vo = this.xt.Ye(this.Gr.cols, this.Gr.rows, 5), this.gh = this.xt.Ye(this.Gr.width, this.Gr.height, 1), this.cr && (this.Sh = z.Fr(this.xt, this.er.targetCanvas, (s) => this.ki.zi(s))), this.yh = this.xt.cs(st, "precision mediump float;uniform sampler2D Ua;uniform vec2 Ub;uniform vec2 Uc;uniform vec2 Ud;void main(){vec2 A=gl_FragCoord.xy-Uc;vec2 B=A*(Ub/Ud);vec2 C=(floor(B)+0.5)/Ub;gl_FragColor=texture2D(Ua,C);}"), this.Ah(), await this.Ch.nh(e.plugins ?? []), this.xh(), this.qo.start(() => this.Zo());
|
|
2668
2670
|
}
|
|
2669
2671
|
dh() {
|
|
2670
2672
|
return { renderer: this.xt, font: this.ki, grid: this.Gr, canvas: this.er, drawFramebuffer: this.Vo, asciiFramebuffer: this.gh, flushDrawCommands: () => {
|
|
2671
2673
|
this.xt.zt(this.ph);
|
|
2672
2674
|
} };
|
|
2673
2675
|
}
|
|
2674
|
-
|
|
2675
|
-
this.
|
|
2676
|
-
this.cr && this.resizeCanvas(this.er.targetCanvas.width, this.er.targetCanvas.height), this.
|
|
2677
|
-
}, window.addEventListener("resize", this.
|
|
2676
|
+
Ah() {
|
|
2677
|
+
this.Fh = () => {
|
|
2678
|
+
this.cr && this.resizeCanvas(this.er.targetCanvas.width, this.er.targetCanvas.height), this.Rh();
|
|
2679
|
+
}, window.addEventListener("resize", this.Fh), this.In.an(), this.Jo.an(), this.Qo.an(), window.addEventListener("blur", () => {
|
|
2678
2680
|
this.Qo.Gn();
|
|
2679
2681
|
}), window.ResizeObserver && this.cr && (this.lr = new ResizeObserver(() => {
|
|
2680
2682
|
this.resizeCanvas(this.er.targetCanvas.width, this.er.targetCanvas.height);
|
|
2681
2683
|
}), this.lr.observe(this.er.targetCanvas));
|
|
2682
2684
|
}
|
|
2683
2685
|
Zo() {
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2686
|
+
this.bh = !0;
|
|
2687
|
+
try {
|
|
2688
|
+
if (this.qo.measureFrameRate(), this.qo.incrementFrame(), this.cr) {
|
|
2689
|
+
const i = this.xt.context;
|
|
2690
|
+
i.bindTexture(i.TEXTURE_2D, this.Sh.texture), i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL, 1), i.texImage2D(i.TEXTURE_2D, 0, i.RGBA, i.RGBA, i.UNSIGNED_BYTE, this.er.targetCanvas), i.bindTexture(i.TEXTURE_2D, null);
|
|
2691
|
+
}
|
|
2692
|
+
this.Ch.runPreDrawHooks(), this.Vo.begin(), this.xt.Le(this.ph), this.Mh(), this.xt.zt(this.ph), this.Vo.end(), this.gh.begin(), this.xt.Le(this.mh), this.mh.Xt({ U0: this.ki.fontFramebuffer, U1: [this.ki.textureColumns, this.ki.textureRows], U2: this.Vo.textures[0], U3: this.Vo.textures[1], U4: this.Vo.textures[2], U5: this.Vo.textures[4], U6: this.Vo.textures[3], U7: [this.Gr.cols, this.Gr.rows], U8: [this.gh.width, this.gh.height], U9: this.gh.width / this.gh.height }), this.xt.We(0, 0, this.er.width, this.er.height), this.gh.end();
|
|
2693
|
+
const e = this.xt.state.canvasBackgroundColor;
|
|
2694
|
+
this.xt.Ys(e[0], e[1], e[2], e[3]), this.xt.Le(this.yh), this.yh.Xt({ Ua: this.gh.textures[0], Ub: [this.gh.width, this.gh.height], Uc: [this.Gr.offsetX, this.Gr.offsetY], Ud: [this.Gr.width, this.Gr.height] }), this.xt.We(this.Gr.offsetX, this.Gr.offsetY, this.Gr.width, this.Gr.height), this.Ch.runPostDrawHooks();
|
|
2695
|
+
} catch (e) {
|
|
2696
|
+
console.error("[textmode.js] Error during render:", e);
|
|
2697
|
+
} finally {
|
|
2698
|
+
this.bh = !1, this.wh && !this.$h && this.zh();
|
|
2688
2699
|
}
|
|
2689
|
-
this.Ch.runPreDrawHooks(), this.Vo.begin(), this.xt.Le(this.ph), this.$h(), this.xt.zt(this.ph), this.Vo.end(), this.gh.begin(), this.xt.Le(this.mh), this.mh.Xt({ U0: this.ki.fontFramebuffer, U1: [this.ki.textureColumns, this.ki.textureRows], U2: this.Vo.textures[0], U3: this.Vo.textures[1], U4: this.Vo.textures[2], U5: this.Vo.textures[4], U6: this.Vo.textures[3], U7: [this.Gr.cols, this.Gr.rows], U8: [this.gh.width, this.gh.height], U9: this.gh.width / this.gh.height }), this.xt.We(0, 0, this.er.width, this.er.height), this.gh.end();
|
|
2690
|
-
const e = this.xt.state.canvasBackgroundColor;
|
|
2691
|
-
this.xt.Ys(e[0], e[1], e[2], e[3]), this.xt.Le(this.yh), this.yh.Xt({ Ua: this.gh.textures[0], Ub: [this.gh.width, this.gh.height], Uc: [this.Gr.offsetX, this.Gr.offsetY], Ud: [this.Gr.width, this.Gr.height] }), this.xt.We(this.Gr.offsetX, this.Gr.offsetY, this.Gr.width, this.Gr.height), this.Ch.runPostDrawHooks();
|
|
2692
2700
|
}
|
|
2693
2701
|
setup(e) {
|
|
2694
|
-
this.
|
|
2702
|
+
this.xh = e;
|
|
2695
2703
|
}
|
|
2696
2704
|
draw(e) {
|
|
2697
|
-
this
|
|
2705
|
+
this.Mh = e;
|
|
2698
2706
|
}
|
|
2699
2707
|
windowResized(e) {
|
|
2700
|
-
this.
|
|
2708
|
+
this.Rh = e;
|
|
2701
2709
|
}
|
|
2702
2710
|
resizeCanvas(e, i) {
|
|
2703
2711
|
this.er.vr(e, i), this.Gr.nr(), this.Vo.resize(this.Gr.cols, this.Gr.rows), this.gh.resize(this.Gr.width, this.Gr.height), this.xt.Ze(), this.In.hn(), this.Jo.wo(), this.Zo();
|
|
2704
2712
|
}
|
|
2705
2713
|
destroy() {
|
|
2706
|
-
this.wh || (this.qo.stop(), this.
|
|
2714
|
+
this.$h || this.wh || (this.wh = !0, this.qo.stop(), this.noLoop(), this.bh || this.zh());
|
|
2715
|
+
}
|
|
2716
|
+
zh() {
|
|
2717
|
+
this.$h || (this.wh = !1, this.Ch.fh().catch((e) => {
|
|
2707
2718
|
console.error("[textmode.js] Error while disposing plugins:", e);
|
|
2708
|
-
}), window.removeEventListener("resize", this.
|
|
2719
|
+
}), window.removeEventListener("resize", this.Fh), this.In.pn(), this.Jo.pn(), this.Qo.pn(), this.ki.Pt(), this.xt.Pt(), this.gh.Pt(), this.yh.Pt(), this.er.Pt(), this.Sh && this.Sh.Pt(), this.$h = !0);
|
|
2709
2720
|
}
|
|
2710
2721
|
get grid() {
|
|
2711
2722
|
return this.Gr;
|
|
@@ -2726,10 +2737,10 @@ class ee extends function(e, ...i) {
|
|
|
2726
2737
|
return this.Vo;
|
|
2727
2738
|
}
|
|
2728
2739
|
get isDisposed() {
|
|
2729
|
-
return this
|
|
2740
|
+
return this.$h;
|
|
2730
2741
|
}
|
|
2731
2742
|
get overlay() {
|
|
2732
|
-
return this.
|
|
2743
|
+
return this.Sh;
|
|
2733
2744
|
}
|
|
2734
2745
|
}
|
|
2735
2746
|
class J {
|
|
@@ -2742,17 +2753,17 @@ class J {
|
|
|
2742
2753
|
k.C(t);
|
|
2743
2754
|
}
|
|
2744
2755
|
static get version() {
|
|
2745
|
-
return "0.4.
|
|
2756
|
+
return "0.4.1-beta.1";
|
|
2746
2757
|
}
|
|
2747
2758
|
}
|
|
2748
|
-
const se = Object.freeze(Object.defineProperty({ __proto__: null, keyboard: Ht, mouse: Yt, touch:
|
|
2759
|
+
const se = Object.freeze(Object.defineProperty({ __proto__: null, keyboard: Ht, mouse: Yt, touch: $t }, Symbol.toStringTag, { value: "Module" })), re = J.create, ne = J.setErrorLevel, oe = J.version;
|
|
2749
2760
|
export {
|
|
2750
2761
|
Wt as TextmodeCanvas,
|
|
2751
2762
|
ct as TextmodeErrorLevel,
|
|
2752
|
-
|
|
2763
|
+
zt as TextmodeFont,
|
|
2753
2764
|
q as TextmodeFramebuffer,
|
|
2754
|
-
|
|
2755
|
-
|
|
2765
|
+
Nt as TextmodeGrid,
|
|
2766
|
+
z as TextmodeImage,
|
|
2756
2767
|
ee as Textmodifier,
|
|
2757
2768
|
re as create,
|
|
2758
2769
|
se as input,
|