@miris-inc/core 0.0.8-9d53d06 → 0.0.8-9ed4bbb

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/webshark.d.ts DELETED
@@ -1,352 +0,0 @@
1
- export interface Camera {
2
- dir: vec4;
3
- U: vec4;
4
- V: vec4;
5
- eye: vec4;
6
- l: number;
7
- fov: number;
8
- }
9
-
10
- export interface Ellipsoid {
11
- pos: vec4;
12
- radii: vec4;
13
- orientation: vec4;
14
- }
15
-
16
- export interface SphericalHarmonic {
17
- col: vec4;
18
- sh_0_1: vec4;
19
- sh_0_2: vec4;
20
- sh_0_3: vec4;
21
- }
22
-
23
- export interface AABB {
24
- minExt: vec4;
25
- maxExt: vec4;
26
- }
27
-
28
- export interface EmVector<T> {
29
- push_back(value: T): void;
30
- resize(count: number, value: T): void;
31
- size(): number;
32
- get(index: number): T | undefined;
33
- set(index: number, value: T): boolean;
34
- delete(): void;
35
- }
36
-
37
- export type EllipsoidVector = EmVector<Ellipsoid>;
38
- export type SphericalHarmonicVector = EmVector<SphericalHarmonic>;
39
-
40
- export interface SortTypeValue {
41
- value: number;
42
- }
43
-
44
- export interface TextureFormatValue {
45
- value: number;
46
- }
47
-
48
- export interface SharkComputeInfo {
49
- dispatchCalls: number;
50
- frameDispatchCalls: number;
51
- }
52
-
53
- export interface SharkRenderInfo {
54
- totalRenderCalls: number;
55
- frameRenderCalls: number;
56
- triangles: number;
57
- splats: number;
58
- }
59
-
60
- export interface SharkInfo {
61
- renderCalls: number;
62
- compute: SharkComputeInfo;
63
- render: SharkRenderInfo;
64
- reset(): void;
65
- }
66
-
67
- export interface RendererWGPU {
68
- configureSurface(width: number, height: number): boolean;
69
- getProgramCount(): number;
70
- getTextureCount(): number;
71
- getEstimatedTextureSize(): number;
72
- getBufferCount(): number;
73
- getTotalBufferSize(): number;
74
- getBufferTypeSize(type: number): number;
75
- surfaceFormat: TextureFormatValue;
76
- info: SharkInfo;
77
- }
78
-
79
- export interface RenderState {
80
- initRenderState(
81
- renderer: RendererWGPU,
82
- width: number,
83
- height: number,
84
- vertices: number,
85
- splats: number,
86
- cubes: number,
87
- sortThreads: number,
88
- sortGroupSize: number,
89
- sortKeySize: number,
90
- ): void;
91
- initGraphicsState(
92
- width: number,
93
- height: number,
94
- renderTextureFormat: TextureFormat,
95
- ): void;
96
- updateRenderDetails(
97
- width: number,
98
- height: number,
99
- splatTriangles: number,
100
- ): void;
101
- uploadEllipsoids(ellipsoids: EllipsoidVector): void;
102
- uploadSphericalHarmonics(sh: SphericalHarmonicVector): void;
103
- uploadSphericalHarmonicsSOGs(sh: SphericalHarmonicVector): void;
104
- }
105
-
106
- export interface vec4 {
107
- x: number;
108
- y: number;
109
- z: number;
110
- w: number;
111
- delete(): void;
112
- }
113
-
114
- export interface SplatSet {
115
- splatCount: number;
116
- // Number of splats actually drawn: ordering[0, activeSplats) holds the unmasked splat indices.
117
- // Set alongside orderingView() to restrict the draw to unmasked octant ranges.
118
- activeSplats: number;
119
- setData(
120
- splatCount: number,
121
- ellipsoids: number,
122
- sphericalHarmonics: number,
123
- ): void;
124
- // direct-write upload: resize -> write into the views -> finalize.
125
- // views are valid only until the next resize.
126
- resize(splatCount: number): void;
127
- ellipsoidsView(): Uint32Array;
128
- sphericalHarmonicsView(): Uint32Array;
129
- sh1View(): Uint32Array;
130
- sh2View(): Uint32Array;
131
- sh3aView(): Uint32Array;
132
- sh3bView(): Uint32Array;
133
- // Per-chunk fade (opacity multiplier), one float per chunk, defaults to 1.0.
134
- // Also sizes the chunk slot to model root slot map below, since both are indexed by chunk slot
135
- resizeChunkFades(chunkCount: number): void;
136
- chunkFadesView(): Float32Array;
137
- // Per-splat chunk index, defaults to slot 0. Write before finalize()
138
- chunkIndicesView(): Int32Array;
139
- // Model transforms, resolved per splat as
140
- // modelRootTransforms[chunkModelRoots[chunkIndices[splat]]]
141
- // Slot 0 of both tables is reserved as identity, so real slots start at 1 and a set that
142
- // never writes them renders untransformed.
143
- resizeModelRootSlots(modelRootCount: number): void;
144
- // 16 floats per model root, COLUMN-major - i.e. write THREE's Matrix4.toArray() straight in
145
- modelRootTransformsView(): Float32Array;
146
- // The inverses, same slots and layout. The true-perspective projection (Project.glsl) transforms
147
- // a quadratic form and needs them; writing a transform without its inverse leaves that path
148
- // projecting the splat as if untransformed. Use Matrix4.invert() on a copy
149
- modelRootInverseTransformsView(): Float32Array;
150
- // Sized by resizeChunkFades. Defaults to slot 0 (identity) for every chunk
151
- chunkModelRootsView(): Int32Array;
152
- // int32 render-order buffer (sized 2*splatCount after finalize). Valid only until the next resize.
153
- orderingView(): Int32Array;
154
- finalize(): void;
155
- // like finalize() but keeps splats in their delivered (octant-sorted) order — no kd-tree reorder —
156
- // so sparse-octant range masking can index child-octant ranges directly. RADIX_SORT only.
157
- finalizeBounds(): void;
158
- }
159
-
160
- export interface WebGPUInternals {
161
- jsObjects: unknown[];
162
- bufferOnUnmaps: Record<number, unknown>;
163
- futures: Promise<unknown>[];
164
- jsObjectInsert(ptr: number, obj: unknown): void;
165
- futureInsert(futureId: number, promise: Promise<unknown>): void;
166
- }
167
-
168
- export interface WebGPUInterface {
169
- Internals: WebGPUInternals;
170
-
171
- importJsAdapter(adapter: GPUAdapter, parentPtr?: number): number;
172
- importJsDevice(device: GPUDevice, parentPtr?: number): number;
173
- importJsBindGroup(obj: GPUBindGroup, parentPtr?: number): number;
174
- importJsBindGroupLayout(obj: GPUBindGroupLayout, parentPtr?: number): number;
175
- importJsBuffer(buffer: GPUBuffer, parentPtr?: number): number;
176
- importJsCommandBuffer(obj: GPUCommandBuffer, parentPtr?: number): number;
177
- importJsCommandEncoder(obj: GPUCommandEncoder, parentPtr?: number): number;
178
- importJsComputePassEncoder(
179
- obj: GPUComputePassEncoder,
180
- parentPtr?: number,
181
- ): number;
182
- importJsComputePipeline(obj: GPUComputePipeline, parentPtr?: number): number;
183
- importJsPipelineLayout(obj: GPUPipelineLayout, parentPtr?: number): number;
184
- importJsQuerySet(obj: GPUQuerySet, parentPtr?: number): number;
185
- importJsQueue(obj: GPUQueue, parentPtr?: number): number;
186
- importJsRenderBundle(obj: GPURenderBundle, parentPtr?: number): number;
187
- importJsRenderBundleEncoder(
188
- obj: GPURenderBundleEncoder,
189
- parentPtr?: number,
190
- ): number;
191
- importJsRenderPassEncoder(
192
- obj: GPURenderPassEncoder,
193
- parentPtr?: number,
194
- ): number;
195
- importJsRenderPipeline(obj: GPURenderPipeline, parentPtr?: number): number;
196
- importJsSampler(obj: GPUSampler, parentPtr?: number): number;
197
- importJsShaderModule(obj: GPUShaderModule, parentPtr?: number): number;
198
- importJsTexture(obj: GPUTexture, parentPtr?: number): number;
199
- importJsTextureView(obj: GPUTextureView, parentPtr?: number): number;
200
-
201
- getJsObject(ptr: number): unknown;
202
-
203
- makeStringFromStringView(stringViewPtr: number): string;
204
- makeStringFromOptionalStringView(
205
- stringViewPtr: number,
206
- ): string | undefined | "";
207
- setStringView(ptr: number, data: number, length: number): void;
208
- makeColor(ptr: number): { r: number; g: number; b: number; a: number };
209
- makeExtent3D(ptr: number): {
210
- width: number;
211
- height: number;
212
- depthOrArrayLayers: number;
213
- };
214
- makeOrigin3D(ptr: number): { x: number; y: number; z: number };
215
- fillLimitStruct(limits: GPUSupportedLimits, limitsOutPtr: number): void;
216
- fillAdapterInfoStruct(adapterInfo: GPUAdapterInfo, infoStruct: number): void;
217
- errorCallback(
218
- callback: number,
219
- type: number,
220
- message: string,
221
- userdata: number,
222
- ): void;
223
- }
224
-
225
- export interface MainModule {
226
- Camera: new () => Camera;
227
- RenderState: new () => RenderState;
228
- SplatSet: new () => SplatSet;
229
- AABB: new () => AABB;
230
- Ellipsoid: new () => Ellipsoid;
231
- SphericalHarmonic: new () => SphericalHarmonic;
232
- EllipsoidVector: new () => EllipsoidVector;
233
- SphericalHarmonicVector: new () => SphericalHarmonicVector;
234
- vec4: new (x: number, y: number, z: number, w: number) => vec4;
235
-
236
- SortType: {
237
- RADIX_SORT: SortTypeValue;
238
- OCTREE_SORT: SortTypeValue;
239
- KDTREE_SORT: SortTypeValue;
240
- STD_SORT: SortTypeValue;
241
- };
242
-
243
- TextureFormat: {
244
- RGBA32_Float: TextureFormatValue;
245
- RGBA16_Float: TextureFormatValue;
246
- RGBA32_UInt: TextureFormatValue;
247
- RGBA32_SInt: TextureFormatValue;
248
- RGBA16_UInt: TextureFormatValue;
249
- RGBA16_SInt: TextureFormatValue;
250
- RGBA8_UInt: TextureFormatValue;
251
- RGBA8_SInt: TextureFormatValue;
252
- RGBA8_UNorm: TextureFormatValue;
253
- RGBA8_SNorm: TextureFormatValue;
254
- RGBA16_UNorm: TextureFormatValue;
255
- RGBA16_SNorm: TextureFormatValue;
256
- BGRA8_UNorm: TextureFormatValue;
257
- BC6HRGB_UFloat: TextureFormatValue;
258
- BC6HRGB_Float: TextureFormatValue;
259
- BC7RGBA_UNorm: TextureFormatValue;
260
- BC7RGBA_UNormSrgb: TextureFormatValue;
261
- BC3RGBA_UNorm: TextureFormatValue;
262
- BC3RGBA_UNormSrgb: TextureFormatValue;
263
- };
264
-
265
- Usage_CopySrc: number;
266
- Usage_CopyDest: number;
267
- Usage_MapRead: number;
268
- Usage_MapWrite: number;
269
- Usage_Uniform: number;
270
- Usage_Storage: number;
271
- Usage_Index: number;
272
- Usage_Vertex: number;
273
- Usage_QueryResolve: number;
274
-
275
- WebGPU: WebGPUInterface;
276
-
277
- _malloc(bytes: number): number;
278
- _free(ptr: number): void;
279
- HEAPU32: Uint32Array;
280
-
281
- setupCamera(
282
- minExt: vec4,
283
- maxExt: vec4,
284
- axis: number,
285
- direction: number,
286
- width: number,
287
- height: number,
288
- camera: Camera,
289
- ): void;
290
-
291
- createRendererWGPU(canvasSelector: string): RendererWGPU;
292
- createRendererWGPUWithoutSurface(
293
- colorTargetFormat: TextureFormatValue,
294
- ): RendererWGPU;
295
-
296
- uploadSplatSetData(
297
- set: SplatSet,
298
- renderState: RenderState,
299
- start: number,
300
- ): void;
301
- uploadChunkFades(set: SplatSet, renderState: RenderState): void;
302
- // One mat4 per model root, so cheap enough to call every frame while an asset is moving
303
- uploadModelRootTransforms(set: SplatSet, renderState: RenderState): void;
304
- processSplatSet(
305
- camera: Camera,
306
- set: SplatSet,
307
- renderState: RenderState,
308
- width: number,
309
- height: number,
310
- triangles: number,
311
- projectOnGPU: boolean,
312
- cullEllipsoid: boolean,
313
- useAffineApprox: boolean,
314
- depthSortOnGPU: boolean,
315
- useInvZ: boolean,
316
- rasterizeWithCompute: boolean,
317
- useSOGS: boolean,
318
- sortType: SortTypeValue,
319
- ): number;
320
- renderSplatSet(
321
- splats: number,
322
- set: SplatSet,
323
- renderState: RenderState,
324
- width: number,
325
- height: number,
326
- triangles: number,
327
- rasterizeWithCompute: boolean,
328
- textureView: number,
329
- ): void;
330
- renderSplatSetToSceneTextures(
331
- splatSet: SplatSet,
332
- renderState: RenderState,
333
- colorTarget: number,
334
- depthTarget: number,
335
- ): void;
336
- mapToAABB(scale: number, minExt: vec4, maxExt: vec4, set: SplatSet): void;
337
- loadPLYIntoSplatSet(filename: string, set: SplatSet): number;
338
- getBoundsSplatSet(set: SplatSet, minExt: vec4, maxExt: vec4): void;
339
- loadPLY(
340
- filename: string,
341
- count: number,
342
- maxSplats: number,
343
- ellipsoids: EllipsoidVector,
344
- sphericalHarmonics: SphericalHarmonicVector,
345
- ): number;
346
- }
347
-
348
- declare function WebShark(
349
- moduleArg?: Record<string, unknown>,
350
- ): Promise<MainModule>;
351
-
352
- export default WebShark;