summaryrefslogtreecommitdiff
path: root/src/detached/wire.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/detached/wire.zig')
-rw-r--r--src/detached/wire.zig11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/detached/wire.zig b/src/detached/wire.zig
index ee8c72fb..15d3641c 100644
--- a/src/detached/wire.zig
+++ b/src/detached/wire.zig
@@ -1178,6 +1178,7 @@ pub fn encodeServer(out: []u8, msg: ServerMsg) Error![]const u8 {
// 0 a file, else a bundled scene and one.
try w.putByte(if (pass.scene) |scene| @as(u8, @intFromEnum(scene)) + 1 else 0);
try w.putByte(pass.level);
+ try w.putByte(@intFromBool(pass.animated));
try w.putU32(pass.revision);
try w.putSlice16(pass.path);
try w.putSlice32(pass.spirv);
@@ -1206,7 +1207,7 @@ pub fn serverBound(msg: ServerMsg) usize {
.open_link => |u| u.len,
.post => |p| blk: {
var n: usize = 0;
- for (p.list()) |pass| n += 12 + pass.path.len + pass.spirv.len;
+ for (p.list()) |pass| n += 13 + pass.path.len + pass.spirv.len;
break :blk n;
},
};
@@ -1280,6 +1281,11 @@ pub fn decodeServer(tag: u8, payload: []const u8) Error!ServerMsg {
pass.* = .{
.scene = if (kind == 0) null else std.enums.fromInt(Scene, kind - 1) orelse return error.BadValue,
.level = try r.getByte(),
+ .animated = switch (try r.getByte()) {
+ 0 => false,
+ 1 => true,
+ else => return error.BadValue,
+ },
.revision = try r.getU32(),
.path = try r.getSlice16(),
.spirv = try r.getSlice32(),
@@ -1406,7 +1412,7 @@ test "detached wire: every server message round-trips" {
try testing.expectEqualStrings("https://x", (try roundServer(&buf, .{ .open_link = "https://x" })).open_link);
var chain: Post = .{ .animation = .always, .len = 2 };
chain.passes[0] = .{ .scene = .bloom, .level = 3 };
- chain.passes[1] = .{ .path = "~/wave.glsl", .spirv = "\x03\x02\x23\x07spirv", .revision = 7 };
+ chain.passes[1] = .{ .path = "~/wave.glsl", .spirv = "\x03\x02\x23\x07spirv", .revision = 7, .animated = true };
const back = (try roundServer(&buf, .{ .post = chain })).post;
try testing.expectEqual(ShaderAnimation.always, back.animation);
try testing.expectEqual(@as(u8, 2), back.len);
@@ -1416,6 +1422,7 @@ test "detached wire: every server message round-trips" {
try testing.expectEqualStrings("~/wave.glsl", back.passes[1].path);
try testing.expectEqualStrings("\x03\x02\x23\x07spirv", back.passes[1].spirv);
try testing.expectEqual(@as(u32, 7), back.passes[1].revision);
+ try testing.expect(back.passes[1].animated and !back.passes[0].animated);
}
test "detached wire: only the display's own effects are on the wire" {