()
| 267 | }; |
| 268 | |
| 269 | const dispose: AnnotationMarkerRenderer['dispose'] = () => { |
| 270 | if (disposed) return; |
| 271 | disposed = true; |
| 272 | |
| 273 | if (instanceBuffer) { |
| 274 | try { |
| 275 | instanceBuffer.destroy(); |
| 276 | } catch { |
| 277 | // best-effort |
| 278 | } |
| 279 | } |
| 280 | instanceBuffer = null; |
| 281 | instanceCount = 0; |
| 282 | |
| 283 | try { |
| 284 | vsUniformBuffer.destroy(); |
| 285 | } catch { |
| 286 | // best-effort |
| 287 | } |
| 288 | }; |
| 289 | |
| 290 | return { prepare, render, dispose }; |
| 291 | } |