cd9e8b61
Add ScaleTracker.enteredCount
a73x 2026-04-16 10:41
Exposes the size of the entered-output set so higher layers can gate rendering on surface visibility.
diff --git a/src/scale_tracker.zig b/src/scale_tracker.zig index 87c2e45..5cda2b6 100644 --- a/src/scale_tracker.zig +++ b/src/scale_tracker.zig @@ -52,6 +52,10 @@ pub const ScaleTracker = struct { } return max_scale; } pub fn enteredCount(self: *const ScaleTracker) usize { return self.entered.count(); } }; test "new tracker reports default scale of 1" { @@ -135,3 +139,26 @@ test "setOutputScale on unknown id is a no-op" { t.setOutputScale(999, 5); try std.testing.expectEqual(@as(i32, 1), t.bufferScale()); } test "enteredCount reflects the entered-output set" { var t = ScaleTracker.init(std.testing.allocator); defer t.deinit(); try std.testing.expectEqual(@as(usize, 0), t.enteredCount()); try t.addOutput(1); try t.addOutput(2); try std.testing.expectEqual(@as(usize, 0), t.enteredCount()); try t.enterOutput(1); try std.testing.expectEqual(@as(usize, 1), t.enteredCount()); try t.enterOutput(2); try std.testing.expectEqual(@as(usize, 2), t.enteredCount()); t.leaveOutput(1); try std.testing.expectEqual(@as(usize, 1), t.enteredCount()); t.removeOutput(2); try std.testing.expectEqual(@as(usize, 0), t.enteredCount()); }