| … | … | @@ -303,13 +303,14 @@ def _attempt_reconnect(): |
| 303 | 303 | _detector.register() |
| 304 | 304 | _detector.set_resize_callback(_on_shm_resized) |
| 305 | 305 | |
| 306 | | # Reuse existing baker to preserve _texture_ids (prevents re-requesting |
| 307 | | # all textures on reconnect). Only update SHM reference and ring buffer. |
| 306 | # Reuse existing baker but clear stale _texture_ids (Godot restarted; |
| 307 | # its VT has no registrations, so textures must be re-requested). |
| 308 | 308 | tile_ring_offset = _shm._region_size * 2 |
| 309 | 309 | tile_ring_size = _shm.size - tile_ring_offset |
| 310 | 310 | if _baker is not None: |
| 311 | 311 | _baker._shm = _shm |
| 312 | 312 | _baker.init_ring_buffer(tile_ring_offset, tile_ring_size) |
| 313 | _baker._texture_ids.clear() # Godot restarted; force re-registration |
| 313 | 314 | else: |
| 314 | 315 | _baker = TileBaker(_shm, tile_size=128, max_mips=8) |
| 315 | 316 | _baker.init_ring_buffer(tile_ring_offset, tile_ring_size) |