babylonjs-addons 8.8.4 → 8.9.0

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.
@@ -1,7 +1,7 @@
1
1
 
2
2
  declare module "babylonjs-addons/index" {
3
- export * from "babylonjs-addons/htmlMesh";
4
- export * from "babylonjs-addons/msdfText";
3
+ export * from "babylonjs-addons/htmlMesh/index";
4
+ export * from "babylonjs-addons/msdfText/index";
5
5
 
6
6
  }
7
7
  declare module "babylonjs-addons/msdfText/textRenderer" {
@@ -10,13 +10,12 @@ import { IDisposable } from "babylonjs/scene";
10
10
  import { Nullable } from "babylonjs/types";
11
11
  import { FontAsset } from "babylonjs-addons/msdfText/fontAsset";
12
12
  import { ParagraphOptions } from "babylonjs-addons/msdfText/paragraphOptions";
13
- import { ThinMatrix } from "babylonjs/Maths/ThinMaths/thinMath.matrix";
14
- import { IColor4Like, IMatrixLike } from "babylonjs/Maths";
13
+ import { IColor4Like, IMatrixLike } from "babylonjs/Maths/math.like";
15
14
  /**
16
15
  * Abstract Node class from Babylon.js
17
16
  */
18
17
  export interface INodeLike {
19
- getWorldMatrix(): ThinMatrix;
18
+ getWorldMatrix(): IMatrixLike;
20
19
  }
21
20
  /**
22
21
  * Class used to render text using MSDF (Multi-channel Signed Distance Field) technique
@@ -26,6 +25,7 @@ export interface INodeLike {
26
25
  * With metrics: #6RLCWP#35
27
26
  * Thickness: #IABMEZ#3
28
27
  * Solar system: #9YCDYC#9
28
+ * Stroke: #6RLCWP#37
29
29
  */
30
30
  export class TextRenderer implements IDisposable {
31
31
  private readonly _useVAO;
@@ -52,11 +52,22 @@ export class TextRenderer implements IDisposable {
52
52
  private _finalMatrix;
53
53
  private _lineMatrix;
54
54
  private _parentWorldMatrix;
55
- private _storedTranslation;
56
55
  /**
57
56
  * Gets or sets the color of the text
58
57
  */
59
58
  color: IColor4Like;
59
+ /**
60
+ * Gets or sets the color of the stroke around the text
61
+ */
62
+ strokeColor: IColor4Like;
63
+ /**
64
+ * Gets or sets the width of the stroke around the text (inset)
65
+ */
66
+ strokeInsetWidth: number;
67
+ /**
68
+ * Gets or sets the width of the stroke around the text (outset)
69
+ */
70
+ strokeOutsetWidth: number;
60
71
  /**
61
72
  * Gets or sets the thickness of the text (0 means as defined in the font)
62
73
  * Value must be between -0.5 and 0.5
@@ -68,14 +79,32 @@ export class TextRenderer implements IDisposable {
68
79
  */
69
80
  get parent(): Nullable<INodeLike>;
70
81
  set parent(value: Nullable<INodeLike>);
82
+ private _transformMatrix;
83
+ /**
84
+ * Gets or sets the transform matrix of the text renderer
85
+ * It will be applied in that order:
86
+ * parent x transform x paragraph world
87
+ */
88
+ get transformMatrix(): IMatrixLike;
89
+ set transformMatrix(value: IMatrixLike);
71
90
  /**
72
91
  * Gets or sets if the text is billboarded
73
92
  */
74
93
  isBillboard: boolean;
94
+ /**
95
+ * Gets or sets if the text is screen projected
96
+ * This will work only if the text is billboarded
97
+ */
98
+ isBillboardScreenProjected: boolean;
75
99
  /**
76
100
  * Gets the number of characters in the text renderer
77
101
  */
78
102
  get characterCount(): number;
103
+ /**
104
+ * Gets or sets if the text renderer should ignore the depth buffer
105
+ * Default is false
106
+ */
107
+ ignoreDepthBuffer: boolean;
79
108
  private constructor();
80
109
  private _resizeBuffers;
81
110
  private _setShaders;
@@ -107,7 +136,7 @@ export class TextRenderer implements IDisposable {
107
136
 
108
137
  }
109
138
  declare module "babylonjs-addons/msdfText/paragraphOptions" {
110
- import { Vector2 } from "babylonjs/Maths/math.vector";
139
+ import { IVector2Like } from "babylonjs/Maths";
111
140
  /** @internal */
112
141
  export type ParagraphOptions = {
113
142
  maxWidth: number;
@@ -116,7 +145,7 @@ export type ParagraphOptions = {
116
145
  tabSize: number;
117
146
  whiteSpace: "pre-line";
118
147
  textAlign: "left" | "right" | "center";
119
- translate: Vector2 | undefined;
148
+ translate: IVector2Like | undefined;
120
149
  };
121
150
  /** @internal */
122
151
  export const DefaultParagraphOptions: ParagraphOptions;
@@ -126,16 +155,20 @@ declare module "babylonjs-addons/msdfText/index" {
126
155
  export * from "babylonjs-addons/msdfText/fontAsset";
127
156
  export * from "babylonjs-addons/msdfText/paragraphOptions";
128
157
  export * from "babylonjs-addons/msdfText/textRenderer";
158
+ export * from "babylonjs-addons/msdfText/sdf/index";
159
+ export * from "babylonjs-addons/msdfText/webgl/index";
160
+ export * from "babylonjs-addons/msdfText/webgpu/index";
129
161
 
130
162
  }
131
163
  declare module "babylonjs-addons/msdfText/fontAsset" {
164
+ import { IDisposable, Scene } from "babylonjs/scene";
132
165
  import { BMFontChar } from "babylonjs-addons/msdfText/sdf/bmFont";
133
166
  import { SdfFont } from "babylonjs-addons/msdfText/sdf/font";
134
167
  import { Texture } from "babylonjs/Materials/Textures/texture";
135
168
  /**
136
169
  * Class representing a font asset for SDF (Signed Distance Field) rendering.
137
170
  */
138
- export class FontAsset {
171
+ export class FontAsset implements IDisposable {
139
172
  private readonly _chars;
140
173
  private readonly _charsRegex;
141
174
  private readonly _kernings;
@@ -153,8 +186,10 @@ export class FontAsset {
153
186
  * Creates a new FontAsset instance.
154
187
  * @param definitionData defines the font data in JSON format.
155
188
  * @param textureUrl defines the url of the texture to use for the font.
189
+ * @param scene defines the hosting scene.
156
190
  */
157
- constructor(definitionData: string, textureUrl: string);
191
+ constructor(definitionData: string, textureUrl: string, scene?: Scene);
192
+ dispose(): void;
158
193
  private _updateFallbacks;
159
194
  /** @internal */
160
195
  _getChar(charCode: number): BMFontChar;
@@ -167,15 +202,20 @@ export class FontAsset {
167
202
  }
168
203
  declare module "babylonjs-addons/msdfText/webgpu/vertex" {
169
204
  /** @internal */
170
- export const msdfVertexShader: {
205
+ export const msdfVertexShaderWGSL: {
171
206
  name: string;
172
207
  shader: string;
173
208
  };
174
209
 
210
+ }
211
+ declare module "babylonjs-addons/msdfText/webgpu/index" {
212
+ export * from "babylonjs-addons/msdfText/webgpu/fragment";
213
+ export * from "babylonjs-addons/msdfText/webgpu/vertex";
214
+
175
215
  }
176
216
  declare module "babylonjs-addons/msdfText/webgpu/fragment" {
177
217
  /** @internal */
178
- export const msdfFragmentShader: {
218
+ export const msdfFragmentShaderWGSL: {
179
219
  name: string;
180
220
  shader: string;
181
221
  };
@@ -188,6 +228,11 @@ export const msdfVertexShader: {
188
228
  shader: string;
189
229
  };
190
230
 
231
+ }
232
+ declare module "babylonjs-addons/msdfText/webgl/index" {
233
+ export * from "babylonjs-addons/msdfText/webgl/fragment";
234
+ export * from "babylonjs-addons/msdfText/webgl/vertex";
235
+
191
236
  }
192
237
  declare module "babylonjs-addons/msdfText/webgl/fragment" {
193
238
  /** @internal */
@@ -232,6 +277,14 @@ export type SdfTextLine = {
232
277
  width: number;
233
278
  };
234
279
 
280
+ }
281
+ declare module "babylonjs-addons/msdfText/sdf/index" {
282
+ export * from "babylonjs-addons/msdfText/sdf/bmFont";
283
+ export * from "babylonjs-addons/msdfText/sdf/font";
284
+ export * from "babylonjs-addons/msdfText/sdf/glyph";
285
+ export * from "babylonjs-addons/msdfText/sdf/line";
286
+ export * from "babylonjs-addons/msdfText/sdf/paragraph";
287
+
235
288
  }
236
289
  declare module "babylonjs-addons/msdfText/sdf/glyph" {
237
290
  import { BMFontChar } from "babylonjs-addons/msdfText/sdf/bmFont";
@@ -706,7 +759,7 @@ declare module ADDONS {
706
759
  * Abstract Node class from Babylon.js
707
760
  */
708
761
  export interface INodeLike {
709
- getWorldMatrix(): BABYLON.ThinMatrix;
762
+ getWorldMatrix(): BABYLON.IMatrixLike;
710
763
  }
711
764
  /**
712
765
  * Class used to render text using MSDF (Multi-channel Signed Distance Field) technique
@@ -716,6 +769,7 @@ declare module ADDONS {
716
769
  * With metrics: #6RLCWP#35
717
770
  * Thickness: #IABMEZ#3
718
771
  * Solar system: #9YCDYC#9
772
+ * Stroke: #6RLCWP#37
719
773
  */
720
774
  export class TextRenderer implements BABYLON.IDisposable {
721
775
  private readonly _useVAO;
@@ -742,11 +796,22 @@ declare module ADDONS {
742
796
  private _finalMatrix;
743
797
  private _lineMatrix;
744
798
  private _parentWorldMatrix;
745
- private _storedTranslation;
746
799
  /**
747
800
  * Gets or sets the color of the text
748
801
  */
749
802
  color: BABYLON.IColor4Like;
803
+ /**
804
+ * Gets or sets the color of the stroke around the text
805
+ */
806
+ strokeColor: BABYLON.IColor4Like;
807
+ /**
808
+ * Gets or sets the width of the stroke around the text (inset)
809
+ */
810
+ strokeInsetWidth: number;
811
+ /**
812
+ * Gets or sets the width of the stroke around the text (outset)
813
+ */
814
+ strokeOutsetWidth: number;
750
815
  /**
751
816
  * Gets or sets the thickness of the text (0 means as defined in the font)
752
817
  * Value must be between -0.5 and 0.5
@@ -758,14 +823,32 @@ declare module ADDONS {
758
823
  */
759
824
  get parent(): BABYLON.Nullable<INodeLike>;
760
825
  set parent(value: BABYLON.Nullable<INodeLike>);
826
+ private _transformMatrix;
827
+ /**
828
+ * Gets or sets the transform matrix of the text renderer
829
+ * It will be applied in that order:
830
+ * parent x transform x paragraph world
831
+ */
832
+ get transformMatrix(): BABYLON.IMatrixLike;
833
+ set transformMatrix(value: BABYLON.IMatrixLike);
761
834
  /**
762
835
  * Gets or sets if the text is billboarded
763
836
  */
764
837
  isBillboard: boolean;
838
+ /**
839
+ * Gets or sets if the text is screen projected
840
+ * This will work only if the text is billboarded
841
+ */
842
+ isBillboardScreenProjected: boolean;
765
843
  /**
766
844
  * Gets the number of characters in the text renderer
767
845
  */
768
846
  get characterCount(): number;
847
+ /**
848
+ * Gets or sets if the text renderer should ignore the depth buffer
849
+ * Default is false
850
+ */
851
+ ignoreDepthBuffer: boolean;
769
852
  private constructor();
770
853
  private _resizeBuffers;
771
854
  private _setShaders;
@@ -804,7 +887,7 @@ declare module ADDONS {
804
887
  tabSize: number;
805
888
  whiteSpace: "pre-line";
806
889
  textAlign: "left" | "right" | "center";
807
- translate: BABYLON.Vector2 | undefined;
890
+ translate: BABYLON.IVector2Like | undefined;
808
891
  };
809
892
  /** @internal */
810
893
  export var DefaultParagraphOptions: ParagraphOptions;
@@ -815,7 +898,7 @@ declare module ADDONS {
815
898
  /**
816
899
  * Class representing a font asset for SDF (Signed Distance Field) rendering.
817
900
  */
818
- export class FontAsset {
901
+ export class FontAsset implements BABYLON.IDisposable {
819
902
  private readonly _chars;
820
903
  private readonly _charsRegex;
821
904
  private readonly _kernings;
@@ -833,8 +916,10 @@ declare module ADDONS {
833
916
  * Creates a new FontAsset instance.
834
917
  * @param definitionData defines the font data in JSON format.
835
918
  * @param textureUrl defines the url of the texture to use for the font.
919
+ * @param scene defines the hosting scene.
836
920
  */
837
- constructor(definitionData: string, textureUrl: string);
921
+ constructor(definitionData: string, textureUrl: string, scene?: BABYLON.Scene);
922
+ dispose(): void;
838
923
  private _updateFallbacks;
839
924
  /** @internal */
840
925
  _getChar(charCode: number): BMFontChar;
@@ -846,14 +931,16 @@ declare module ADDONS {
846
931
 
847
932
 
848
933
  /** @internal */
849
- export var msdfVertexShader: {
934
+ export var msdfVertexShaderWGSL: {
850
935
  name: string;
851
936
  shader: string;
852
937
  };
853
938
 
854
939
 
940
+
941
+
855
942
  /** @internal */
856
- export var msdfFragmentShader: {
943
+ export var msdfFragmentShaderWGSL: {
857
944
  name: string;
858
945
  shader: string;
859
946
  };
@@ -866,6 +953,8 @@ declare module ADDONS {
866
953
  };
867
954
 
868
955
 
956
+
957
+
869
958
  /** @internal */
870
959
  export var msdfFragmentShader: {
871
960
  name: string;
@@ -902,6 +991,8 @@ declare module ADDONS {
902
991
  };
903
992
 
904
993
 
994
+
995
+
905
996
  /** @internal */
906
997
  export type SdfGlyph = {
907
998
  char: BMFontChar;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "babylonjs-addons",
3
- "version": "8.8.4",
3
+ "version": "8.9.0",
4
4
  "main": "babylonjs.addons.js",
5
5
  "types": "babylonjs.addons.module.d.ts",
6
6
  "files": [
@@ -15,7 +15,7 @@
15
15
  "test:escheck": "es-check es6 ./babylonjs.addons.js"
16
16
  },
17
17
  "dependencies": {
18
- "babylonjs": "^8.8.4"
18
+ "babylonjs": "^8.9.0"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@dev/build-tools": "1.0.0",
package/138.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";(("undefined"!=typeof self?self:"undefined"!=typeof global?global:this).webpackChunkADDONS=("undefined"!=typeof self?self:"undefined"!=typeof global?global:this).webpackChunkADDONS||[]).push([[138],{138:(e,n,t)=>{t.r(n),t.d(n,{msdfFragmentShader:()=>f});var f={name:"msdfFragmentShader",shader:"\nvar fontAtlas: texture_2d<f32>;\nvar fontAtlasSampler: sampler;\nuniform unitRange: vec2f;\nuniform texelSize: vec2f;\nuniform uColor: vec4f;\nuniform thickness: f32;\n\nvarying atlasUV: vec2f;\n\nfn median(msdf: vec3<f32>) -> f32 {\n let a = min(msdf.r, msdf.g);\n let b = max(msdf.r, msdf.g);\n return max(a, min(b, msdf.b));\n}\n\n@fragment\nfn main(input: FragmentInputs) -> FragmentOutputs {\n let uv = input.atlasUV;\n\n // Sample center and neighbors\n let sdfCenter = textureSample(fontAtlas, fontAtlasSampler, uv).rgb;\n let sdfLeft = textureSample(fontAtlas, fontAtlasSampler, uv - vec2<f32>(uniforms.texelSize.x, 0.0)).rgb;\n let sdfRight = textureSample(fontAtlas, fontAtlasSampler, uv + vec2<f32>(uniforms.texelSize.x, 0.0)).rgb;\n let sdfTop = textureSample(fontAtlas, fontAtlasSampler, uv - vec2<f32>(0.0, uniforms.texelSize.y)).rgb;\n let sdfBottom = textureSample(fontAtlas, fontAtlasSampler, uv + vec2<f32>(0.0, uniforms.texelSize.y)).rgb;\n\n let sdf = (sdfCenter + sdfLeft + sdfRight + sdfTop + sdfBottom) / 5.0;\n\n let dist = median(sdfCenter);\n\n // Estimate pixel range in screen space\n let dx = dpdx(uv);\n let dy = dpdy(uv);\n let screenTexSize = vec2<f32>(1.0) / vec2<f32>(length(dx), length(dy));\n let pxRange = max(0.5 * dot(uniforms.unitRange, screenTexSize), 1.0);\n\n let pxDist = pxRange * (dist - 0.5 + uniforms.thickness);\n let alpha = clamp(pxDist / length(dpdx(pxDist)) + 0.5, 0.0, 1.0);\n\n fragmentOutputs.color = vec4<f32>(uniforms.uColor.rgb, alpha * uniforms.uColor.a);\n}"}}}]);
2
- //# sourceMappingURL=138.js.map
package/138.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"138.js","mappings":"2QACA,IA6CaA,EAAqB,CAAEC,KA7CvB,qBA6C6BC,OA5C3B,qjD","sources":["webpack://ADDONS/../../../dev/addons/src/msdfText/webgpu/fragment.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nconst name = \"msdfFragmentShader\";\r\nconst shader = `\r\nvar fontAtlas: texture_2d<f32>;\r\nvar fontAtlasSampler: sampler;\r\nuniform unitRange: vec2f;\r\nuniform texelSize: vec2f;\r\nuniform uColor: vec4f;\r\nuniform thickness: f32;\r\n\r\nvarying atlasUV: vec2f;\r\n\r\nfn median(msdf: vec3<f32>) -> f32 {\r\n let a = min(msdf.r, msdf.g);\r\n let b = max(msdf.r, msdf.g);\r\n return max(a, min(b, msdf.b));\r\n}\r\n\r\n@fragment\r\nfn main(input: FragmentInputs) -> FragmentOutputs {\r\n let uv = input.atlasUV;\r\n\r\n // Sample center and neighbors\r\n let sdfCenter = textureSample(fontAtlas, fontAtlasSampler, uv).rgb;\r\n let sdfLeft = textureSample(fontAtlas, fontAtlasSampler, uv - vec2<f32>(uniforms.texelSize.x, 0.0)).rgb;\r\n let sdfRight = textureSample(fontAtlas, fontAtlasSampler, uv + vec2<f32>(uniforms.texelSize.x, 0.0)).rgb;\r\n let sdfTop = textureSample(fontAtlas, fontAtlasSampler, uv - vec2<f32>(0.0, uniforms.texelSize.y)).rgb;\r\n let sdfBottom = textureSample(fontAtlas, fontAtlasSampler, uv + vec2<f32>(0.0, uniforms.texelSize.y)).rgb;\r\n\r\n let sdf = (sdfCenter + sdfLeft + sdfRight + sdfTop + sdfBottom) / 5.0;\r\n\r\n let dist = median(sdfCenter);\r\n\r\n // Estimate pixel range in screen space\r\n let dx = dpdx(uv);\r\n let dy = dpdy(uv);\r\n let screenTexSize = vec2<f32>(1.0) / vec2<f32>(length(dx), length(dy));\r\n let pxRange = max(0.5 * dot(uniforms.unitRange, screenTexSize), 1.0);\r\n\r\n let pxDist = pxRange * (dist - 0.5 + uniforms.thickness);\r\n let alpha = clamp(pxDist / length(dpdx(pxDist)) + 0.5, 0.0, 1.0);\r\n\r\n fragmentOutputs.color = vec4<f32>(uniforms.uColor.rgb, alpha * uniforms.uColor.a);\r\n}`;\r\n\r\n/** @internal */\r\nexport const msdfFragmentShader = { name, shader };\r\n"],"names":["msdfFragmentShader","name","shader"],"sourceRoot":""}
package/205.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";(("undefined"!=typeof self?self:"undefined"!=typeof global?global:this).webpackChunkADDONS=("undefined"!=typeof self?self:"undefined"!=typeof global?global:this).webpackChunkADDONS||[]).push([[205],{205:(e,n,t)=>{t.r(n),t.d(n,{msdfFragmentShader:()=>a});var a={name:"msdfFragmentShader",shader:"\n#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n\nuniform sampler2D fontAtlas;\nuniform vec2 unitRange;\nuniform vec2 texelSize;\nuniform vec4 uColor;\nuniform float thickness;\n\nvarying vec2 atlasUV;\n\nfloat median(vec3 msdf) {\n return max(min(msdf.r, msdf.g), min(max(msdf.r, msdf.g), msdf.b));\n}\n \nfloat screenPxRange(sampler2D tex) {\n vec2 screenTexSize = vec2(1.0) / fwidth(atlasUV);\n return max(0.5 * dot(unitRange, screenTexSize), 1.0);\n}\n\nvoid main(void)\n{\n vec3 sdfCenter = texture2D(fontAtlas, atlasUV).rgb;\n vec3 sdfLeft = texture2D(fontAtlas, atlasUV - vec2(texelSize.x, 0.0)).rgb;\n vec3 sdfRight = texture2D(fontAtlas, atlasUV + vec2(texelSize.x, 0.0)).rgb;\n vec3 sdfTop = texture2D(fontAtlas, atlasUV - vec2(0.0, texelSize.y)).rgb;\n vec3 sdfBottom = texture2D(fontAtlas, atlasUV + vec2(0.0, texelSize.y)).rgb;\n\n vec3 sdf = (sdfCenter + sdfLeft + sdfRight + sdfTop + sdfBottom) / 5.0;\n\n float dist = median(sdfCenter);\n\n float pxRange = screenPxRange(fontAtlas);\n float pxDist = pxRange * (dist - 0.5 + thickness);\n float alpha = clamp(pxDist / fwidth(pxDist) + 0.5, 0.0, 1.0);\n\n gl_FragColor = vec4(uColor.rgb, alpha * uColor.a);\n}"}}}]);
2
- //# sourceMappingURL=205.js.map
package/205.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"205.js","mappings":"2QACA,IA2CaA,EAAqB,CAAEC,KA3CvB,qBA2C6BC,OA1C3B,guC","sources":["webpack://ADDONS/../../../dev/addons/src/msdfText/webgl/fragment.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nconst name = \"msdfFragmentShader\";\r\nconst shader = `\r\n#extension GL_OES_standard_derivatives : enable\r\n\r\nprecision highp float;\r\n\r\nuniform sampler2D fontAtlas;\r\nuniform vec2 unitRange;\r\nuniform vec2 texelSize;\r\nuniform vec4 uColor;\r\nuniform float thickness;\r\n\r\nvarying vec2 atlasUV;\r\n\r\nfloat median(vec3 msdf) {\r\n return max(min(msdf.r, msdf.g), min(max(msdf.r, msdf.g), msdf.b));\r\n}\r\n \r\nfloat screenPxRange(sampler2D tex) {\r\n vec2 screenTexSize = vec2(1.0) / fwidth(atlasUV);\r\n return max(0.5 * dot(unitRange, screenTexSize), 1.0);\r\n}\r\n\r\nvoid main(void)\r\n{\r\n vec3 sdfCenter = texture2D(fontAtlas, atlasUV).rgb;\r\n vec3 sdfLeft = texture2D(fontAtlas, atlasUV - vec2(texelSize.x, 0.0)).rgb;\r\n vec3 sdfRight = texture2D(fontAtlas, atlasUV + vec2(texelSize.x, 0.0)).rgb;\r\n vec3 sdfTop = texture2D(fontAtlas, atlasUV - vec2(0.0, texelSize.y)).rgb;\r\n vec3 sdfBottom = texture2D(fontAtlas, atlasUV + vec2(0.0, texelSize.y)).rgb;\r\n\r\n vec3 sdf = (sdfCenter + sdfLeft + sdfRight + sdfTop + sdfBottom) / 5.0;\r\n\r\n float dist = median(sdfCenter);\r\n\r\n float pxRange = screenPxRange(fontAtlas);\r\n float pxDist = pxRange * (dist - 0.5 + thickness);\r\n float alpha = clamp(pxDist / fwidth(pxDist) + 0.5, 0.0, 1.0);\r\n\r\n gl_FragColor = vec4(uColor.rgb, alpha * uColor.a);\r\n}`;\r\n\r\n/** @internal */\r\nexport const msdfFragmentShader = { name, shader };\r\n"],"names":["msdfFragmentShader","name","shader"],"sourceRoot":""}
package/315.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";(("undefined"!=typeof self?self:"undefined"!=typeof global?global:this).webpackChunkADDONS=("undefined"!=typeof self?self:"undefined"!=typeof global?global:this).webpackChunkADDONS||[]).push([[315],{315:(e,t,n)=>{n.r(t),n.d(t,{msdfVertexShader:()=>o});var o={name:"msdfVertexShader",shader:"\nattribute vec2 offsets;\nattribute vec4 world0;\nattribute vec4 world1;\nattribute vec4 world2;\nattribute vec4 world3;\nattribute vec4 uvs;\n\nuniform mat4 parentWorld;\nuniform mat4 view;\nuniform mat4 projection;\n\nvarying vec2 atlasUV;\n\nvoid main(void) {\n mat4 world = mat4(world0, world1, world2, world3);\n vec3 viewPos = (view * parentWorld * world * vec4(offsets.xy - vec2(0.5, 0.5), 0., 1.0)).xyz; \n gl_Position = projection * vec4(viewPos,1.0); \n atlasUV = vec2(uvs.x + offsets.x * uvs.z, uvs.y + (1.0 - offsets.y) * uvs.w);\n}"}}}]);
2
- //# sourceMappingURL=315.js.map
package/315.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"315.js","mappings":"yQACA,IAuBaA,EAAmB,CAAEC,KAvBrB,mBAuB2BC,OAtBzB,ijB","sources":["webpack://ADDONS/../../../dev/addons/src/msdfText/webgl/vertex.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nconst name = \"msdfVertexShader\";\r\nconst shader = `\r\nattribute vec2 offsets;\r\nattribute vec4 world0;\r\nattribute vec4 world1;\r\nattribute vec4 world2;\r\nattribute vec4 world3;\r\nattribute vec4 uvs;\r\n\r\nuniform mat4 parentWorld;\r\nuniform mat4 view;\r\nuniform mat4 projection;\r\n\r\nvarying vec2 atlasUV;\r\n\r\nvoid main(void) {\r\n mat4 world = mat4(world0, world1, world2, world3);\r\n vec3 viewPos = (view * parentWorld * world * vec4(offsets.xy - vec2(0.5, 0.5), 0., 1.0)).xyz; \r\n gl_Position = projection * vec4(viewPos,1.0); \r\n atlasUV = vec2(uvs.x + offsets.x * uvs.z, uvs.y + (1.0 - offsets.y) * uvs.w);\r\n}`;\r\n\r\n/** @internal */\r\nexport const msdfVertexShader = { name, shader };\r\n"],"names":["msdfVertexShader","name","shader"],"sourceRoot":""}
package/372.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";(("undefined"!=typeof self?self:"undefined"!=typeof global?global:this).webpackChunkADDONS=("undefined"!=typeof self?self:"undefined"!=typeof global?global:this).webpackChunkADDONS||[]).push([[372],{372:(t,e,n)=>{n.r(e),n.d(e,{msdfVertexShader:()=>f});var f={name:"msdfVertexShader",shader:"\nattribute offsets: vec2f;\nattribute world0: vec4f;\nattribute world1: vec4f;\nattribute world2: vec4f;\nattribute world3: vec4f;\nattribute uvs: vec4f;\n\nuniform parentWorld: mat4x4f;\nuniform view: mat4x4f;\nuniform projection: mat4x4f;\n\nvarying atlasUV: vec2f;\n\n@vertex\nfn main(input: VertexInputs) -> FragmentInputs {\n let world = mat4x4<f32>(input.world0, input.world1, input.world2, input.world3);\n let localOffset = vec4<f32>(input.offsets - vec2<f32>(0.5, 0.5), 0.0, 1.0);\n let viewPos = (uniforms.view * uniforms.parentWorld * world * localOffset).xyz;\n vertexOutputs.position = uniforms.projection * vec4<f32>(viewPos, 1.0);\n\n vertexOutputs.atlasUV = vec2<f32>(\n input.uvs.x + input.offsets.x * input.uvs.z,\n input.uvs.y + (1.0 - input.offsets.y) * input.uvs.w\n );\n}"}}}]);
2
- //# sourceMappingURL=372.js.map
package/372.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"372.js","mappings":"yQACA,IA6BaA,EAAmB,CAAEC,KA7BrB,mBA6B2BC,OA5BzB,6zB","sources":["webpack://ADDONS/../../../dev/addons/src/msdfText/webgpu/vertex.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\r\nconst name = \"msdfVertexShader\";\r\nconst shader = `\r\nattribute offsets: vec2f;\r\nattribute world0: vec4f;\r\nattribute world1: vec4f;\r\nattribute world2: vec4f;\r\nattribute world3: vec4f;\r\nattribute uvs: vec4f;\r\n\r\nuniform parentWorld: mat4x4f;\r\nuniform view: mat4x4f;\r\nuniform projection: mat4x4f;\r\n\r\nvarying atlasUV: vec2f;\r\n\r\n@vertex\r\nfn main(input: VertexInputs) -> FragmentInputs {\r\n let world = mat4x4<f32>(input.world0, input.world1, input.world2, input.world3);\r\n let localOffset = vec4<f32>(input.offsets - vec2<f32>(0.5, 0.5), 0.0, 1.0);\r\n let viewPos = (uniforms.view * uniforms.parentWorld * world * localOffset).xyz;\r\n vertexOutputs.position = uniforms.projection * vec4<f32>(viewPos, 1.0);\r\n\r\n vertexOutputs.atlasUV = vec2<f32>(\r\n input.uvs.x + input.offsets.x * input.uvs.z,\r\n input.uvs.y + (1.0 - input.offsets.y) * input.uvs.w\r\n );\r\n}`;\r\n\r\n/** @internal */\r\nexport const msdfVertexShader = { name, shader };\r\n"],"names":["msdfVertexShader","name","shader"],"sourceRoot":""}
@@ -1,24 +0,0 @@
1
- "use strict";
2
- ((typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this)["webpackChunkADDONS"] = (typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this)["webpackChunkADDONS"] || []).push([["dev_addons_src_msdfText_webgl_fragment_ts"],{
3
-
4
- /***/ "../../../dev/addons/src/msdfText/webgl/fragment.ts":
5
- /*!**********************************************************!*\
6
- !*** ../../../dev/addons/src/msdfText/webgl/fragment.ts ***!
7
- \**********************************************************/
8
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9
-
10
- __webpack_require__.r(__webpack_exports__);
11
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
12
- /* harmony export */ msdfFragmentShader: () => (/* binding */ msdfFragmentShader)
13
- /* harmony export */ });
14
- /* eslint-disable @typescript-eslint/naming-convention */
15
- var name = "msdfFragmentShader";
16
- var shader = "\n#extension GL_OES_standard_derivatives : enable\n\nprecision highp float;\n\nuniform sampler2D fontAtlas;\nuniform vec2 unitRange;\nuniform vec2 texelSize;\nuniform vec4 uColor;\nuniform float thickness;\n\nvarying vec2 atlasUV;\n\nfloat median(vec3 msdf) {\n return max(min(msdf.r, msdf.g), min(max(msdf.r, msdf.g), msdf.b));\n}\n \nfloat screenPxRange(sampler2D tex) {\n vec2 screenTexSize = vec2(1.0) / fwidth(atlasUV);\n return max(0.5 * dot(unitRange, screenTexSize), 1.0);\n}\n\nvoid main(void)\n{\n vec3 sdfCenter = texture2D(fontAtlas, atlasUV).rgb;\n vec3 sdfLeft = texture2D(fontAtlas, atlasUV - vec2(texelSize.x, 0.0)).rgb;\n vec3 sdfRight = texture2D(fontAtlas, atlasUV + vec2(texelSize.x, 0.0)).rgb;\n vec3 sdfTop = texture2D(fontAtlas, atlasUV - vec2(0.0, texelSize.y)).rgb;\n vec3 sdfBottom = texture2D(fontAtlas, atlasUV + vec2(0.0, texelSize.y)).rgb;\n\n vec3 sdf = (sdfCenter + sdfLeft + sdfRight + sdfTop + sdfBottom) / 5.0;\n\n float dist = median(sdfCenter);\n\n float pxRange = screenPxRange(fontAtlas);\n float pxDist = pxRange * (dist - 0.5 + thickness);\n float alpha = clamp(pxDist / fwidth(pxDist) + 0.5, 0.0, 1.0);\n\n gl_FragColor = vec4(uColor.rgb, alpha * uColor.a);\n}";
17
- /** @internal */
18
- var msdfFragmentShader = { name: name, shader: shader };
19
-
20
-
21
- /***/ })
22
-
23
- }]);
24
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2X2FkZG9uc19zcmNfbXNkZlRleHRfd2ViZ2xfZnJhZ21lbnRfdHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQXlDQTtBQUNBIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQURET05TLy4uLy4uLy4uL2Rldi9hZGRvbnMvc3JjL21zZGZUZXh0L3dlYmdsL2ZyYWdtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xyXG5jb25zdCBuYW1lID0gXCJtc2RmRnJhZ21lbnRTaGFkZXJcIjtcclxuY29uc3Qgc2hhZGVyID0gYFxyXG4jZXh0ZW5zaW9uIEdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyA6IGVuYWJsZVxyXG5cclxucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xyXG5cclxudW5pZm9ybSBzYW1wbGVyMkQgZm9udEF0bGFzO1xyXG51bmlmb3JtIHZlYzIgdW5pdFJhbmdlO1xyXG51bmlmb3JtIHZlYzIgdGV4ZWxTaXplO1xyXG51bmlmb3JtIHZlYzQgdUNvbG9yO1xyXG51bmlmb3JtIGZsb2F0IHRoaWNrbmVzcztcclxuXHJcbnZhcnlpbmcgdmVjMiBhdGxhc1VWO1xyXG5cclxuZmxvYXQgbWVkaWFuKHZlYzMgbXNkZikge1xyXG4gICAgcmV0dXJuIG1heChtaW4obXNkZi5yLCBtc2RmLmcpLCBtaW4obWF4KG1zZGYuciwgbXNkZi5nKSwgbXNkZi5iKSk7XHJcbn1cclxuICBcclxuZmxvYXQgc2NyZWVuUHhSYW5nZShzYW1wbGVyMkQgdGV4KSB7XHJcbiAgICB2ZWMyIHNjcmVlblRleFNpemUgPSB2ZWMyKDEuMCkgLyBmd2lkdGgoYXRsYXNVVik7XHJcbiAgICByZXR1cm4gbWF4KDAuNSAqIGRvdCh1bml0UmFuZ2UsIHNjcmVlblRleFNpemUpLCAxLjApO1xyXG59XHJcblxyXG52b2lkIG1haW4odm9pZClcclxue1xyXG4gICAgdmVjMyBzZGZDZW50ZXIgPSB0ZXh0dXJlMkQoZm9udEF0bGFzLCBhdGxhc1VWKS5yZ2I7XHJcbiAgICB2ZWMzIHNkZkxlZnQgPSB0ZXh0dXJlMkQoZm9udEF0bGFzLCBhdGxhc1VWIC0gdmVjMih0ZXhlbFNpemUueCwgMC4wKSkucmdiO1xyXG4gICAgdmVjMyBzZGZSaWdodCA9IHRleHR1cmUyRChmb250QXRsYXMsIGF0bGFzVVYgKyB2ZWMyKHRleGVsU2l6ZS54LCAwLjApKS5yZ2I7XHJcbiAgICB2ZWMzIHNkZlRvcCA9IHRleHR1cmUyRChmb250QXRsYXMsIGF0bGFzVVYgLSB2ZWMyKDAuMCwgdGV4ZWxTaXplLnkpKS5yZ2I7XHJcbiAgICB2ZWMzIHNkZkJvdHRvbSA9IHRleHR1cmUyRChmb250QXRsYXMsIGF0bGFzVVYgKyB2ZWMyKDAuMCwgdGV4ZWxTaXplLnkpKS5yZ2I7XHJcblxyXG4gICAgdmVjMyBzZGYgPSAoc2RmQ2VudGVyICsgc2RmTGVmdCArIHNkZlJpZ2h0ICsgc2RmVG9wICsgc2RmQm90dG9tKSAvIDUuMDtcclxuXHJcbiAgICBmbG9hdCBkaXN0ID0gbWVkaWFuKHNkZkNlbnRlcik7XHJcblxyXG4gICAgZmxvYXQgcHhSYW5nZSA9IHNjcmVlblB4UmFuZ2UoZm9udEF0bGFzKTtcclxuICAgIGZsb2F0IHB4RGlzdCA9IHB4UmFuZ2UgKiAoZGlzdCAtIDAuNSArIHRoaWNrbmVzcyk7XHJcbiAgICBmbG9hdCBhbHBoYSA9IGNsYW1wKHB4RGlzdCAvIGZ3aWR0aChweERpc3QpICsgMC41LCAwLjAsIDEuMCk7XHJcblxyXG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNCh1Q29sb3IucmdiLCBhbHBoYSAqIHVDb2xvci5hKTtcclxufWA7XHJcblxyXG4vKiogQGludGVybmFsICovXHJcbmV4cG9ydCBjb25zdCBtc2RmRnJhZ21lbnRTaGFkZXIgPSB7IG5hbWUsIHNoYWRlciB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=
@@ -1,24 +0,0 @@
1
- "use strict";
2
- ((typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this)["webpackChunkADDONS"] = (typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this)["webpackChunkADDONS"] || []).push([["dev_addons_src_msdfText_webgl_vertex_ts"],{
3
-
4
- /***/ "../../../dev/addons/src/msdfText/webgl/vertex.ts":
5
- /*!********************************************************!*\
6
- !*** ../../../dev/addons/src/msdfText/webgl/vertex.ts ***!
7
- \********************************************************/
8
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9
-
10
- __webpack_require__.r(__webpack_exports__);
11
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
12
- /* harmony export */ msdfVertexShader: () => (/* binding */ msdfVertexShader)
13
- /* harmony export */ });
14
- /* eslint-disable @typescript-eslint/naming-convention */
15
- var name = "msdfVertexShader";
16
- var shader = "\nattribute vec2 offsets;\nattribute vec4 world0;\nattribute vec4 world1;\nattribute vec4 world2;\nattribute vec4 world3;\nattribute vec4 uvs;\n\nuniform mat4 parentWorld;\nuniform mat4 view;\nuniform mat4 projection;\n\nvarying vec2 atlasUV;\n\nvoid main(void) {\n mat4 world = mat4(world0, world1, world2, world3);\n vec3 viewPos = (view * parentWorld * world * vec4(offsets.xy - vec2(0.5, 0.5), 0., 1.0)).xyz; \n gl_Position = projection * vec4(viewPos,1.0); \n atlasUV = vec2(uvs.x + offsets.x * uvs.z, uvs.y + (1.0 - offsets.y) * uvs.w);\n}";
17
- /** @internal */
18
- var msdfVertexShader = { name: name, shader: shader };
19
-
20
-
21
- /***/ })
22
-
23
- }]);
24
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2X2FkZG9uc19zcmNfbXNkZlRleHRfd2ViZ2xfdmVydGV4X3RzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFxQkE7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0FERE9OUy8uLi8uLi8uLi9kZXYvYWRkb25zL3NyYy9tc2RmVGV4dC93ZWJnbC92ZXJ0ZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXHJcbmNvbnN0IG5hbWUgPSBcIm1zZGZWZXJ0ZXhTaGFkZXJcIjtcclxuY29uc3Qgc2hhZGVyID0gYFxyXG5hdHRyaWJ1dGUgdmVjMiBvZmZzZXRzO1xyXG5hdHRyaWJ1dGUgdmVjNCB3b3JsZDA7XHJcbmF0dHJpYnV0ZSB2ZWM0IHdvcmxkMTtcclxuYXR0cmlidXRlIHZlYzQgd29ybGQyO1xyXG5hdHRyaWJ1dGUgdmVjNCB3b3JsZDM7XHJcbmF0dHJpYnV0ZSB2ZWM0IHV2cztcclxuXHJcbnVuaWZvcm0gbWF0NCBwYXJlbnRXb3JsZDtcclxudW5pZm9ybSBtYXQ0IHZpZXc7XHJcbnVuaWZvcm0gbWF0NCBwcm9qZWN0aW9uO1xyXG5cclxudmFyeWluZyB2ZWMyIGF0bGFzVVY7XHJcblxyXG52b2lkIG1haW4odm9pZCkge1xyXG4gICAgbWF0NCB3b3JsZCA9IG1hdDQod29ybGQwLCB3b3JsZDEsIHdvcmxkMiwgd29ybGQzKTtcclxuICAgIHZlYzMgdmlld1BvcyA9ICh2aWV3ICogcGFyZW50V29ybGQgKiB3b3JsZCAqICB2ZWM0KG9mZnNldHMueHkgLSB2ZWMyKDAuNSwgMC41KSwgMC4sIDEuMCkpLnh5ejsgXHJcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb24gKiB2ZWM0KHZpZXdQb3MsMS4wKTsgXHJcbiAgICBhdGxhc1VWID0gdmVjMih1dnMueCArIG9mZnNldHMueCAqIHV2cy56LCB1dnMueSArICgxLjAgLSBvZmZzZXRzLnkpICogdXZzLncpO1xyXG59YDtcclxuXHJcbi8qKiBAaW50ZXJuYWwgKi9cclxuZXhwb3J0IGNvbnN0IG1zZGZWZXJ0ZXhTaGFkZXIgPSB7IG5hbWUsIHNoYWRlciB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=
@@ -1,24 +0,0 @@
1
- "use strict";
2
- ((typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this)["webpackChunkADDONS"] = (typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this)["webpackChunkADDONS"] || []).push([["dev_addons_src_msdfText_webgpu_fragment_ts"],{
3
-
4
- /***/ "../../../dev/addons/src/msdfText/webgpu/fragment.ts":
5
- /*!***********************************************************!*\
6
- !*** ../../../dev/addons/src/msdfText/webgpu/fragment.ts ***!
7
- \***********************************************************/
8
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9
-
10
- __webpack_require__.r(__webpack_exports__);
11
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
12
- /* harmony export */ msdfFragmentShader: () => (/* binding */ msdfFragmentShader)
13
- /* harmony export */ });
14
- /* eslint-disable @typescript-eslint/naming-convention */
15
- var name = "msdfFragmentShader";
16
- var shader = "\nvar fontAtlas: texture_2d<f32>;\nvar fontAtlasSampler: sampler;\nuniform unitRange: vec2f;\nuniform texelSize: vec2f;\nuniform uColor: vec4f;\nuniform thickness: f32;\n\nvarying atlasUV: vec2f;\n\nfn median(msdf: vec3<f32>) -> f32 {\n let a = min(msdf.r, msdf.g);\n let b = max(msdf.r, msdf.g);\n return max(a, min(b, msdf.b));\n}\n\n@fragment\nfn main(input: FragmentInputs) -> FragmentOutputs {\n let uv = input.atlasUV;\n\n // Sample center and neighbors\n let sdfCenter = textureSample(fontAtlas, fontAtlasSampler, uv).rgb;\n let sdfLeft = textureSample(fontAtlas, fontAtlasSampler, uv - vec2<f32>(uniforms.texelSize.x, 0.0)).rgb;\n let sdfRight = textureSample(fontAtlas, fontAtlasSampler, uv + vec2<f32>(uniforms.texelSize.x, 0.0)).rgb;\n let sdfTop = textureSample(fontAtlas, fontAtlasSampler, uv - vec2<f32>(0.0, uniforms.texelSize.y)).rgb;\n let sdfBottom = textureSample(fontAtlas, fontAtlasSampler, uv + vec2<f32>(0.0, uniforms.texelSize.y)).rgb;\n\n let sdf = (sdfCenter + sdfLeft + sdfRight + sdfTop + sdfBottom) / 5.0;\n\n let dist = median(sdfCenter);\n\n // Estimate pixel range in screen space\n let dx = dpdx(uv);\n let dy = dpdy(uv);\n let screenTexSize = vec2<f32>(1.0) / vec2<f32>(length(dx), length(dy));\n let pxRange = max(0.5 * dot(uniforms.unitRange, screenTexSize), 1.0);\n\n let pxDist = pxRange * (dist - 0.5 + uniforms.thickness);\n let alpha = clamp(pxDist / length(dpdx(pxDist)) + 0.5, 0.0, 1.0);\n\n fragmentOutputs.color = vec4<f32>(uniforms.uColor.rgb, alpha * uniforms.uColor.a);\n}";
17
- /** @internal */
18
- var msdfFragmentShader = { name: name, shader: shader };
19
-
20
-
21
- /***/ })
22
-
23
- }]);
24
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2X2FkZG9uc19zcmNfbXNkZlRleHRfd2ViZ3B1X2ZyYWdtZW50X3RzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUEyQ0E7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovL0FERE9OUy8uLi8uLi8uLi9kZXYvYWRkb25zL3NyYy9tc2RmVGV4dC93ZWJncHUvZnJhZ21lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXHJcbmNvbnN0IG5hbWUgPSBcIm1zZGZGcmFnbWVudFNoYWRlclwiO1xyXG5jb25zdCBzaGFkZXIgPSBgXHJcbnZhciBmb250QXRsYXM6IHRleHR1cmVfMmQ8ZjMyPjtcclxudmFyIGZvbnRBdGxhc1NhbXBsZXI6IHNhbXBsZXI7XHJcbnVuaWZvcm0gdW5pdFJhbmdlOiB2ZWMyZjtcclxudW5pZm9ybSB0ZXhlbFNpemU6IHZlYzJmO1xyXG51bmlmb3JtIHVDb2xvcjogdmVjNGY7XHJcbnVuaWZvcm0gdGhpY2tuZXNzOiBmMzI7XHJcblxyXG52YXJ5aW5nIGF0bGFzVVY6IHZlYzJmO1xyXG5cclxuZm4gbWVkaWFuKG1zZGY6IHZlYzM8ZjMyPikgLT4gZjMyIHtcclxuICAgIGxldCBhID0gbWluKG1zZGYuciwgbXNkZi5nKTtcclxuICAgIGxldCBiID0gbWF4KG1zZGYuciwgbXNkZi5nKTtcclxuICAgIHJldHVybiBtYXgoYSwgbWluKGIsIG1zZGYuYikpO1xyXG59XHJcblxyXG5AZnJhZ21lbnRcclxuZm4gbWFpbihpbnB1dDogRnJhZ21lbnRJbnB1dHMpIC0+IEZyYWdtZW50T3V0cHV0cyB7XHJcbiAgICBsZXQgdXYgPSBpbnB1dC5hdGxhc1VWO1xyXG5cclxuICAgIC8vIFNhbXBsZSBjZW50ZXIgYW5kIG5laWdoYm9yc1xyXG4gICAgbGV0IHNkZkNlbnRlciA9IHRleHR1cmVTYW1wbGUoZm9udEF0bGFzLCBmb250QXRsYXNTYW1wbGVyLCB1dikucmdiO1xyXG4gICAgbGV0IHNkZkxlZnQgICA9IHRleHR1cmVTYW1wbGUoZm9udEF0bGFzLCBmb250QXRsYXNTYW1wbGVyLCB1diAtIHZlYzI8ZjMyPih1bmlmb3Jtcy50ZXhlbFNpemUueCwgMC4wKSkucmdiO1xyXG4gICAgbGV0IHNkZlJpZ2h0ICA9IHRleHR1cmVTYW1wbGUoZm9udEF0bGFzLCBmb250QXRsYXNTYW1wbGVyLCB1diArIHZlYzI8ZjMyPih1bmlmb3Jtcy50ZXhlbFNpemUueCwgMC4wKSkucmdiO1xyXG4gICAgbGV0IHNkZlRvcCAgICA9IHRleHR1cmVTYW1wbGUoZm9udEF0bGFzLCBmb250QXRsYXNTYW1wbGVyLCB1diAtIHZlYzI8ZjMyPigwLjAsIHVuaWZvcm1zLnRleGVsU2l6ZS55KSkucmdiO1xyXG4gICAgbGV0IHNkZkJvdHRvbSA9IHRleHR1cmVTYW1wbGUoZm9udEF0bGFzLCBmb250QXRsYXNTYW1wbGVyLCB1diArIHZlYzI8ZjMyPigwLjAsIHVuaWZvcm1zLnRleGVsU2l6ZS55KSkucmdiO1xyXG5cclxuICAgIGxldCBzZGYgPSAoc2RmQ2VudGVyICsgc2RmTGVmdCArIHNkZlJpZ2h0ICsgc2RmVG9wICsgc2RmQm90dG9tKSAvIDUuMDtcclxuXHJcbiAgICBsZXQgZGlzdCA9IG1lZGlhbihzZGZDZW50ZXIpO1xyXG5cclxuICAgIC8vIEVzdGltYXRlIHBpeGVsIHJhbmdlIGluIHNjcmVlbiBzcGFjZVxyXG4gICAgbGV0IGR4ID0gZHBkeCh1dik7XHJcbiAgICBsZXQgZHkgPSBkcGR5KHV2KTtcclxuICAgIGxldCBzY3JlZW5UZXhTaXplID0gdmVjMjxmMzI+KDEuMCkgLyB2ZWMyPGYzMj4obGVuZ3RoKGR4KSwgbGVuZ3RoKGR5KSk7XHJcbiAgICBsZXQgcHhSYW5nZSA9IG1heCgwLjUgKiBkb3QodW5pZm9ybXMudW5pdFJhbmdlLCBzY3JlZW5UZXhTaXplKSwgMS4wKTtcclxuXHJcbiAgICBsZXQgcHhEaXN0ID0gcHhSYW5nZSAqIChkaXN0IC0gMC41ICsgdW5pZm9ybXMudGhpY2tuZXNzKTtcclxuICAgIGxldCBhbHBoYSA9IGNsYW1wKHB4RGlzdCAvIGxlbmd0aChkcGR4KHB4RGlzdCkpICsgMC41LCAwLjAsIDEuMCk7XHJcblxyXG4gICAgZnJhZ21lbnRPdXRwdXRzLmNvbG9yID0gdmVjNDxmMzI+KHVuaWZvcm1zLnVDb2xvci5yZ2IsIGFscGhhICogdW5pZm9ybXMudUNvbG9yLmEpO1xyXG59YDtcclxuXHJcbi8qKiBAaW50ZXJuYWwgKi9cclxuZXhwb3J0IGNvbnN0IG1zZGZGcmFnbWVudFNoYWRlciA9IHsgbmFtZSwgc2hhZGVyIH07XHJcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==
@@ -1,24 +0,0 @@
1
- "use strict";
2
- ((typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this)["webpackChunkADDONS"] = (typeof self !== "undefined" ? self : typeof global !== "undefined" ? global : this)["webpackChunkADDONS"] || []).push([["dev_addons_src_msdfText_webgpu_vertex_ts"],{
3
-
4
- /***/ "../../../dev/addons/src/msdfText/webgpu/vertex.ts":
5
- /*!*********************************************************!*\
6
- !*** ../../../dev/addons/src/msdfText/webgpu/vertex.ts ***!
7
- \*********************************************************/
8
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9
-
10
- __webpack_require__.r(__webpack_exports__);
11
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
12
- /* harmony export */ msdfVertexShader: () => (/* binding */ msdfVertexShader)
13
- /* harmony export */ });
14
- /* eslint-disable @typescript-eslint/naming-convention */
15
- var name = "msdfVertexShader";
16
- var shader = "\nattribute offsets: vec2f;\nattribute world0: vec4f;\nattribute world1: vec4f;\nattribute world2: vec4f;\nattribute world3: vec4f;\nattribute uvs: vec4f;\n\nuniform parentWorld: mat4x4f;\nuniform view: mat4x4f;\nuniform projection: mat4x4f;\n\nvarying atlasUV: vec2f;\n\n@vertex\nfn main(input: VertexInputs) -> FragmentInputs {\n let world = mat4x4<f32>(input.world0, input.world1, input.world2, input.world3);\n let localOffset = vec4<f32>(input.offsets - vec2<f32>(0.5, 0.5), 0.0, 1.0);\n let viewPos = (uniforms.view * uniforms.parentWorld * world * localOffset).xyz;\n vertexOutputs.position = uniforms.projection * vec4<f32>(viewPos, 1.0);\n\n vertexOutputs.atlasUV = vec2<f32>(\n input.uvs.x + input.offsets.x * input.uvs.z,\n input.uvs.y + (1.0 - input.offsets.y) * input.uvs.w\n );\n}";
17
- /** @internal */
18
- var msdfVertexShader = { name: name, shader: shader };
19
-
20
-
21
- /***/ })
22
-
23
- }]);
24
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2X2FkZG9uc19zcmNfbXNkZlRleHRfd2ViZ3B1X3ZlcnRleF90cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBMkJBO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9BRERPTlMvLi4vLi4vLi4vZGV2L2FkZG9ucy9zcmMvbXNkZlRleHQvd2ViZ3B1L3ZlcnRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cclxuY29uc3QgbmFtZSA9IFwibXNkZlZlcnRleFNoYWRlclwiO1xyXG5jb25zdCBzaGFkZXIgPSBgXHJcbmF0dHJpYnV0ZSBvZmZzZXRzOiB2ZWMyZjtcclxuYXR0cmlidXRlIHdvcmxkMDogdmVjNGY7XHJcbmF0dHJpYnV0ZSB3b3JsZDE6IHZlYzRmO1xyXG5hdHRyaWJ1dGUgd29ybGQyOiB2ZWM0ZjtcclxuYXR0cmlidXRlIHdvcmxkMzogdmVjNGY7XHJcbmF0dHJpYnV0ZSB1dnM6IHZlYzRmO1xyXG5cclxudW5pZm9ybSBwYXJlbnRXb3JsZDogbWF0NHg0ZjtcclxudW5pZm9ybSB2aWV3OiBtYXQ0eDRmO1xyXG51bmlmb3JtIHByb2plY3Rpb246IG1hdDR4NGY7XHJcblxyXG52YXJ5aW5nIGF0bGFzVVY6IHZlYzJmO1xyXG5cclxuQHZlcnRleFxyXG5mbiBtYWluKGlucHV0OiBWZXJ0ZXhJbnB1dHMpIC0+IEZyYWdtZW50SW5wdXRzIHtcclxuICAgIGxldCB3b3JsZCA9IG1hdDR4NDxmMzI+KGlucHV0LndvcmxkMCwgaW5wdXQud29ybGQxLCBpbnB1dC53b3JsZDIsIGlucHV0LndvcmxkMyk7XHJcbiAgICBsZXQgbG9jYWxPZmZzZXQgPSB2ZWM0PGYzMj4oaW5wdXQub2Zmc2V0cyAtIHZlYzI8ZjMyPigwLjUsIDAuNSksIDAuMCwgMS4wKTtcclxuICAgIGxldCB2aWV3UG9zID0gKHVuaWZvcm1zLnZpZXcgKiB1bmlmb3Jtcy5wYXJlbnRXb3JsZCAqIHdvcmxkICogbG9jYWxPZmZzZXQpLnh5ejtcclxuICAgIHZlcnRleE91dHB1dHMucG9zaXRpb24gPSB1bmlmb3Jtcy5wcm9qZWN0aW9uICogdmVjNDxmMzI+KHZpZXdQb3MsIDEuMCk7XHJcblxyXG4gICAgdmVydGV4T3V0cHV0cy5hdGxhc1VWID0gdmVjMjxmMzI+KFxyXG4gICAgICAgIGlucHV0LnV2cy54ICsgaW5wdXQub2Zmc2V0cy54ICogaW5wdXQudXZzLnosXHJcbiAgICAgICAgaW5wdXQudXZzLnkgKyAoMS4wIC0gaW5wdXQub2Zmc2V0cy55KSAqIGlucHV0LnV2cy53XHJcbiAgICApO1xyXG59YDtcclxuXHJcbi8qKiBAaW50ZXJuYWwgKi9cclxuZXhwb3J0IGNvbnN0IG1zZGZWZXJ0ZXhTaGFkZXIgPSB7IG5hbWUsIHNoYWRlciB9O1xyXG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=