step 2: add thread safe state commands and cache model

This commit is contained in:
2026-05-22 18:28:09 +02:00
parent bd1ce7abff
commit 13b6a1e65b
12 changed files with 1272 additions and 51 deletions

View File

@@ -2,7 +2,7 @@
`dpg-map` is a Dear PyGui map widget package under rebuild.
The Step 1 public API contract is in place:
The Step 2 logical runtime model is in place:
```python
import dpg_map as dpgm
@@ -13,14 +13,23 @@ provider = dpgm.TileProvider(
attribution="Tiles (c) Example",
)
dpgm.register_provider(provider)
with dpgm.map_widget(tag="map", center=(47.9029, 1.9093), zoom=15):
dpgm.add_marker("vehicle", lat=47.9029, lon=1.9093)
dpgm.update_marker("vehicle", lat=47.9030, lon=1.9094, map_tag="map")
```
Implemented in Step 1:
Implemented so far:
- public package exports
- tile provider definitions and registry
- Web Mercator projection helpers
- initial cache dataclasses
- explicit stubs for GUI-dependent public functions
- thread-safe logical map state and map registry
- command queue with coalescing for overlay and view updates
- logical marker, polyline, trajectory, and layer models
- persistent disk cache path, metadata, scanning, and prune planning
GUI widget rendering and runtime state updates are planned for later rebuild steps.
Dear PyGui rendering is not implemented yet. The current `map_widget` is a logical
context manager used to register state; Step 3 will add the real child window,
drawlist, sizing, and GUI-thread frame pump.