chore(display): add debug logging to NullDisplay for development
- Print first few frames periodically to aid debugging - Remove obsolete design doc This helps inspect buffer contents when running headless tests.
This commit is contained in:
@@ -33,6 +33,8 @@ class NullDisplay:
|
||||
self._last_buffer = None
|
||||
|
||||
def show(self, buffer: list[str], border: bool = False) -> None:
|
||||
import sys
|
||||
|
||||
from engine.display import get_monitor, render_border
|
||||
|
||||
# Get FPS for border (if available)
|
||||
@@ -52,6 +54,26 @@ class NullDisplay:
|
||||
buffer = render_border(buffer, self.width, self.height, fps, frame_time)
|
||||
|
||||
self._last_buffer = buffer
|
||||
|
||||
# For debugging: print first few frames to stdout
|
||||
if hasattr(self, "_frame_count"):
|
||||
self._frame_count += 1
|
||||
else:
|
||||
self._frame_count = 0
|
||||
|
||||
# Only print first 5 frames or every 10th frame
|
||||
if self._frame_count <= 5 or self._frame_count % 10 == 0:
|
||||
sys.stdout.write("\n" + "=" * 80 + "\n")
|
||||
sys.stdout.write(
|
||||
f"Frame {self._frame_count} (buffer height: {len(buffer)})\n"
|
||||
)
|
||||
sys.stdout.write("=" * 80 + "\n")
|
||||
for i, line in enumerate(buffer[:30]): # Show first 30 lines
|
||||
sys.stdout.write(f"{i:2}: {line}\n")
|
||||
if len(buffer) > 30:
|
||||
sys.stdout.write(f"... ({len(buffer) - 30} more lines)\n")
|
||||
sys.stdout.flush()
|
||||
|
||||
if monitor:
|
||||
t0 = time.perf_counter()
|
||||
chars_in = sum(len(line) for line in buffer)
|
||||
|
||||
Reference in New Issue
Block a user