Added more stats and fixed animations

They weren't cleared on reload via SIGUSR1
This commit is contained in:
Casey 2024-07-10 00:40:42 +03:00
parent f5f58cfcd6
commit d47ab01964
Signed by: hkc
GPG Key ID: F0F6CFE11CDB0960
1 changed files with 17 additions and 0 deletions

View File

@ -59,6 +59,8 @@ class Manager:
print("Resetting shmem...")
self.shmem.buf[OFFSET_AVOID:] = bytes(500000 - OFFSET_AVOID)
self.animations = []
self.animation_functions = []
if fontconfig := settings.get("default_font"):
self.default_font_size = int(fontconfig.get("size", 8))
@ -265,6 +267,7 @@ class Manager:
assert self.shmem is not None
print("Caught SIGUSR1, dumping state")
buf = bytes(self.shmem.buf[:])
print("# Dumping state.png")
with Image.new("RGB", (1000, 1000), 0) as im:
for i in range(1000000):
y, x = divmod(i, 1000)
@ -282,6 +285,7 @@ class Manager:
),
)
im.save("state.png")
print("# Dumping avoid.png")
with Image.new("L", (1000, 1000), 0) as im:
for i in range(1000000):
y, x = divmod(i, 1000)
@ -291,6 +295,19 @@ class Manager:
255 if (buf[OFFSET_AVOID + byte] << bit) & 0x80 else 0,
)
im.save("avoid.png")
print(f"# Animations {len(self.animations)}")
for anim in self.animations:
frame = int(time.time() / anim.spf) % len(anim.frames)
print(
str.format(
"X: {:4d} Y: {:4d} Frames: {:3d} S/F: {:4.1f} Frame: {:d}",
anim.x,
anim.y,
len(anim.frames),
anim.spf,
frame,
)
)
print("Dump done")
def on_sigusr2(self, signum, frame):