step 4: add async tiles and persistent cache
This commit is contained in:
21
AGENTS.md
21
AGENTS.md
@@ -2,17 +2,18 @@
|
||||
|
||||
## Current status
|
||||
|
||||
Step 3 complete.
|
||||
Step 4 complete.
|
||||
|
||||
## Completed steps
|
||||
|
||||
Step 1 - Public API contract and pure core.
|
||||
Step 2 - Thread-safe state, commands, overlays, and cache model.
|
||||
Step 3 - Widget shell, sizing system, and GUI-thread frame pump.
|
||||
Step 4 - Tile manager, persistent cache, and asynchronous loading.
|
||||
|
||||
## Current step
|
||||
|
||||
Step 4 - Tile manager, persistent cache, and asynchronous loading.
|
||||
Step 5 - Interaction: pan, zoom, and view commands.
|
||||
|
||||
## Design decisions
|
||||
|
||||
@@ -45,15 +46,29 @@ None yet.
|
||||
- Implemented GUI-thread renderer frame pump that schedules frame callbacks, drains command queues, measures size, resizes the drawlist, and draws a placeholder background/attribution.
|
||||
- Implemented sizing helpers for measured size, last non-zero size preservation, visibility transitions, effective draw size, and resize dirty flags.
|
||||
- Implemented map interaction hit-rectangle calculation.
|
||||
- Implemented TileID, TileStatus, Tile, visible tile calculation, and TileManager.
|
||||
- Implemented asynchronous tile worker queue for disk reads, HTTP fetches, and image decoding.
|
||||
- Implemented provider-namespaced persistent cache writes, access metadata updates, clearing, and LRU pruning.
|
||||
- Implemented memory tile cache with visible-tile protection and deferred GUI-thread texture deletion.
|
||||
- Integrated tile result processing, stale generation/provider rejection, texture creation, and tile drawing into the GUI-thread renderer.
|
||||
- Added OpenStreetMap User-Agent warning/fallback and configured examples with example user agents.
|
||||
- Added Step 3 examples for basic map, window sizing, child-window sizing, table sizing, and hidden-tab sizing.
|
||||
- Added Step 4 cache stress example.
|
||||
- Added Step 3 tests for sizing transitions, zero-size preservation, resize dirty flags, command drain ordering, and hit rectangles.
|
||||
- Added Step 4 tests for visible tile calculation, stale result rejection, protected memory eviction, and tile image decoding.
|
||||
- Ran a Dear PyGui context smoke check for `map_widget` child-window/drawlist creation.
|
||||
- Ran `uv run pytest`.
|
||||
- Ran `uv run ruff check .`.
|
||||
- Ran `uv run ruff format .`.
|
||||
- Ran `uv run ruff format --check .`.
|
||||
- Ran `uv run pyright`.
|
||||
- Ran `uv run pytest`.
|
||||
- Ran `uv run ruff check .`.
|
||||
- Ran `uv run ruff format .`.
|
||||
- Ran `uv run ruff format --check .`.
|
||||
- Ran `uv run pyright`.
|
||||
- Ran a Dear PyGui context smoke check for `map_widget` child-window/drawlist/texture-registry creation.
|
||||
|
||||
## Next action
|
||||
|
||||
Implement Step 4.
|
||||
Implement Step 5.
|
||||
|
||||
Reference in New Issue
Block a user