@openheart/tavio-renderer 2.5.0 → 2.6.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/build/esm/index.js +340 -268
- package/build/esm/types/viewer/canvas.d.ts +18 -0
- package/build/esm/types/viewer/driver/coreDriver.d.ts +32 -0
- package/build/esm/types/viewer/driver/iCoreDriver.d.ts +18 -0
- package/build/esm/types/viewer/driver/offscreenDriver.d.ts +17 -0
- package/package.json +1 -1
|
@@ -62,6 +62,18 @@ export declare class Core extends EventEmitter {
|
|
|
62
62
|
loadTavio(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
63
63
|
loadTavioWasm(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
64
64
|
loadPly(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
65
|
+
loadPlyWasm(name: string, url: string, options?: {
|
|
66
|
+
useSphericalHarmonics?: boolean;
|
|
67
|
+
}): Promise<void>;
|
|
68
|
+
loadSplatWasm(name: string, url: string, options?: {
|
|
69
|
+
useSphericalHarmonics?: boolean;
|
|
70
|
+
}): Promise<void>;
|
|
71
|
+
loadSpzWasm(name: string, url: string, options?: {
|
|
72
|
+
useSphericalHarmonics?: boolean;
|
|
73
|
+
}): Promise<void>;
|
|
74
|
+
loadSogWasm(name: string, url: string, options?: {
|
|
75
|
+
useSphericalHarmonics?: boolean;
|
|
76
|
+
}): Promise<void>;
|
|
65
77
|
loadSplat(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
66
78
|
loadImage(name: string, source: string | Blob | ArrayBuffer | ImageBitmap, option?: iLoadingOption): Promise<void>;
|
|
67
79
|
loadCanvas(name: string, canvas: HTMLCanvasElement | OffscreenCanvas | ImageBitmap, option?: iLoadingOption): Promise<void>;
|
|
@@ -75,6 +87,12 @@ export declare class Core extends EventEmitter {
|
|
|
75
87
|
saveSpzWasm(name: string, fileName?: string): Promise<any>;
|
|
76
88
|
saveTavioWasm(name: string, fileName?: string, options?: any): Promise<any>;
|
|
77
89
|
exportTavioWasm(name: string, options?: any): Promise<any>;
|
|
90
|
+
/**
|
|
91
|
+
* 現在の描画内容を画像として取得する。OffscreenCanvas(Worker)で描画している場合も取得できる
|
|
92
|
+
* @param type - 画像の MIME タイプ [default: "image/png"]
|
|
93
|
+
* @param quality - 画質(0〜1)。"image/jpeg" や "image/webp" のときのみ有効
|
|
94
|
+
*/
|
|
95
|
+
captureImage(type?: string, quality?: number): Promise<Blob>;
|
|
78
96
|
addTavioMesh(name: string): void;
|
|
79
97
|
removeTavioMesh(name: string, renderViewName?: string | Symbol): void;
|
|
80
98
|
removeTavioMeshAllRenderView(name: string): void;
|
|
@@ -86,6 +86,16 @@ export declare class CoreDriver extends EventEmitter implements iCoreDriver {
|
|
|
86
86
|
/** 直前にフレームを描画した時刻(Date.now()) */
|
|
87
87
|
private _lastFrameTimestamp;
|
|
88
88
|
private _rafId;
|
|
89
|
+
/**
|
|
90
|
+
* 直前に発行したフレームのGPU処理完了を検知するためのフェンス。
|
|
91
|
+
* requestAnimationFrame は GPU の完了を待たずに発火するため、1フレームのGPU処理時間が
|
|
92
|
+
* 表示間隔を超えると未処理のGPUコマンドが際限なく溜まり、同じGPUを使う他の描画
|
|
93
|
+
* (ブラウザのコンポジタや他タブのビデオ再生など)が停滞する。前フレームの完了を
|
|
94
|
+
* 確認できるまで次のフレームを発行しないことで、GPUの処理能力に描画頻度を合わせる
|
|
95
|
+
*/
|
|
96
|
+
private _gpuFence;
|
|
97
|
+
/** 次回の _render でGPUフェンスの完了待ちを省略するか(リサイズ直後の即時描画用) */
|
|
98
|
+
private _bypassGpuFenceOnce;
|
|
89
99
|
/**
|
|
90
100
|
* 対応する Controls 種別
|
|
91
101
|
*/
|
|
@@ -315,6 +325,15 @@ export declare class CoreDriver extends EventEmitter implements iCoreDriver {
|
|
|
315
325
|
bytes: Uint8Array;
|
|
316
326
|
version: string;
|
|
317
327
|
}>;
|
|
328
|
+
/**
|
|
329
|
+
* 現在の描画内容を画像として取得する
|
|
330
|
+
* preserveDrawingBuffer が無効でも取得できるよう、その場で1フレーム描画し、同じタスク内で
|
|
331
|
+
* canvas のスナップショットを取る(toBlob / convertToBlob は呼び出し時点の内容を複製する)
|
|
332
|
+
* OffscreenCanvas(Worker)では OffscreenDriver から RPC で呼び出され、Worker 内で convertToBlob する
|
|
333
|
+
* @param type - 画像の MIME タイプ [default: "image/png"]
|
|
334
|
+
* @param quality - 画質(0〜1)。"image/jpeg" や "image/webp" のときのみ有効
|
|
335
|
+
*/
|
|
336
|
+
captureImage(type?: string, quality?: number): Promise<Blob>;
|
|
318
337
|
/**
|
|
319
338
|
* tavio 形式のリソースを保存する
|
|
320
339
|
* @param name - このメッシュの固有名
|
|
@@ -467,6 +486,19 @@ export declare class CoreDriver extends EventEmitter implements iCoreDriver {
|
|
|
467
486
|
* @private
|
|
468
487
|
*/
|
|
469
488
|
private _render;
|
|
489
|
+
/**
|
|
490
|
+
* 前フレームで発行したGPUフェンスがまだ完了していないかどうかを返す。
|
|
491
|
+
* 完了していればフェンスを破棄する。WebGL2 でない環境やフェンスが無い場合は false
|
|
492
|
+
*/
|
|
493
|
+
private _isGpuBusy;
|
|
494
|
+
/**
|
|
495
|
+
* このフレームのGPUコマンドの末尾にフェンスを発行し、完了検知に使えるよう flush する
|
|
496
|
+
*/
|
|
497
|
+
private _insertGpuFence;
|
|
498
|
+
/**
|
|
499
|
+
* レンダラーの WebGL2 コンテキストを返す。WebGL2 でない場合やコンテキスト喪失時は null
|
|
500
|
+
*/
|
|
501
|
+
private _getWebGL2Context;
|
|
470
502
|
/**
|
|
471
503
|
* 登録されている最初のメッシュの名前を取得する
|
|
472
504
|
*/
|
|
@@ -34,6 +34,18 @@ export interface iCoreDriver extends EventEmitter {
|
|
|
34
34
|
loadTavioWasm(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
35
35
|
loadPly(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
36
36
|
loadSplat(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
37
|
+
loadPlyWasm(name: string, url: string, options?: {
|
|
38
|
+
useSphericalHarmonics?: boolean;
|
|
39
|
+
}): Promise<void>;
|
|
40
|
+
loadSplatWasm(name: string, url: string, options?: {
|
|
41
|
+
useSphericalHarmonics?: boolean;
|
|
42
|
+
}): Promise<void>;
|
|
43
|
+
loadSpzWasm(name: string, url: string, options?: {
|
|
44
|
+
useSphericalHarmonics?: boolean;
|
|
45
|
+
}): Promise<void>;
|
|
46
|
+
loadSogWasm(name: string, url: string, options?: {
|
|
47
|
+
useSphericalHarmonics?: boolean;
|
|
48
|
+
}): Promise<void>;
|
|
37
49
|
loadImage(name: string, source: string | Blob | ArrayBuffer | ImageBitmap, option?: iLoadingOption): Promise<void>;
|
|
38
50
|
loadCanvas(name: string, canvas: HTMLCanvasElement | OffscreenCanvas | ImageBitmap, option?: iLoadingOption): Promise<void>;
|
|
39
51
|
concatTavio(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
@@ -46,6 +58,12 @@ export interface iCoreDriver extends EventEmitter {
|
|
|
46
58
|
saveSpzWasm(name: string, fileName?: string): Promise<any>;
|
|
47
59
|
saveTavioWasm(name: string, fileName?: string, options?: any): Promise<any>;
|
|
48
60
|
exportTavioWasm(name: string, options?: any): Promise<any>;
|
|
61
|
+
/**
|
|
62
|
+
* 現在の描画内容を画像として取得する(描画内容の画像化・サムネイル生成用)
|
|
63
|
+
* @param type - 画像の MIME タイプ [default: "image/png"]
|
|
64
|
+
* @param quality - 画質(0〜1)。"image/jpeg" や "image/webp" のときのみ有効
|
|
65
|
+
*/
|
|
66
|
+
captureImage(type?: string, quality?: number): Promise<Blob>;
|
|
49
67
|
addTavioMesh(name: string): void;
|
|
50
68
|
removeTavioMesh(name: string, renderViewName?: string | Symbol): void;
|
|
51
69
|
removeTavioMeshAllRenderView(name: string): void;
|
|
@@ -78,6 +78,18 @@ export declare class OffscreenDriver extends EventEmitter implements iCoreDriver
|
|
|
78
78
|
loadTavio(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
79
79
|
loadTavioWasm(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
80
80
|
loadPly(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
81
|
+
loadPlyWasm(name: string, url: string, options?: {
|
|
82
|
+
useSphericalHarmonics?: boolean;
|
|
83
|
+
}): Promise<void>;
|
|
84
|
+
loadSplatWasm(name: string, url: string, options?: {
|
|
85
|
+
useSphericalHarmonics?: boolean;
|
|
86
|
+
}): Promise<void>;
|
|
87
|
+
loadSpzWasm(name: string, url: string, options?: {
|
|
88
|
+
useSphericalHarmonics?: boolean;
|
|
89
|
+
}): Promise<void>;
|
|
90
|
+
loadSogWasm(name: string, url: string, options?: {
|
|
91
|
+
useSphericalHarmonics?: boolean;
|
|
92
|
+
}): Promise<void>;
|
|
81
93
|
loadSplat(name: string, source: string | Blob | ArrayBuffer, option?: iLoadingOption): Promise<void>;
|
|
82
94
|
loadImage(name: string, source: string | Blob | ArrayBuffer | ImageBitmap, option?: iLoadingOption): Promise<void>;
|
|
83
95
|
loadCanvas(name: string, canvas: HTMLCanvasElement | OffscreenCanvas | ImageBitmap, option?: iLoadingOption): Promise<void>;
|
|
@@ -131,6 +143,11 @@ export declare class OffscreenDriver extends EventEmitter implements iCoreDriver
|
|
|
131
143
|
saveSpzWasm(name: string, fileName?: string): Promise<any>;
|
|
132
144
|
saveTavioWasm(name: string, fileName?: string, options?: any): Promise<any>;
|
|
133
145
|
exportTavioWasm(name: string, options?: any): Promise<any>;
|
|
146
|
+
/**
|
|
147
|
+
* Worker 内の OffscreenCanvas で描画した内容を画像として取得する
|
|
148
|
+
* (Blob は構造化複製で Worker からメインスレッドへ返る)
|
|
149
|
+
*/
|
|
150
|
+
captureImage(type?: string, quality?: number): Promise<Blob>;
|
|
134
151
|
addTavioMesh(name: string): void;
|
|
135
152
|
getFirstMeshName(): Promise<string | null>;
|
|
136
153
|
createRenderView(name: string | Symbol): void;
|