step 3: add widget shell sizing and frame pump

This commit is contained in:
2026-05-22 18:33:45 +02:00
parent 13b6a1e65b
commit 743a82f796
14 changed files with 568 additions and 12 deletions

View File

@@ -2,7 +2,7 @@
`dpg-map` is a Dear PyGui map widget package under rebuild.
The Step 2 logical runtime model is in place:
The Step 3 widget shell is in place:
```python
import dpg_map as dpgm
@@ -29,7 +29,21 @@ Implemented so far:
- 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
- Dear PyGui `child_window` + measured-size `drawlist` widget shell
- GUI-thread frame pump that drains commands and redraws a placeholder background
- sizing helpers that preserve the last non-zero size across hidden layouts
- interaction hit-rectangle calculation for the measured map area
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.
Real tile loading and overlay drawing are not implemented yet. Step 4 will add
the asynchronous tile manager, persistent tile loading, and GUI-thread texture
creation.
Examples:
```bash
uv run python examples/basic_map.py
uv run python examples/sizing_window.py
uv run python examples/sizing_child.py
uv run python examples/sizing_table.py
uv run python examples/hidden_tab.py
```