diff options
Diffstat (limited to 'src/control.zig')
| -rw-r--r-- | src/control.zig | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/control.zig b/src/control.zig index b48feab..1f6c4ba 100644 --- a/src/control.zig +++ b/src/control.zig @@ -73,24 +73,30 @@ pub const ControlServer = struct { if (self.cache.get(buffer[0 .. param_name.len + 1]) catch null) |uniform| { if (std.mem.eql(u8, types, "f")) { uniform.value.FLOAT = argv[0].*.f; - } else if (std.mem.eql(u8, types, "ff")) { + } else if (std.mem.eql(u8, types, "[ff]") + or std.mem.eql(u8, types, "ff")) { for (uniform.value.FLOAT_VEC2) |*dest, i| dest.* = argv[i].*.f; - } else if (std.mem.eql(u8, types, "fff")) { + } else if (std.mem.eql(u8, types, "[fff]") + or std.mem.eql(u8, types, "fff")) { for (uniform.value.FLOAT_VEC3) |*dest, i| dest.* = argv[i].*.f; - } else if (std.mem.eql(u8, types, "ffff")) { + } else if (std.mem.eql(u8, types, "[ffff]") + or std.mem.eql(u8, types, "ffff")) { for (uniform.value.FLOAT_VEC4) |*dest, i| dest.* = argv[i].*.f; } else if (std.mem.eql(u8, types, "i")) { uniform.value.INT = argv[0].*.i; - } else if (std.mem.eql(u8, types, "ii")) { + } else if (std.mem.eql(u8, types, "[ii]") + or std.mem.eql(u8, types, "ii")) { for (uniform.value.INT_VEC2) |*dest, i| dest.* = argv[i].*.i; - } else if (std.mem.eql(u8, types, "iii")) { + } else if (std.mem.eql(u8, types, "[iii]") + or std.mem.eql(u8, types, "iii")) { for (uniform.value.INT_VEC3) |*dest, i| dest.* = argv[i].*.i; - } else if (std.mem.eql(u8, types, "iiii")) { + } else if (std.mem.eql(u8, types, "[iiii]") + or std.mem.eql(u8, types, "iiii")) { for (uniform.value.INT_VEC4) |*dest, i| dest.* = argv[i].*.i; } else { |
