@empty-sekai/sekai-custom-profile-sdk 0.3.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.
- package/LICENSE +235 -0
- package/LICENSE-EXCEPTION +32 -0
- package/NOTICE +11 -0
- package/README.en.md +456 -0
- package/README.md +458 -0
- package/dist/allium_renderer_wasm.js +14 -0
- package/dist/allium_renderer_wasm.wasm +0 -0
- package/dist/authoring.d.ts +14 -0
- package/dist/authoring.js +34 -0
- package/dist/cache/glyphPersistentCache.d.ts +145 -0
- package/dist/cache/glyphPersistentCache.js +346 -0
- package/dist/cache/indexedDbGlyphRecordStore.d.ts +26 -0
- package/dist/cache/indexedDbGlyphRecordStore.js +214 -0
- package/dist/cache/sessionImageResourceCache.d.ts +39 -0
- package/dist/cache/sessionImageResourceCache.js +156 -0
- package/dist/emscripten.d.ts +11 -0
- package/dist/emscripten.js +1 -0
- package/dist/fontProvider.d.ts +36 -0
- package/dist/fontProvider.js +84 -0
- package/dist/fontSdfAtlas.d.ts +92 -0
- package/dist/fontSdfAtlas.js +296 -0
- package/dist/gpu/browserSemanticResources.d.ts +64 -0
- package/dist/gpu/browserSemanticResources.js +232 -0
- package/dist/gpu/generalTextRenderPlacement.d.ts +8 -0
- package/dist/gpu/generalTextRenderPlacement.js +131 -0
- package/dist/gpu/previewTransformTextureLayout.d.ts +1 -0
- package/dist/gpu/previewTransformTextureLayout.js +12 -0
- package/dist/gpu/semanticCommandGeometry.d.ts +21 -0
- package/dist/gpu/semanticCommandGeometry.js +226 -0
- package/dist/gpu/semanticCommandPlanner.d.ts +131 -0
- package/dist/gpu/semanticCommandPlanner.js +203 -0
- package/dist/gpu/semanticTextGlyphBridge.d.ts +3 -0
- package/dist/gpu/semanticTextGlyphBridge.js +22 -0
- package/dist/gpu/semanticWebglSceneRenderer.d.ts +70 -0
- package/dist/gpu/semanticWebglSceneRenderer.js +211 -0
- package/dist/gpu/slotRanges.d.ts +5 -0
- package/dist/gpu/slotRanges.js +14 -0
- package/dist/gpu/webglSdfAtlasTexture.d.ts +17 -0
- package/dist/gpu/webglSdfAtlasTexture.js +72 -0
- package/dist/gpu/webglSdfGlyphPipeline.d.ts +26 -0
- package/dist/gpu/webglSdfGlyphPipeline.js +267 -0
- package/dist/gpu/webglSemanticCommandExecutor.d.ts +79 -0
- package/dist/gpu/webglSemanticCommandExecutor.js +686 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +8 -0
- package/dist/interaction/numericTextRegions.d.ts +46 -0
- package/dist/interaction/numericTextRegions.js +44 -0
- package/dist/localizationProvider.d.ts +33 -0
- package/dist/localizationProvider.js +74 -0
- package/dist/originPrebuiltSdfAtlasPackage.d.ts +39 -0
- package/dist/originPrebuiltSdfAtlasPackage.js +316 -0
- package/dist/prebuiltSdfAtlas.d.ts +36 -0
- package/dist/prebuiltSdfAtlas.js +261 -0
- package/dist/protocol.d.ts +456 -0
- package/dist/protocol.js +1 -0
- package/dist/renderer.d.ts +218 -0
- package/dist/renderer.js +641 -0
- package/dist/resourceProvider.d.ts +24 -0
- package/dist/resourceProvider.js +41 -0
- package/dist/telemetry/rendererTelemetry.d.ts +158 -0
- package/dist/telemetry/rendererTelemetry.js +232 -0
- package/dist/third-party/freetype/FTL.txt +169 -0
- package/dist/types/atlas.d.ts +90 -0
- package/dist/types/atlas.js +1 -0
- package/dist/types/authoring.d.ts +81 -0
- package/dist/types/authoring.js +1 -0
- package/dist/types/core.d.ts +128 -0
- package/dist/types/core.js +1 -0
- package/dist/types/freeType.d.ts +54 -0
- package/dist/types/freeType.js +13 -0
- package/dist/types/glyph.d.ts +33 -0
- package/dist/types/glyph.js +1 -0
- package/dist/types/layout.d.ts +25 -0
- package/dist/types/layout.js +1 -0
- package/dist/types/text.d.ts +28 -0
- package/dist/types/text.js +1 -0
- package/dist/worker/glyphWorkScheduler.d.ts +29 -0
- package/dist/worker/glyphWorkScheduler.js +107 -0
- package/dist/worker-client.d.ts +114 -0
- package/dist/worker-client.js +413 -0
- package/dist/worker.d.ts +1 -0
- package/dist/worker.js +708 -0
- package/package.json +46 -0
- package/src/atlas.rs +652 -0
- package/src/authoring.ts +42 -0
- package/src/authoring_runtime.rs +303 -0
- package/src/cache/glyphPersistentCache.ts +463 -0
- package/src/cache/indexedDbGlyphRecordStore.ts +238 -0
- package/src/cache/sessionImageResourceCache.ts +186 -0
- package/src/edt.rs +97 -0
- package/src/emscripten.ts +17 -0
- package/src/fontProvider.ts +127 -0
- package/src/fontSdfAtlas.ts +431 -0
- package/src/geometry.rs +149 -0
- package/src/glyph_plan.rs +226 -0
- package/src/gpu/browserSemanticResources.ts +294 -0
- package/src/gpu/generalTextRenderPlacement.ts +175 -0
- package/src/gpu/previewTransformTextureLayout.ts +12 -0
- package/src/gpu/semanticCommandGeometry.ts +260 -0
- package/src/gpu/semanticCommandPlanner.ts +280 -0
- package/src/gpu/semanticTextGlyphBridge.ts +35 -0
- package/src/gpu/semanticWebglSceneRenderer.ts +261 -0
- package/src/gpu/slotRanges.ts +15 -0
- package/src/gpu/webglSdfAtlasTexture.ts +69 -0
- package/src/gpu/webglSdfGlyphPipeline.ts +299 -0
- package/src/gpu/webglSemanticCommandExecutor.ts +739 -0
- package/src/index.ts +84 -0
- package/src/interaction/numericTextRegions.ts +80 -0
- package/src/layout.rs +1882 -0
- package/src/lib.rs +1443 -0
- package/src/localizationProvider.ts +113 -0
- package/src/main.rs +55 -0
- package/src/masterdata_runtime.rs +496 -0
- package/src/originPrebuiltSdfAtlasPackage.ts +403 -0
- package/src/prebuiltSdfAtlas.ts +306 -0
- package/src/protocol.ts +150 -0
- package/src/renderer.ts +792 -0
- package/src/resourceProvider.ts +69 -0
- package/src/scene.rs +665 -0
- package/src/telemetry/rendererTelemetry.ts +358 -0
- package/src/types/atlas.ts +80 -0
- package/src/types/authoring.ts +85 -0
- package/src/types/core.ts +110 -0
- package/src/types/freeType.ts +63 -0
- package/src/types/glyph.ts +33 -0
- package/src/types/layout.ts +28 -0
- package/src/types/text.ts +28 -0
- package/src/worker/glyphWorkScheduler.ts +130 -0
- package/src/worker-client.ts +484 -0
- package/src/worker.ts +895 -0
package/src/index.ts
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
export {
|
|
2
|
+
BrowserRenderer,
|
|
3
|
+
BrowserRendererError,
|
|
4
|
+
BrowserScene,
|
|
5
|
+
} from "./renderer.js";
|
|
6
|
+
export { BrowserAuthoringClient } from "./authoring.js";
|
|
7
|
+
export type {
|
|
8
|
+
BrowserRendererOptions,
|
|
9
|
+
MasterDataTableLoader,
|
|
10
|
+
MasterDataTableRequest,
|
|
11
|
+
ProfileSceneCreateOptions,
|
|
12
|
+
} from "./renderer.js";
|
|
13
|
+
export type {
|
|
14
|
+
ProvidedResource,
|
|
15
|
+
ResourceContext,
|
|
16
|
+
ResourceDescriptor,
|
|
17
|
+
ResourceProvider,
|
|
18
|
+
ResourceSource,
|
|
19
|
+
} from "./resourceProvider.js";
|
|
20
|
+
export { LocalizationProviderManager } from "./localizationProvider.js";
|
|
21
|
+
export type {
|
|
22
|
+
LocalizationContext,
|
|
23
|
+
LocalizationProvider,
|
|
24
|
+
LocalizationProviderStats,
|
|
25
|
+
LocalizationRequest,
|
|
26
|
+
} from "./localizationProvider.js";
|
|
27
|
+
export { FontProviderManager } from "./fontProvider.js";
|
|
28
|
+
export type {
|
|
29
|
+
FontContext,
|
|
30
|
+
FontProvider,
|
|
31
|
+
FontProviderStats,
|
|
32
|
+
FontRequest,
|
|
33
|
+
ProvidedFont,
|
|
34
|
+
} from "./fontProvider.js";
|
|
35
|
+
export {
|
|
36
|
+
createHttpPrebuiltSdfAtlasProvider,
|
|
37
|
+
isValidPrebuiltSdfAtlasManifest,
|
|
38
|
+
} from "./prebuiltSdfAtlas.js";
|
|
39
|
+
export type {
|
|
40
|
+
PrebuiltSdfAtlasGlyph,
|
|
41
|
+
PrebuiltSdfAtlasManifest,
|
|
42
|
+
PrebuiltSdfAtlasPage,
|
|
43
|
+
PrebuiltSdfAtlasProvider,
|
|
44
|
+
} from "./prebuiltSdfAtlas.js";
|
|
45
|
+
export {
|
|
46
|
+
createOriginPrebuiltSdfAtlasPackage,
|
|
47
|
+
PrebuiltSdfAtlasStorageError,
|
|
48
|
+
} from "./originPrebuiltSdfAtlasPackage.js";
|
|
49
|
+
export type {
|
|
50
|
+
OriginPrebuiltSdfAtlasPackage,
|
|
51
|
+
PrebuiltSdfAtlasInstallOptions,
|
|
52
|
+
PrebuiltSdfAtlasInstallProgress,
|
|
53
|
+
PrebuiltSdfAtlasPackageStatus,
|
|
54
|
+
PrebuiltSdfAtlasStorageErrorCode,
|
|
55
|
+
} from "./originPrebuiltSdfAtlasPackage.js";
|
|
56
|
+
export type {
|
|
57
|
+
CoreControlBinding,
|
|
58
|
+
CoreInteractionRegion,
|
|
59
|
+
CoreSceneDelta,
|
|
60
|
+
CoreSceneDump,
|
|
61
|
+
StableId,
|
|
62
|
+
} from "./types/core.js";
|
|
63
|
+
export type {
|
|
64
|
+
RendererFontContract,
|
|
65
|
+
RendererWorkerStats,
|
|
66
|
+
} from "./protocol.js";
|
|
67
|
+
export type {
|
|
68
|
+
RendererMasterData,
|
|
69
|
+
} from "./worker-client.js";
|
|
70
|
+
export { RendererAuthoringDocument } from "./worker-client.js";
|
|
71
|
+
export { AUTHORING_CHECKPOINT_SCHEMA } from "./types/authoring.js";
|
|
72
|
+
export type {
|
|
73
|
+
AuthoringCheckpoint,
|
|
74
|
+
AuthoringCategory,
|
|
75
|
+
AuthoringChangeKind,
|
|
76
|
+
AuthoringCommand,
|
|
77
|
+
AuthoringDelta,
|
|
78
|
+
AuthoringElementChange,
|
|
79
|
+
AuthoringSelection,
|
|
80
|
+
AuthoringElementId,
|
|
81
|
+
AuthoringPageChange,
|
|
82
|
+
AuthoringPageChangeKind,
|
|
83
|
+
GameProfileDocument,
|
|
84
|
+
} from "./types/authoring.js";
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { GlyphInstance } from "../types/glyph.js";
|
|
2
|
+
|
|
3
|
+
type NumericRun = { text: string; plain_start: number; plain_end: number };
|
|
4
|
+
type NumericCommand = {
|
|
5
|
+
id: string;
|
|
6
|
+
layer_id: string;
|
|
7
|
+
clip?: Array<[number, number]> | null;
|
|
8
|
+
numeric_text_runs?: NumericRun[];
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export type NumericTextRegion = {
|
|
12
|
+
id: string;
|
|
13
|
+
layer_id: string;
|
|
14
|
+
role: "numeric_run";
|
|
15
|
+
bounds: { x: number; y: number; width: number; height: number };
|
|
16
|
+
quad: [[number, number], [number, number], [number, number], [number, number]];
|
|
17
|
+
hit_geometry: [[number, number], [number, number], [number, number], [number, number]];
|
|
18
|
+
clip: Array<[number, number]> | null;
|
|
19
|
+
resolved_data: { text: string; plain_start: number; plain_end: number };
|
|
20
|
+
capabilities: [];
|
|
21
|
+
render_mask: boolean;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export type NumericRegionRuntimeState = {
|
|
25
|
+
layerTransform: { dx: number; dy: number };
|
|
26
|
+
commandTransform: { dx: number; dy: number };
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export function buildNumericTextRegions(
|
|
30
|
+
command: NumericCommand,
|
|
31
|
+
instances: Array<Pick<GlyphInstance, "layerId" | "plainTextIndex" | "deviceCharQuad">>,
|
|
32
|
+
renderMask: boolean,
|
|
33
|
+
runtimeState?: NumericRegionRuntimeState,
|
|
34
|
+
): NumericTextRegion[] {
|
|
35
|
+
return (command.numeric_text_runs ?? []).flatMap((run) => {
|
|
36
|
+
const points = instances
|
|
37
|
+
.filter((instance) => instance.layerId === command.id && instance.plainTextIndex >= run.plain_start && instance.plainTextIndex < run.plain_end)
|
|
38
|
+
.flatMap((instance) => instance.deviceCharQuad[1]);
|
|
39
|
+
if (points.length === 0) return [];
|
|
40
|
+
const minX = Math.min(...points.map(([x]) => x));
|
|
41
|
+
const minY = Math.min(...points.map(([, y]) => y));
|
|
42
|
+
const maxX = Math.max(...points.map(([x]) => x));
|
|
43
|
+
const maxY = Math.max(...points.map(([, y]) => y));
|
|
44
|
+
const quad: NumericTextRegion["quad"] = [[minX, minY], [maxX, minY], [maxX, maxY], [minX, maxY]];
|
|
45
|
+
const region: NumericTextRegion = {
|
|
46
|
+
id: `${command.id}:numeric:${run.plain_start}:${run.plain_end}`,
|
|
47
|
+
layer_id: command.layer_id,
|
|
48
|
+
role: "numeric_run",
|
|
49
|
+
bounds: { x: minX, y: minY, width: maxX - minX, height: maxY - minY },
|
|
50
|
+
quad,
|
|
51
|
+
hit_geometry: quad,
|
|
52
|
+
clip: command.clip ?? null,
|
|
53
|
+
resolved_data: { text: run.text, plain_start: run.plain_start, plain_end: run.plain_end },
|
|
54
|
+
capabilities: [],
|
|
55
|
+
render_mask: renderMask,
|
|
56
|
+
};
|
|
57
|
+
return [runtimeState ? applyNumericRegionRuntimeState(region, runtimeState) : region];
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export function applyNumericRegionRuntimeState(
|
|
62
|
+
region: NumericTextRegion,
|
|
63
|
+
state: NumericRegionRuntimeState,
|
|
64
|
+
): NumericTextRegion {
|
|
65
|
+
const dx = state.layerTransform.dx + state.commandTransform.dx;
|
|
66
|
+
const dy = state.layerTransform.dy + state.commandTransform.dy;
|
|
67
|
+
const translate = ([x, y]: [number, number]): [number, number] => [x + dx, y + dy];
|
|
68
|
+
const translateClip = ([x, y]: [number, number]): [number, number] => [
|
|
69
|
+
x + state.layerTransform.dx,
|
|
70
|
+
y + state.layerTransform.dy,
|
|
71
|
+
];
|
|
72
|
+
const quad = region.quad.map(translate) as NumericTextRegion["quad"];
|
|
73
|
+
return {
|
|
74
|
+
...region,
|
|
75
|
+
bounds: { ...region.bounds, x: region.bounds.x + dx, y: region.bounds.y + dy },
|
|
76
|
+
quad,
|
|
77
|
+
hit_geometry: quad,
|
|
78
|
+
clip: region.clip?.map(translateClip) ?? null,
|
|
79
|
+
};
|
|
80
|
+
}
|