diff options
Diffstat (limited to 'src/input.zig')
-rw-r--r-- | src/input.zig | 45 |
1 files changed, 21 insertions, 24 deletions
diff --git a/src/input.zig b/src/input.zig index 9c2396c..31fda2e 100644 --- a/src/input.zig +++ b/src/input.zig @@ -45,23 +45,20 @@ const keys = [_][]const u8{ }; /// Keyboard key enumeration: https://www.glfw.org/docs/latest/group__keys.html -pub const Key = @Type(.{ - .Enum = .{ - .layout = .Auto, - .tag_type = c_int, - .fields = blk: { - var fields: [keys.len]EnumField = undefined; - for (keys) |name, i| - fields[i] = .{ - .name = name, - .value = @field(c, "GLFW_KEY_" ++ name), - }; - break :blk fields[0..]; - }, - .decls = &.{}, - .is_exhaustive = true, - } -}); +pub const Key = @Type(.{ .Enum = .{ + .tag_type = c_int, + .fields = blk: { + var fields: [keys.len]EnumField = undefined; + for (keys, 0..) |name, i| + fields[i] = .{ + .name = name, + .value = @field(c, "GLFW_KEY_" ++ name), + }; + break :blk fields[0..]; + }, + .decls = &.{}, + .is_exhaustive = true, +} }); /// Modifier key flags: https://www.glfw.org/docs/latest/group__mods.html pub const Mods = packed struct { @@ -85,8 +82,8 @@ pub const Mods = packed struct { /// Convert c_int to Mods. pub fn fromInt(mask: c_int) Mods { - const integer = @intCast(MaskInt, mask); - return @bitCast(Mods, Mask{ + const integer: MaskInt = @intCast(mask); + return @bitCast(Mask{ .integer = switch (endian) { .Big => @bitReverse(integer), .Little => integer, @@ -96,8 +93,8 @@ pub const Mods = packed struct { /// Convert Mods to c_int. pub fn toInt(self: Mods) c_int { - const integer = @bitCast(Mask, self).integer; - return @intCast(c_int, switch (endian) { + const integer = @as(Mask, @bitCast(self)).integer; + return @intCast(switch (endian) { .Big => @bitReverse(integer), .Little => integer, }); @@ -123,9 +120,9 @@ pub const MouseButton = enum(c_int) { @"7" = c.GLFW_MOUSE_BUTTON_7, @"8" = c.GLFW_MOUSE_BUTTON_8, - pub const left = @intToEnum(MouseButton, c.GLFW_MOUSE_BUTTON_LEFT); - pub const right = @intToEnum(MouseButton, c.GLFW_MOUSE_BUTTON_RIGHT); - pub const middle = @intToEnum(MouseButton, c.GLFW_MOUSE_BUTTON_MIDDLE); + pub const left: MouseButton = @enumFromInt(c.GLFW_MOUSE_BUTTON_LEFT); + pub const right: MouseButton = @enumFromInt(c.GLFW_MOUSE_BUTTON_RIGHT); + pub const middle: MouseButton = @enumFromInt(c.GLFW_MOUSE_BUTTON_MIDDLE); /// Mouse button input action: /// https://www.glfw.org/docs/latest/input_guide.html#input_mouse_button |