@openheart/tavio-renderer 2.6.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 +171 -140
- package/build/esm/types/viewer/driver/coreDriver.d.ts +23 -0
- package/package.json +1 -1
|
@@ -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
|
*/
|
|
@@ -476,6 +486,19 @@ export declare class CoreDriver extends EventEmitter implements iCoreDriver {
|
|
|
476
486
|
* @private
|
|
477
487
|
*/
|
|
478
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;
|
|
479
502
|
/**
|
|
480
503
|
* 登録されている最初のメッシュの名前を取得する
|
|
481
504
|
*/
|