step 3: add widget shell and renderer foundation

This commit is contained in:
2026-07-02 14:20:22 +02:00
parent 34fd60c34e
commit 41e44a23bc
13 changed files with 683 additions and 84 deletions

View File

@@ -2,7 +2,7 @@
## Current status
Step 2 completed and verified. Ready to start Step 3.
Step 3 completed and verified with automated checks. Ready to start Step 4.
## Completed steps
@@ -28,7 +28,18 @@ Step 1 - Public API contract and pure core:
## Current step
Step 3 - Widget shell and renderer foundation.
Step 4 - Digital, bar, level, and status gauges.
Step 3 - Widget shell and renderer foundation:
Implemented during Step 3:
- Added Dear PyGui widget shell creation for gauge context managers when a DPG context is active.
- Kept pure registration behavior when no DPG context has been created.
- Added a renderer foundation that measures drawlist size, redraws stable placeholder background/frame/value text, schedules animation frames, and exposes renderer debug fields.
- Added draw layer bookkeeping.
- Added lightweight `gauge_panel` and `gauge_grid` containers.
- Added Step 3 examples and smoke tests.
Step 2 - State, sizing, animation, and smoothing model:
@@ -56,9 +67,9 @@ Implemented during Step 2:
- The public API should feel like normal Dear PyGui context-manager usage.
- Each completed build step must be checked, documented in this file, and committed before starting the next step.
## Known issues
## Known issues
None yet.
Manual visual example checks were not run in this headless session.
## Commands used
@@ -84,7 +95,14 @@ None yet.
- Ran `uv run ruff format --check .`.
- Ran `uv run pyright`.
- Updated instructions to require a commit after each completed step.
- Read `codex/FEATURES.md`, `codex/ARCHITECTURE.md`, `codex/STEPS.md`, and `codex/AGENTS.md` before Step 3 changes.
- Implemented Step 3 widget shells, renderer foundation, draw layer bookkeeping, layout helpers, examples, smoke tests, README status update, and diagnostics renderer fields.
- Ran `uv run pytest`.
- Ran `uv run ruff check .`.
- Ran `uv run ruff format .`.
- Ran `uv run ruff format --check .`.
- Ran `uv run pyright`.
## Next action
## Next action
Implement Step 3.
Implement Step 4.