@ifc-lite/renderer 1.41.1 → 1.44.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 (120) hide show
  1. package/dist/camera-animation.d.ts +20 -32
  2. package/dist/camera-animation.d.ts.map +1 -1
  3. package/dist/camera-animation.js +71 -358
  4. package/dist/camera-animation.js.map +1 -1
  5. package/dist/camera-controls.d.ts +11 -51
  6. package/dist/camera-controls.d.ts.map +1 -1
  7. package/dist/camera-controls.js +140 -12
  8. package/dist/camera-controls.js.map +1 -1
  9. package/dist/camera-first-person.d.ts +52 -0
  10. package/dist/camera-first-person.d.ts.map +1 -0
  11. package/dist/camera-first-person.js +119 -0
  12. package/dist/camera-first-person.js.map +1 -0
  13. package/dist/camera-fit-policy.d.ts.map +1 -1
  14. package/dist/camera-fit-policy.js +18 -7
  15. package/dist/camera-fit-policy.js.map +1 -1
  16. package/dist/camera-framing.d.ts +86 -0
  17. package/dist/camera-framing.d.ts.map +1 -0
  18. package/dist/camera-framing.js +230 -0
  19. package/dist/camera-framing.js.map +1 -0
  20. package/dist/camera-guards.d.ts +148 -0
  21. package/dist/camera-guards.d.ts.map +1 -0
  22. package/dist/camera-guards.js +150 -0
  23. package/dist/camera-guards.js.map +1 -0
  24. package/dist/camera-matrices.d.ts +14 -0
  25. package/dist/camera-matrices.d.ts.map +1 -0
  26. package/dist/camera-matrices.js +146 -0
  27. package/dist/camera-matrices.js.map +1 -0
  28. package/dist/camera-preset-view.d.ts +56 -0
  29. package/dist/camera-preset-view.d.ts.map +1 -0
  30. package/dist/camera-preset-view.js +180 -0
  31. package/dist/camera-preset-view.js.map +1 -0
  32. package/dist/camera-projection.d.ts +1 -1
  33. package/dist/camera-projection.d.ts.map +1 -1
  34. package/dist/camera-projection.js +83 -30
  35. package/dist/camera-projection.js.map +1 -1
  36. package/dist/camera-state.d.ts +62 -0
  37. package/dist/camera-state.d.ts.map +1 -0
  38. package/dist/camera-state.js +5 -0
  39. package/dist/camera-state.js.map +1 -0
  40. package/dist/camera.d.ts +22 -11
  41. package/dist/camera.d.ts.map +1 -1
  42. package/dist/camera.js +110 -85
  43. package/dist/camera.js.map +1 -1
  44. package/dist/deviation/deviation-pipeline.d.ts.map +1 -1
  45. package/dist/deviation/deviation-pipeline.js +21 -4
  46. package/dist/deviation/deviation-pipeline.js.map +1 -1
  47. package/dist/environment.d.ts.map +1 -1
  48. package/dist/environment.js +23 -1
  49. package/dist/environment.js.map +1 -1
  50. package/dist/index.d.ts +333 -43
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +753 -704
  53. package/dist/index.js.map +1 -1
  54. package/dist/math.d.ts +59 -2
  55. package/dist/math.d.ts.map +1 -1
  56. package/dist/math.js +173 -23
  57. package/dist/math.js.map +1 -1
  58. package/dist/model-bounds-tracker.d.ts +96 -0
  59. package/dist/model-bounds-tracker.d.ts.map +1 -0
  60. package/dist/model-bounds-tracker.js +147 -0
  61. package/dist/model-bounds-tracker.js.map +1 -0
  62. package/dist/pointcloud/point-cloud-node.d.ts.map +1 -1
  63. package/dist/pointcloud/point-cloud-node.js +24 -4
  64. package/dist/pointcloud/point-cloud-node.js.map +1 -1
  65. package/dist/render-degradation.d.ts +77 -0
  66. package/dist/render-degradation.d.ts.map +1 -0
  67. package/dist/render-degradation.js +52 -0
  68. package/dist/render-degradation.js.map +1 -0
  69. package/dist/render-section-draw.d.ts +51 -0
  70. package/dist/render-section-draw.d.ts.map +1 -0
  71. package/dist/render-section-draw.js +66 -0
  72. package/dist/render-section-draw.js.map +1 -0
  73. package/dist/render-section-plane.d.ts +128 -0
  74. package/dist/render-section-plane.d.ts.map +1 -0
  75. package/dist/render-section-plane.js +298 -0
  76. package/dist/render-section-plane.js.map +1 -0
  77. package/dist/renderer-overlays.d.ts +144 -0
  78. package/dist/renderer-overlays.d.ts.map +1 -0
  79. package/dist/renderer-overlays.js +257 -0
  80. package/dist/renderer-overlays.js.map +1 -0
  81. package/dist/renderer-symbolic-overlays.d.ts +52 -0
  82. package/dist/renderer-symbolic-overlays.d.ts.map +1 -0
  83. package/dist/renderer-symbolic-overlays.js +115 -0
  84. package/dist/renderer-symbolic-overlays.js.map +1 -0
  85. package/dist/scene-geometry.d.ts +32 -0
  86. package/dist/scene-geometry.d.ts.map +1 -1
  87. package/dist/scene-geometry.js +66 -0
  88. package/dist/scene-geometry.js.map +1 -1
  89. package/dist/scene.d.ts +86 -1
  90. package/dist/scene.d.ts.map +1 -1
  91. package/dist/scene.js +391 -201
  92. package/dist/scene.js.map +1 -1
  93. package/dist/section-2d-lift.d.ts +105 -0
  94. package/dist/section-2d-lift.d.ts.map +1 -0
  95. package/dist/section-2d-lift.js +162 -0
  96. package/dist/section-2d-lift.js.map +1 -0
  97. package/dist/section-2d-line-buffer.d.ts +58 -0
  98. package/dist/section-2d-line-buffer.d.ts.map +1 -0
  99. package/dist/section-2d-line-buffer.js +109 -0
  100. package/dist/section-2d-line-buffer.js.map +1 -0
  101. package/dist/section-2d-overlay.d.ts +43 -75
  102. package/dist/section-2d-overlay.d.ts.map +1 -1
  103. package/dist/section-2d-overlay.js +189 -559
  104. package/dist/section-2d-overlay.js.map +1 -1
  105. package/dist/section-plane-basis.d.ts +22 -3
  106. package/dist/section-plane-basis.d.ts.map +1 -1
  107. package/dist/section-plane-basis.js +51 -10
  108. package/dist/section-plane-basis.js.map +1 -1
  109. package/dist/section-plane.d.ts.map +1 -1
  110. package/dist/section-plane.js +10 -1
  111. package/dist/section-plane.js.map +1 -1
  112. package/dist/shaders/section-2d-overlay.wgsl.d.ts +102 -0
  113. package/dist/shaders/section-2d-overlay.wgsl.d.ts.map +1 -0
  114. package/dist/shaders/section-2d-overlay.wgsl.js +281 -0
  115. package/dist/shaders/section-2d-overlay.wgsl.js.map +1 -0
  116. package/dist/visual-enhancement.d.ts +33 -0
  117. package/dist/visual-enhancement.d.ts.map +1 -0
  118. package/dist/visual-enhancement.js +46 -0
  119. package/dist/visual-enhancement.js.map +1 -0
  120. package/package.json +4 -3
package/dist/index.d.ts CHANGED
@@ -4,12 +4,13 @@
4
4
  export { WebGPUDevice } from './device.js';
5
5
  export { RenderPipeline } from './pipeline.js';
6
6
  export { Camera } from './camera.js';
7
- export type { ProjectionMode } from './camera-controls.js';
7
+ export type { ProjectionMode } from './camera-state.js';
8
8
  export { pickFitPolicy } from './camera-fit-policy.js';
9
9
  export type { FitPolicy, FitPolicyKind, Bounds3, PickFitPolicyOptions } from './camera-fit-policy.js';
10
10
  export { Scene } from './scene.js';
11
11
  export { Picker } from './picker.js';
12
12
  export { MathUtils } from './math.js';
13
+ export { viewBasis } from './math.js';
13
14
  export { SectionPlaneRenderer } from './section-plane.js';
14
15
  export { Section2DOverlayRenderer } from './section-2d-overlay.js';
15
16
  export { SymbolicFillPipeline, SymbolicTextPipeline, type SymbolicFillInput, type SymbolicTextInput, } from './symbolic-overlay-pipelines.js';
@@ -43,6 +44,7 @@ export type { QuantizedVertexData } from './quantize.js';
43
44
  export { sumResidentGpuBytes } from './render-stats.js';
44
45
  export type { FrameStats, ResidentGpuBytes } from './render-stats.js';
45
46
  export { RaycastEngine } from './raycast-engine.js';
47
+ export type { RenderDegradationInfo } from './render-degradation.js';
46
48
  export { PointPicker, decodePickSample } from './point-picker.js';
47
49
  export type { PointPickNode, DecodedPickSample } from './point-picker.js';
48
50
  export type { PointPickSizing } from './picker.js';
@@ -55,10 +57,11 @@ import { Camera } from './camera.js';
55
57
  import { Scene } from './scene.js';
56
58
  import type { MeshData } from '@ifc-lite/geometry';
57
59
  import type { RenderOptions, PickOptions, PickResult, Mesh } from './types.js';
58
- import { type CutPolygon2D, type DrawingLine2D } from './section-2d-overlay.js';
59
- import { type SymbolicFillInput, type SymbolicTextInput } from './symbolic-overlay-pipelines.js';
60
+ import type { CutPolygon2D, DrawingLine2D } from './section-2d-overlay.js';
61
+ import type { SymbolicFillInput, SymbolicTextInput } from './symbolic-overlay-pipelines.js';
60
62
  import { Raycaster, type Intersection } from './raycaster.js';
61
63
  import { SnapDetector, type SnapTarget, type SnapOptions, type EdgeLockInput, type MagneticSnapResult } from './snap-detector.js';
64
+ import { type RenderDegradationInfo } from './render-degradation.js';
62
65
  import type { FrameStats } from './render-stats.js';
63
66
  import type { PointCloudAsset } from '@ifc-lite/geometry';
64
67
  /**
@@ -71,28 +74,111 @@ export declare class Renderer {
71
74
  private scene;
72
75
  private picker;
73
76
  private canvas;
74
- private sectionPlaneRenderer;
75
- private section2DOverlayRenderer;
76
- private overlayLineColor;
77
- private symbolicFillPipeline;
78
- private symbolicTextPipeline;
77
+ /**
78
+ * Section-plane gizmo, 2D section drawing/cap, and the standalone 3D line
79
+ * + symbolic annotation overlays (issue #2425). Created here rather than in
80
+ * `init()` so a pre-init `setOverlayLineColor` still lands — the GPU
81
+ * objects inside stay null until `init()` calls `overlays.init()`.
82
+ */
83
+ private readonly overlays;
79
84
  private postProcessor;
80
85
  private readonly interactionEffects;
81
86
  private edlPass;
82
87
  private skyPass;
83
88
  private edlOptions;
84
89
  private pointCloudRenderer;
85
- /** Set true at the end of `init()`; gates `whenReady()`. */
90
+ /**
91
+ * Set true at the end of the LATEST `init()`; gates `whenReady()` and
92
+ * `isReady()`. Revoked synchronously by `init()` and by `destroy()`, and
93
+ * overridden (not cleared) by a device loss — see `deviceLost`, which the
94
+ * two readiness methods consult alongside this flag because the loss can
95
+ * land in the middle of the init that is about to set it.
96
+ */
86
97
  private ready;
87
98
  private readyWaiters;
99
+ /**
100
+ * Set by the public `destroy()`, cleared synchronously by `init()`. It is
101
+ * the difference between "not ready YET" and "never going to be ready":
102
+ * `whenReady()` parks for the first and rejects for the second.
103
+ *
104
+ * Without it a caller parked across the teardown waits forever, because
105
+ * nothing after `destroy()` will ever reach `markReady()` — the host's
106
+ * remount builds a NEW Renderer rather than re-initialising this one. The
107
+ * private `teardown()` deliberately does NOT set it: the teardown
108
+ * `initOnce()` runs on the previous init's objects is part of an init that
109
+ * IS going to publish readiness, and its waiters must survive to be flushed.
110
+ */
111
+ private destroyed;
112
+ /**
113
+ * The tail of the `init()` queue. `init()` chains onto this rather than
114
+ * running immediately, so two overlapping calls cannot both walk past the
115
+ * "a previous init completed" guard while the first is still awaiting its
116
+ * device and both allocate a full set of GPU objects (#2448). Always
117
+ * settled fulfilled — a rejected init is swallowed HERE (never for the
118
+ * caller) so one failure does not deadlock every later call.
119
+ */
120
+ private initChain;
121
+ /**
122
+ * Incremented synchronously by every `init()` call AND by every public
123
+ * `destroy()`. It stamps "the lifecycle event an in-flight init belongs to":
124
+ * an init that no longer carries the current stamp has been superseded and
125
+ * must neither allocate nor publish readiness.
126
+ *
127
+ * Both bumps are load-bearing, for the same reason. Because the queue above
128
+ * defers the body, an init can finish while a later one is still waiting its
129
+ * turn; that later call is about to tear down everything the earlier one
130
+ * built, so the earlier one must not publish readiness. And a host that calls
131
+ * `destroy()` while an init is parked on `await device.init(...)` gets the
132
+ * same hazard from the other direction: without the bump that init resumes,
133
+ * allocates a full replacement GPU stack nothing references, and re-publishes
134
+ * `ready` against a renderer that has already been torn down (#2465).
135
+ *
136
+ * The teardown `initOnce()` runs as part of its OWN re-init deliberately does
137
+ * NOT bump it — see `destroy()` vs `teardown()`. Bumping there would make
138
+ * every re-init invalidate itself, and nothing would ever become ready again.
139
+ */
140
+ private initGeneration;
88
141
  /**
89
142
  * Set once the GPU device is lost for a non-intentional reason (driver
90
143
  * reset / VRAM exhaustion — see `WebGPUDevice`). Every GPU resource is then
91
144
  * dead, so `render()` becomes a no-op (it would only spew validation errors)
92
- * until the host re-initialises the renderer. Consumers learn of this via
93
- * `onDeviceLost` and typically respond by reloading the model.
145
+ * and the renderer stops reporting itself ready (`isReady()` goes false,
146
+ * `whenReady()` rejects) until the host re-initialises it. Consumers learn
147
+ * of this via `onDeviceLost` and typically respond by reloading the model.
148
+ *
149
+ * Two signals set it: the async `device.lost` promise (Chromium), and a
150
+ * frame throwing a `DOMException` out of `render()` (Safari 26.5, which
151
+ * reports the loss synchronously — issue #2229). Whichever arrives first
152
+ * latches. A frame throwing anything else does NOT latch (see
153
+ * `isDeviceLossThrow`) — that class is host memory pressure on a live
154
+ * device, and it must cost one frame, not the session.
94
155
  */
95
156
  private deviceLost;
157
+ /**
158
+ * The lifecycle generation the latched loss belongs to (see
159
+ * `initGeneration`); null until the first loss, and never cleared
160
+ * afterwards. It is only ever read next to `deviceLost`, which is what
161
+ * makes a stale stamp harmless — and that pairing is required, not
162
+ * cosmetic: a loss that latched between `init()` bumping the generation and
163
+ * its queued body running is stamped with the CURRENT generation, and only
164
+ * the flag that body clears says the renderer has moved on.
165
+ *
166
+ * `whenReady()` rejects only while this still equals the CURRENT generation,
167
+ * which is what re-arms the wait the instant a host calls `init()` — before
168
+ * the queued body has had a chance to clear `deviceLost` itself. Without
169
+ * that, `renderer.init(); await renderer.whenReady();` — the recovery shape
170
+ * `init()` already revokes readiness synchronously for — would reject inside
171
+ * the microtask window on a renderer that is being brought back up.
172
+ *
173
+ * Scoping it here rather than clearing `deviceLost` in `init()` keeps the
174
+ * flag meaning exactly one thing everywhere else: `render()`, the pick path
175
+ * and `getGPUDevice()` must stay shut for the OLD device across that same
176
+ * window, and clearing early would let frames run against dead GPU objects
177
+ * (and, on Safari, re-latch and re-notify the loss they already reported).
178
+ */
179
+ private deviceLostGeneration;
180
+ /** Retained so a listener registered AFTER the loss still learns of it. */
181
+ private deviceLostInfo;
96
182
  private deviceLostListeners;
97
183
  private deviationPipeline;
98
184
  /**
@@ -103,12 +189,56 @@ export declare class Renderer {
103
189
  * want to pay that on every slider drag.
104
190
  */
105
191
  private deviationBvhFingerprint;
106
- private visualEnhancementState;
107
- private modelBounds;
192
+ private readonly visualEnhancementResolver;
193
+ private readonly modelBoundsTracker;
194
+ /** Read-only view of the tracked scene AABB (live reference, not a copy). */
195
+ private get modelBounds();
108
196
  private pickingManager;
109
197
  private raycastEngine;
110
198
  private lastRenderErrorTime;
111
199
  private readonly RENDER_ERROR_THROTTLE_MS;
200
+ /**
201
+ * Consecutive frames that threw a non-device error and were degraded.
202
+ * Reset by any frame that completes. Gates the self-retry in `render()`'s
203
+ * catch — see there for why it is a retry budget and not a latch — and,
204
+ * since #2417, the persistent-degradation report as well. Both readings
205
+ * depend on the reset: this is the length of the CURRENT unbroken run of
206
+ * failures, never a session total (`_renderErrorCount` is that, and using
207
+ * it for either purpose would count failures the viewport recovered from).
208
+ */
209
+ private consecutiveDegradedFrames;
210
+ /**
211
+ * How many consecutive degraded frames may re-request themselves. Three is
212
+ * a blink at 60 Hz — enough for a transient host-memory spike to clear
213
+ * without the user touching anything, far too few to matter as wasted work
214
+ * if it does not. Beyond it the viewport goes quiet rather than spinning,
215
+ * and the next interaction/stream/animation drives it as normal.
216
+ */
217
+ private readonly MAX_DEGRADED_SELF_RETRIES;
218
+ /**
219
+ * Decides when degrading has stopped being transient (issue #2417). The
220
+ * non-latching branch is correct per occurrence and blind in aggregate: a
221
+ * failure that never clears leaves a wedged viewport that looks, from
222
+ * outside, exactly like one that recovered. Fires once per session.
223
+ */
224
+ private readonly renderDegradation;
225
+ private persistentDegradationListeners;
226
+ /**
227
+ * Set by `containFrameThrow` for the frame currently in flight, cleared by
228
+ * `render()` before each one.
229
+ *
230
+ * Needed because the encode region's catch is INSIDE `renderFrame()`, and
231
+ * it swallows its throw: a frame that failed there returns to `render()`
232
+ * perfectly normally, so "did not throw" is not the same question as "did
233
+ * not fail". Without this flag `render()` reads it as a completed frame and
234
+ * resets `consecutiveDegradedFrames` on the very next line — which makes
235
+ * `++count <= MAX_DEGRADED_SELF_RETRIES` true on EVERY encode failure, so
236
+ * the retry budget never exhausts and a persistently failing encode path
237
+ * re-requests one throwing frame per rAF forever. It also caps the run
238
+ * length at 1, so no persistent-degradation report could ever fire for the
239
+ * region this PR exists to cover.
240
+ */
241
+ private frameContainedThrow;
112
242
  private _renderCallCount;
113
243
  private _renderSkipCount;
114
244
  /** Snapshot of the last completed render() — see getFrameStats(). */
@@ -132,9 +262,27 @@ export declare class Renderer {
132
262
  private _activePickClipBox;
133
263
  constructor(canvas: HTMLCanvasElement);
134
264
  /**
135
- * Initialize renderer
265
+ * Initialize renderer.
266
+ *
267
+ * Safe to call on an already-initialised instance: the previous GPU objects
268
+ * are released first. The comment below advertises a `destroy()` + `init()`
269
+ * re-init flow, and the obvious device-loss auto-recovery is to call
270
+ * `init()` on the live instance — which, without this, silently orphaned
271
+ * two render pipelines, the picker, the post-processor, the point-cloud and
272
+ * deviation pipelines, the EDL pass and the overlay layer's glyph atlas, per
273
+ * recovery (#2448). Making the method self-safe is cheaper than trusting
274
+ * every future caller to remember.
275
+ *
276
+ * Concurrent calls are SERIALISED, not coalesced: the second waits for the
277
+ * first to settle and then runs in full. Without that, `pipeline` — which
278
+ * only ever marks a COMPLETED init — is still null while the first call is
279
+ * awaiting `device.init()`, so both calls sail past the guard above and both
280
+ * allocate a full set of GPU objects, orphaning the first. Queueing turns
281
+ * the concurrent case into the sequential one the guard already handles,
282
+ * rather than adding a second, differently-shaped rule.
136
283
  */
137
284
  init(): Promise<void>;
285
+ private initOnce;
138
286
  /**
139
287
  * Resolves once `init()` has finished and the GPU device + point-cloud
140
288
  * renderer are usable. Callers that may run before init completes — e.g.
@@ -142,15 +290,51 @@ export declare class Renderer {
142
290
  * the async WebGPU init resolves — should `await renderer.whenReady()`
143
291
  * before `beginPointCloudStream`, which otherwise throws
144
292
  * "Renderer not initialized".
293
+ *
294
+ * REJECTS (with an `Error` whose `name` is `RendererDestroyedError`) if
295
+ * `destroy()` runs while the caller is waiting, or if it already ran and no
296
+ * `init()` has been started since. It never resolves against a destroyed
297
+ * renderer — that is what this method exists to prevent — so the only
298
+ * alternative would be a promise that never settles, which suspends the
299
+ * caller's async frame permanently and takes everything the frame captured
300
+ * with it. The viewer reaches that state on an ordinary path: `Viewport`
301
+ * builds a NEW `Renderer` per mount and destroys the old one in its effect
302
+ * cleanup, so a `destroy()` there is FINAL for the instance a consumer
303
+ * captured — a point-cloud drop that straddles a layout swap or a
304
+ * StrictMode remount would otherwise hang mid-load, with no error, forever.
305
+ * Callers should handle the rejection as "the target went away", not as a
306
+ * load failure.
307
+ *
308
+ * It also REJECTS (`RendererDeviceLostError`) while the GPU device is lost.
309
+ * The device is what this method promises, and a lost one cannot serve the
310
+ * call the caller is waiting to make — `getGPUDevice()` returns null, so
311
+ * `beginPointCloudStream` throws "Renderer not initialized" the moment the
312
+ * wait resolves. The third outcome is the one `destroy()` already ruled out:
313
+ * parking a waiter that only a host-initiated `init()` could ever settle,
314
+ * and that the viewer's usual response to a loss (drop this renderer, build
315
+ * a new one) guarantees will never come. Unlike the destroyed case this is
316
+ * NOT final — a later `init()` on the same instance re-arms the wait
317
+ * synchronously, so "retry after re-init" is a contract callers can act on,
318
+ * which is why the two rejections carry different names.
145
319
  */
146
320
  whenReady(): Promise<void>;
147
321
  private markReady;
322
+ /**
323
+ * Fail every parked `whenReady()` waiter with `error`. Called by `destroy()`
324
+ * and by `handleDeviceLost()` — the two events after which nothing this
325
+ * instance does on its own can make the wait true. NOT by `teardown()`,
326
+ * whose waiters belong to the re-init running it and must survive to be
327
+ * flushed by it.
328
+ */
329
+ private rejectReadyWaiters;
148
330
  /**
149
331
  * Subscribe to non-intentional GPU device loss (driver reset / VRAM
150
332
  * exhaustion — NOT an intentional `destroy()`). Fired at most once per
151
- * device. After it fires, `render()` is a no-op until the renderer is
152
- * re-initialised, so the typical response is to dispose this renderer and
153
- * reload the model. Returns an unsubscribe function.
333
+ * device. After it fires, `render()` is a no-op and the renderer reports
334
+ * itself un-ready (`isReady()` false, `whenReady()` rejecting with
335
+ * `RendererDeviceLostError`) until it is re-initialised, so the typical
336
+ * response is to dispose this renderer and reload the model. Returns an
337
+ * unsubscribe function.
154
338
  *
155
339
  * Camera and model state live on the CPU (JS) and survive device loss, so a
156
340
  * reload restores the model at its current orientation — the loss is a GPU
@@ -160,9 +344,49 @@ export declare class Renderer {
160
344
  message: string;
161
345
  reason: string;
162
346
  }) => void): () => void;
347
+ /**
348
+ * Subscribe to the renderer having degraded frame after frame without
349
+ * recovering (issue #2417). Distinct from `onDeviceLost`: the device is
350
+ * still alive by every signal available, which is exactly why `render()`
351
+ * refuses to latch on these throws — but the user is looking at a viewport
352
+ * that has stopped updating, and until this callback existed nothing said
353
+ * so. Fired at most once per renderer, once `PERSISTENT_DEGRADATION_FRAMES`
354
+ * frames have degraded CONSECUTIVELY — any frame that completes resets the
355
+ * run, so a session that failed occasionally and recovered every time never
356
+ * reports. Returns an unsubscribe function.
357
+ *
358
+ * No replay for a late subscriber, unlike `onDeviceLost` — a loss can latch
359
+ * during `init()`, before any subscriber can exist, but a degraded frame
360
+ * cannot: `renderFrame()` returns early while `pipeline` is null, so the
361
+ * count only moves once the host is driving frames, which is strictly after
362
+ * `init()` resolved and the host subscribed.
363
+ */
364
+ onPersistentRenderDegradation(listener: (info: RenderDegradationInfo) => void): () => void;
163
365
  /** True once the GPU device has been lost for a non-intentional reason. */
164
366
  isDeviceLost(): boolean;
165
367
  private handleDeviceLost;
368
+ /**
369
+ * Contain a throw that escaped part of a frame, and decide what it meant.
370
+ *
371
+ * ONE body for both of `render()`'s catches (issue #2417). They used to
372
+ * differ in the only way that matters: the outer one discriminated on
373
+ * `isDeviceLossThrow`, the encode-region one did not, so a device that died
374
+ * after `getCurrentTexture()` succeeded degraded quietly forever — no latch,
375
+ * no toast, no `onDeviceLost`. Sharing the body is what stops the two
376
+ * halves of one policy drifting apart again.
377
+ *
378
+ * Callers keep only what is genuinely theirs: the outer catch counts the
379
+ * frame as a skip, the encode catch balances the validation error scope
380
+ * first. `origin` distinguishes them in logs and in the degradation report.
381
+ */
382
+ private containFrameThrow;
383
+ /**
384
+ * Fan out the once-per-session "this viewport is not recovering" report.
385
+ * The renderer files no telemetry itself (it is host-agnostic and must stay
386
+ * PostHog-free); the host subscribes and routes it through whatever it
387
+ * already uses for device loss.
388
+ */
389
+ private notePersistentDegradation;
166
390
  /**
167
391
  * Replace all loaded point clouds with `assets`.
168
392
  *
@@ -200,14 +424,6 @@ export declare class Renderer {
200
424
  * buffer rewrite needed.
201
425
  */
202
426
  relabelPointCloudAsset(handle: import('./pointcloud/point-cloud-renderer.js').PointCloudAssetHandle, newExpressId: number): void;
203
- /**
204
- * Compute model bounds from triangle meshes + remaining point clouds.
205
- * Called from removeAsset / clear paths so bounds shrink correctly.
206
- * Triangle meshes still drive the bounds when present (existing
207
- * Scene-driven path), so this only re-folds in the point cloud
208
- * extents over whatever the mesh path left.
209
- */
210
- private recomputeModelBounds;
211
427
  /** Aggregate bounds across all batched + individual meshes. Returns
212
428
  * null if the scene has no mesh geometry. */
213
429
  private computeMeshBounds;
@@ -274,7 +490,6 @@ export declare class Renderer {
274
490
  radiusPx?: number;
275
491
  highQuality?: boolean;
276
492
  }): void;
277
- private expandModelBoundsForPointClouds;
278
493
  /**
279
494
  * Load geometry from GeometryResult or MeshData array
280
495
  * This is the main entry point for loading IFC geometry into the renderer
@@ -331,10 +546,6 @@ export declare class Renderer {
331
546
  z: number;
332
547
  };
333
548
  }): void;
334
- /**
335
- * Update model bounds from mesh data
336
- */
337
- private updateModelBounds;
338
549
  /**
339
550
  * Create a GPU Mesh from MeshData (lazy creation for selection highlighting)
340
551
  * This is called on-demand when a mesh is selected, avoiding 2x buffer creation during streaming
@@ -365,7 +576,6 @@ export declare class Renderer {
365
576
  * balanced even on skipped or throwing frames.
366
577
  */
367
578
  private drainErrorScope;
368
- private resolveVisualEnhancement;
369
579
  /**
370
580
  * Render frame
371
581
  */
@@ -398,7 +608,40 @@ export declare class Renderer {
398
608
  * rejecting pipeline creation) batches stay on the f32 path.
399
609
  */
400
610
  enableQuantizedBatches(): Promise<boolean>;
611
+ /**
612
+ * Draw one frame.
613
+ *
614
+ * Never throws, so callers never need to guard this call to keep their
615
+ * animation loop alive.
616
+ *
617
+ * What a throw MEANS depends on its type (`isDeviceLossThrow`), and since
618
+ * issue #2417 that holds for the WHOLE frame — both this catch and the
619
+ * encode region's own, which share `containFrameThrow`:
620
+ * - a `DOMException` is the device reporting its own death synchronously
621
+ * (Safari 26.5, issue #2229). It latches the same `deviceLost` state the
622
+ * async `device.lost` promise would: later frames become quiet skips and
623
+ * `onDeviceLost` listeners fire exactly once.
624
+ * - anything else (a `RangeError` from a buffer the host cannot allocate,
625
+ * say) costs only this frame: the swap-chain config is invalidated so
626
+ * the next frame reconfigures, a frame is re-requested within a bounded
627
+ * budget, the failure is counted in `getDiagnostics()`, and rendering
628
+ * carries on. Once enough such frames have degraded without recovering,
629
+ * `onPersistentRenderDegradation` fires once.
630
+ *
631
+ * SCOPE: `renderFrame()` has two try/catch regions — this outer one (canvas
632
+ * resize, context setup, evicted-batch restore) and an inner one opened
633
+ * after the swap-chain texture is acquired, covering encoder work through
634
+ * `submit`. Until #2417 only the outer one discriminated, so a device that
635
+ * died after `getCurrentTexture()` succeeded degraded quietly forever with
636
+ * no latch and no toast. Both now run the same policy; the encode catch
637
+ * additionally balances the frame's validation error scope before doing so.
638
+ */
401
639
  render(options?: RenderOptions): void;
640
+ /**
641
+ * The frame body. Throws on a synchronously-dead GPU device; `render()`
642
+ * owns the containment. Private for that reason — call `render()`.
643
+ */
644
+ private renderFrame;
402
645
  /**
403
646
  * Pick object at screen coordinates
404
647
  * Respects visibility filtering so users can only select visible elements
@@ -553,17 +796,6 @@ export declare class Renderer {
553
796
  * Pass an empty Float32Array to clear.
554
797
  */
555
798
  uploadAnnotationLines3D(vertices: Float32Array): void;
556
- /** Walks a flat `[x,y,z,x,y,z,...]` vertex buffer and either initialises
557
- * or expands the cached `modelBounds` AABB. Used by the annotation
558
- * overlay upload paths so symbolic-only models can still be framed.
559
- *
560
- * The geometry pipeline pre-seeds a placeholder `[-100, 100]` cube on
561
- * every render when there are 0 meshes (so the section-plane slider
562
- * always has a workable range). For an annotation-only model that
563
- * fallback drowns out the much-smaller annotation cluster and a plain
564
- * "expand" would no-op. We detect the placeholder by its exact symmetric
565
- * signature and replace it with the actual annotation AABB instead. */
566
- private expandModelBoundsWithFlatVertices;
567
799
  /**
568
800
  * Clear the standalone annotation line overlay.
569
801
  */
@@ -588,6 +820,18 @@ export declare class Renderer {
588
820
  uploadGridLines3D(vertices: Float32Array): void;
589
821
  /** Clear the structural-grid overlay. */
590
822
  clearGridLines3D(): void;
823
+ /**
824
+ * Upload the DXF reference-layer's line paths as a flat
825
+ * [x,y,z,x,y,z,...] line-list in world space (issue #2043, follow-up to
826
+ * the 2D-only DXF underlay from #1782/#1929). Mirrors
827
+ * `uploadGridLines3D`: a dedicated buffer so 3D DXF visibility is
828
+ * independent of the 2D underlay's own toggle, and does NOT expand
829
+ * model bounds/reframe the camera on upload — it's behind its own
830
+ * visibility toggle, like grid axes. Pass an empty Float32Array to clear.
831
+ */
832
+ uploadDxfLines3D(vertices: Float32Array): void;
833
+ /** Clear the 3D DXF reference-layer overlay. */
834
+ clearDxfLines3D(): void;
591
835
  /**
592
836
  * Show (or clear) the clash-overlap box: the wireframe AABB of a focused
593
837
  * clash, drawn in `color` so the overlap region reads as a distinct third
@@ -629,7 +873,24 @@ export declare class Renderer {
629
873
  */
630
874
  getPipeline(): RenderPipeline | null;
631
875
  /**
632
- * Check if renderer is fully initialized and ready to use
876
+ * Check if renderer is fully initialized and ready to use.
877
+ *
878
+ * `ready` is part of the test, not decoration: between `init()` being called
879
+ * and its queued body running, the device and pipeline still belong to the
880
+ * PREVIOUS init and are about to be destroyed, so the other two conditions
881
+ * alone would report a renderer that is on its way out as usable.
882
+ *
883
+ * So is the device-loss check. A lost device is never torn down —
884
+ * `WebGPUDevice.destroy()` is the only thing that nulls the handle and an
885
+ * involuntary loss (driver reset / VRAM exhaustion / GPU-process crash)
886
+ * never calls it — so `isInitialized()` stays true, the pipeline stays
887
+ * non-null, and `ready` stays set from the init that completed before the
888
+ * loss. All three conditions therefore still hold while `render()` is a
889
+ * no-op and `getGPUDevice()` returns null: the renderer would report itself
890
+ * usable through this third door alone. Unlike the two revocations above
891
+ * this one needs no generation scoping — an `init()` clears `ready`
892
+ * synchronously, so a latch left standing until the queued body clears it
893
+ * cannot make this method spuriously false in the meantime.
633
894
  */
634
895
  isReady(): boolean;
635
896
  /**
@@ -663,8 +924,37 @@ export declare class Renderer {
663
924
  * post-processing buffers, section-plane renderers, and snap caches.
664
925
  * After calling this method the renderer is no longer usable.
665
926
  * Safe to call multiple times (idempotent).
927
+ *
928
+ * An `init()` still in flight is invalidated too. It is parked on
929
+ * `await device.init(...)`, and without the generation bump below it resumes
930
+ * after this returns, allocates a complete replacement GPU stack that nothing
931
+ * references, and re-publishes `ready` — resolving `whenReady()` waiters
932
+ * against a renderer the host has already torn down (#2465). The bump is what
933
+ * `initOnce()` re-checks after its await, and what makes `markReady()` refuse
934
+ * the stale completion.
935
+ *
936
+ * This is why the teardown itself lives in `teardown()`: `initOnce()` runs it
937
+ * on the PREVIOUS init's objects as part of its own re-init, and routing that
938
+ * through here would have every init invalidate its own generation, leaving
939
+ * `whenReady()` pending forever.
940
+ *
941
+ * Anyone parked in `whenReady()` is FAILED rather than left pending. Nothing
942
+ * after this call can make the wait true — the invalidation above is exactly
943
+ * what stops the in-flight init from publishing readiness, and a host that
944
+ * remounts builds a new `Renderer` rather than re-initialising this one — so
945
+ * leaving the promise unsettled suspends the caller's async frame for the
946
+ * lifetime of the page. `apps/viewer`'s point-cloud drop is one of those
947
+ * frames: it captured this instance before the teardown, and would stop
948
+ * mid-load with the spinner still up and no error to report. See
949
+ * `whenReady()` for the rejection contract.
666
950
  */
667
951
  destroy(): void;
952
+ /**
953
+ * Release every GPU object this renderer owns, WITHOUT invalidating an
954
+ * in-flight init. Callers: the public `destroy()` (which invalidates first)
955
+ * and `initOnce()`, tearing down the previous init before building its own.
956
+ */
957
+ private teardown;
668
958
  /**
669
959
  * Get the canvas element
670
960
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}