@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.
Files changed (130) hide show
  1. package/LICENSE +235 -0
  2. package/LICENSE-EXCEPTION +32 -0
  3. package/NOTICE +11 -0
  4. package/README.en.md +456 -0
  5. package/README.md +458 -0
  6. package/dist/allium_renderer_wasm.js +14 -0
  7. package/dist/allium_renderer_wasm.wasm +0 -0
  8. package/dist/authoring.d.ts +14 -0
  9. package/dist/authoring.js +34 -0
  10. package/dist/cache/glyphPersistentCache.d.ts +145 -0
  11. package/dist/cache/glyphPersistentCache.js +346 -0
  12. package/dist/cache/indexedDbGlyphRecordStore.d.ts +26 -0
  13. package/dist/cache/indexedDbGlyphRecordStore.js +214 -0
  14. package/dist/cache/sessionImageResourceCache.d.ts +39 -0
  15. package/dist/cache/sessionImageResourceCache.js +156 -0
  16. package/dist/emscripten.d.ts +11 -0
  17. package/dist/emscripten.js +1 -0
  18. package/dist/fontProvider.d.ts +36 -0
  19. package/dist/fontProvider.js +84 -0
  20. package/dist/fontSdfAtlas.d.ts +92 -0
  21. package/dist/fontSdfAtlas.js +296 -0
  22. package/dist/gpu/browserSemanticResources.d.ts +64 -0
  23. package/dist/gpu/browserSemanticResources.js +232 -0
  24. package/dist/gpu/generalTextRenderPlacement.d.ts +8 -0
  25. package/dist/gpu/generalTextRenderPlacement.js +131 -0
  26. package/dist/gpu/previewTransformTextureLayout.d.ts +1 -0
  27. package/dist/gpu/previewTransformTextureLayout.js +12 -0
  28. package/dist/gpu/semanticCommandGeometry.d.ts +21 -0
  29. package/dist/gpu/semanticCommandGeometry.js +226 -0
  30. package/dist/gpu/semanticCommandPlanner.d.ts +131 -0
  31. package/dist/gpu/semanticCommandPlanner.js +203 -0
  32. package/dist/gpu/semanticTextGlyphBridge.d.ts +3 -0
  33. package/dist/gpu/semanticTextGlyphBridge.js +22 -0
  34. package/dist/gpu/semanticWebglSceneRenderer.d.ts +70 -0
  35. package/dist/gpu/semanticWebglSceneRenderer.js +211 -0
  36. package/dist/gpu/slotRanges.d.ts +5 -0
  37. package/dist/gpu/slotRanges.js +14 -0
  38. package/dist/gpu/webglSdfAtlasTexture.d.ts +17 -0
  39. package/dist/gpu/webglSdfAtlasTexture.js +72 -0
  40. package/dist/gpu/webglSdfGlyphPipeline.d.ts +26 -0
  41. package/dist/gpu/webglSdfGlyphPipeline.js +267 -0
  42. package/dist/gpu/webglSemanticCommandExecutor.d.ts +79 -0
  43. package/dist/gpu/webglSemanticCommandExecutor.js +686 -0
  44. package/dist/index.d.ts +18 -0
  45. package/dist/index.js +8 -0
  46. package/dist/interaction/numericTextRegions.d.ts +46 -0
  47. package/dist/interaction/numericTextRegions.js +44 -0
  48. package/dist/localizationProvider.d.ts +33 -0
  49. package/dist/localizationProvider.js +74 -0
  50. package/dist/originPrebuiltSdfAtlasPackage.d.ts +39 -0
  51. package/dist/originPrebuiltSdfAtlasPackage.js +316 -0
  52. package/dist/prebuiltSdfAtlas.d.ts +36 -0
  53. package/dist/prebuiltSdfAtlas.js +261 -0
  54. package/dist/protocol.d.ts +456 -0
  55. package/dist/protocol.js +1 -0
  56. package/dist/renderer.d.ts +218 -0
  57. package/dist/renderer.js +641 -0
  58. package/dist/resourceProvider.d.ts +24 -0
  59. package/dist/resourceProvider.js +41 -0
  60. package/dist/telemetry/rendererTelemetry.d.ts +158 -0
  61. package/dist/telemetry/rendererTelemetry.js +232 -0
  62. package/dist/third-party/freetype/FTL.txt +169 -0
  63. package/dist/types/atlas.d.ts +90 -0
  64. package/dist/types/atlas.js +1 -0
  65. package/dist/types/authoring.d.ts +81 -0
  66. package/dist/types/authoring.js +1 -0
  67. package/dist/types/core.d.ts +128 -0
  68. package/dist/types/core.js +1 -0
  69. package/dist/types/freeType.d.ts +54 -0
  70. package/dist/types/freeType.js +13 -0
  71. package/dist/types/glyph.d.ts +33 -0
  72. package/dist/types/glyph.js +1 -0
  73. package/dist/types/layout.d.ts +25 -0
  74. package/dist/types/layout.js +1 -0
  75. package/dist/types/text.d.ts +28 -0
  76. package/dist/types/text.js +1 -0
  77. package/dist/worker/glyphWorkScheduler.d.ts +29 -0
  78. package/dist/worker/glyphWorkScheduler.js +107 -0
  79. package/dist/worker-client.d.ts +114 -0
  80. package/dist/worker-client.js +413 -0
  81. package/dist/worker.d.ts +1 -0
  82. package/dist/worker.js +708 -0
  83. package/package.json +46 -0
  84. package/src/atlas.rs +652 -0
  85. package/src/authoring.ts +42 -0
  86. package/src/authoring_runtime.rs +303 -0
  87. package/src/cache/glyphPersistentCache.ts +463 -0
  88. package/src/cache/indexedDbGlyphRecordStore.ts +238 -0
  89. package/src/cache/sessionImageResourceCache.ts +186 -0
  90. package/src/edt.rs +97 -0
  91. package/src/emscripten.ts +17 -0
  92. package/src/fontProvider.ts +127 -0
  93. package/src/fontSdfAtlas.ts +431 -0
  94. package/src/geometry.rs +149 -0
  95. package/src/glyph_plan.rs +226 -0
  96. package/src/gpu/browserSemanticResources.ts +294 -0
  97. package/src/gpu/generalTextRenderPlacement.ts +175 -0
  98. package/src/gpu/previewTransformTextureLayout.ts +12 -0
  99. package/src/gpu/semanticCommandGeometry.ts +260 -0
  100. package/src/gpu/semanticCommandPlanner.ts +280 -0
  101. package/src/gpu/semanticTextGlyphBridge.ts +35 -0
  102. package/src/gpu/semanticWebglSceneRenderer.ts +261 -0
  103. package/src/gpu/slotRanges.ts +15 -0
  104. package/src/gpu/webglSdfAtlasTexture.ts +69 -0
  105. package/src/gpu/webglSdfGlyphPipeline.ts +299 -0
  106. package/src/gpu/webglSemanticCommandExecutor.ts +739 -0
  107. package/src/index.ts +84 -0
  108. package/src/interaction/numericTextRegions.ts +80 -0
  109. package/src/layout.rs +1882 -0
  110. package/src/lib.rs +1443 -0
  111. package/src/localizationProvider.ts +113 -0
  112. package/src/main.rs +55 -0
  113. package/src/masterdata_runtime.rs +496 -0
  114. package/src/originPrebuiltSdfAtlasPackage.ts +403 -0
  115. package/src/prebuiltSdfAtlas.ts +306 -0
  116. package/src/protocol.ts +150 -0
  117. package/src/renderer.ts +792 -0
  118. package/src/resourceProvider.ts +69 -0
  119. package/src/scene.rs +665 -0
  120. package/src/telemetry/rendererTelemetry.ts +358 -0
  121. package/src/types/atlas.ts +80 -0
  122. package/src/types/authoring.ts +85 -0
  123. package/src/types/core.ts +110 -0
  124. package/src/types/freeType.ts +63 -0
  125. package/src/types/glyph.ts +33 -0
  126. package/src/types/layout.ts +28 -0
  127. package/src/types/text.ts +28 -0
  128. package/src/worker/glyphWorkScheduler.ts +130 -0
  129. package/src/worker-client.ts +484 -0
  130. package/src/worker.ts +895 -0
@@ -0,0 +1,218 @@
1
+ import { type BrowserSemanticResourceSet } from "./gpu/browserSemanticResources.js";
2
+ import { type ResourceProvider } from "./resourceProvider.js";
3
+ import { type LocalizationProvider } from "./localizationProvider.js";
4
+ import { type FontProvider } from "./fontProvider.js";
5
+ import { SemanticWebglSceneRenderer } from "./gpu/semanticWebglSceneRenderer.js";
6
+ import type { NumericTextRegion } from "./interaction/numericTextRegions.js";
7
+ import { type PersistentCacheSelection, type SdfAtlas, type SdfBackend } from "./fontSdfAtlas.js";
8
+ import { type PrebuiltSdfAtlasProvider } from "./prebuiltSdfAtlas.js";
9
+ import { RendererMasterData, RendererScene, type RendererWorkerClientOptions } from "./worker-client.js";
10
+ import type { CoreSceneDelta, CoreSceneDump, StableId } from "./types/core.js";
11
+ import { type RendererTelemetryOptions, type RendererRuntimeSnapshot } from "./telemetry/rendererTelemetry.js";
12
+ export type BrowserRendererOptions = RendererWorkerClientOptions & {
13
+ canvas: HTMLCanvasElement | OffscreenCanvas;
14
+ region: string;
15
+ resourceProvider: ResourceProvider;
16
+ resourceConcurrency?: number;
17
+ localizationProvider?: LocalizationProvider;
18
+ localizationConcurrency?: number;
19
+ fontProvider?: FontProvider;
20
+ fontConcurrency?: number;
21
+ prebuiltSdfAtlasProvider?: PrebuiltSdfAtlasProvider;
22
+ telemetry?: RendererTelemetryOptions;
23
+ };
24
+ export type MasterDataTableRequest = {
25
+ table: string;
26
+ region: string;
27
+ revision: string;
28
+ };
29
+ export type MasterDataTableLoader = (request: MasterDataTableRequest, context: {
30
+ signal: AbortSignal;
31
+ }) => Promise<unknown>;
32
+ export type ProfileSceneCreateOptions = {
33
+ masterData: RendererMasterData;
34
+ documentKey: string;
35
+ card: unknown;
36
+ profile?: unknown;
37
+ locale?: string;
38
+ frameMode?: "final" | "animate";
39
+ signal?: AbortSignal;
40
+ sdf?: {
41
+ backend?: SdfBackend;
42
+ supersample?: number;
43
+ persistence?: PersistentCacheSelection;
44
+ };
45
+ };
46
+ /**
47
+ * WebGL2-only browser renderer. Rust/WASM scene, text layout, and glyph work
48
+ * stay in one worker; the main thread owns resource decoding and GPU state.
49
+ */
50
+ export declare class BrowserRenderer {
51
+ private gl;
52
+ private readonly worker;
53
+ private readonly region;
54
+ private readonly prebuiltSdfAtlasProvider?;
55
+ private readonly resources;
56
+ private readonly localizations;
57
+ private readonly providedFonts;
58
+ private readonly fonts;
59
+ private readonly fontRegistrations;
60
+ private readonly scenes;
61
+ private readonly canvas;
62
+ private readonly telemetryOptions;
63
+ private contextLost;
64
+ private restorePromise;
65
+ private readonly lifetime;
66
+ private destroyed;
67
+ private constructor();
68
+ static create(options: BrowserRendererOptions): Promise<BrowserRenderer>;
69
+ createProfileScene(options: ProfileSceneCreateOptions): Promise<BrowserScene>;
70
+ createMasterData(revision: string): Promise<RendererMasterData>;
71
+ loadMasterData(revision: string, loadTable: MasterDataTableLoader, options?: {
72
+ signal?: AbortSignal;
73
+ concurrency?: number;
74
+ }): Promise<RendererMasterData>;
75
+ registerFont(font: {
76
+ family: string;
77
+ bytes: ArrayBuffer;
78
+ }): Promise<void>;
79
+ stats(): Promise<{
80
+ worker: import("./protocol.js").RendererWorkerStats;
81
+ resources: {
82
+ provider: {
83
+ active: number;
84
+ queued: number;
85
+ limit: number;
86
+ peak: number;
87
+ requested: number;
88
+ loaded: number;
89
+ failures: number;
90
+ cancellations: number;
91
+ encodedBytes: number;
92
+ resolveMs: number;
93
+ };
94
+ entries: number;
95
+ bytes: number;
96
+ pinned: number;
97
+ loads: number;
98
+ hits: number;
99
+ evictions: number;
100
+ };
101
+ fonts: {
102
+ registered: number;
103
+ provider: import("./fontProvider.js").FontProviderStats | null;
104
+ };
105
+ localizations: import("./localizationProvider.js").LocalizationProviderStats | null;
106
+ scenes: {
107
+ active: number;
108
+ contextLost: number;
109
+ };
110
+ }>;
111
+ restoreContext(): Promise<void>;
112
+ destroy(): void;
113
+ private assertAlive;
114
+ private readonly handleContextLost;
115
+ private readonly handleContextRestored;
116
+ }
117
+ export declare class BrowserScene {
118
+ private readonly core;
119
+ private readonly renderer;
120
+ private readonly resources;
121
+ private readonly atlas;
122
+ private destroyed;
123
+ private readonly runtime;
124
+ private readonly onDestroy;
125
+ constructor(core: RendererScene, renderer: SemanticWebglSceneRenderer, resources: BrowserSemanticResourceSet, atlas: SdfAtlas | null, options: {
126
+ dynamicProgramCount: number;
127
+ canvas: HTMLCanvasElement | OffscreenCanvas;
128
+ telemetry?: RendererTelemetryOptions;
129
+ bootstrap: RendererRuntimeSnapshot["bootstrap"];
130
+ onDestroy?: (scene: BrowserScene) => void;
131
+ });
132
+ /** Whether this scene owns renderer-driven programs that require timeline advancement. */
133
+ readonly animated: boolean;
134
+ /** Number of renderer-compiled dynamic programs retained by this scene. */
135
+ readonly dynamicProgramCount: number;
136
+ private readonly canvas;
137
+ draw(): import("./gpu/webglSemanticCommandExecutor.js").SemanticGpuMetrics;
138
+ /** Draws the current frame and encodes an exact 1830×812 PNG snapshot. */
139
+ exportPng(): Promise<Blob>;
140
+ advance(tick: number): Promise<{
141
+ delta: CoreSceneDelta;
142
+ gpu: {
143
+ commandMaskUploadBytes: number;
144
+ commandStateUploadBytes: number;
145
+ stateUploadBytes: number;
146
+ maskUploadBytes: number;
147
+ };
148
+ }>;
149
+ setLayerVisible(layerId: StableId, visible: boolean): Promise<{
150
+ delta: CoreSceneDelta;
151
+ gpu: {
152
+ commandMaskUploadBytes: number;
153
+ commandStateUploadBytes: number;
154
+ stateUploadBytes: number;
155
+ maskUploadBytes: number;
156
+ };
157
+ }>;
158
+ setLayerMasks(expectedRevision: number, overrides: Array<{
159
+ layerId: StableId;
160
+ visible: boolean | null;
161
+ }>): Promise<{
162
+ delta: CoreSceneDelta;
163
+ gpu: {
164
+ commandMaskUploadBytes: number;
165
+ commandStateUploadBytes: number;
166
+ stateUploadBytes: number;
167
+ maskUploadBytes: number;
168
+ };
169
+ }>;
170
+ setTab(controlId: StableId, value: string): Promise<{
171
+ delta: CoreSceneDelta;
172
+ gpu: {
173
+ commandMaskUploadBytes: number;
174
+ commandStateUploadBytes: number;
175
+ stateUploadBytes: number;
176
+ maskUploadBytes: number;
177
+ };
178
+ }>;
179
+ setScrollOffset(controlId: StableId, offset: number): Promise<{
180
+ delta: CoreSceneDelta;
181
+ gpu: {
182
+ commandMaskUploadBytes: number;
183
+ commandStateUploadBytes: number;
184
+ stateUploadBytes: number;
185
+ maskUploadBytes: number;
186
+ };
187
+ }>;
188
+ scrollBy(controlId: StableId, delta: number): Promise<{
189
+ delta: CoreSceneDelta;
190
+ gpu: {
191
+ commandMaskUploadBytes: number;
192
+ commandStateUploadBytes: number;
193
+ stateUploadBytes: number;
194
+ maskUploadBytes: number;
195
+ };
196
+ }>;
197
+ setLayerPreviewTransform(layerId: StableId, matrix: [number, number, number, number, number, number] | null): {
198
+ gpu: {
199
+ previewUploadBytes: number;
200
+ };
201
+ draw: import("./gpu/webglSemanticCommandExecutor.js").SemanticGpuMetrics;
202
+ };
203
+ dump(): Promise<CoreSceneDump & {
204
+ numeric_text_regions: NumericTextRegion[];
205
+ }>;
206
+ destroy(): Promise<void>;
207
+ notifyContextLost(): void;
208
+ notifyContextRestoreFailed(restoreMs: number): void;
209
+ restoreContext(gl: WebGL2RenderingContext): Promise<void>;
210
+ stats(): RendererRuntimeSnapshot;
211
+ private apply;
212
+ private assertAlive;
213
+ private assertGpuReady;
214
+ }
215
+ export declare class BrowserRendererError extends Error {
216
+ readonly code: string;
217
+ constructor(code: string, message: string);
218
+ }