mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-04-12 10:48:39 +03:00

Closes #6702 This removes our mach-glfw dependency and replaces it with an in-tree pkg/glfw that includes both the source for compiling glfw as well as the Zig bindings. This matches the pattern from our other packages. This is based on the upstream mach-glfw work and therefore includes the original license and copyright information. The reasoning is stated in the issue but to summarize for the commit: - mach-glfw is no longer maintained, so we have to take ownership - mach-glfw depended on some large blobs of header files to enable cross-compilation but this isn't something we actually care about, so we can (and do) drop the blobs - mach-glfw blobs were hosted on mach hosts. given mach-glfw is unmaintained, we can't rely on this hosting - mach-glfw relied on a "glfw" package which was owned by another person to be Zig 0.14 compatible, but we no longer need to rely on this - mach-glfw builds were outdated based on latest Zig practices
51 lines
1.4 KiB
Zig
51 lines
1.4 KiB
Zig
//! Monitor video modes and related functions
|
|
//!
|
|
//! see also: glfw.Monitor.getVideoMode
|
|
|
|
const std = @import("std");
|
|
const c = @import("c.zig").c;
|
|
|
|
const VideoMode = @This();
|
|
|
|
handle: c.GLFWvidmode,
|
|
|
|
/// Returns the width of the video mode, in screen coordinates.
|
|
pub inline fn getWidth(self: VideoMode) u32 {
|
|
return @as(u32, @intCast(self.handle.width));
|
|
}
|
|
|
|
/// Returns the height of the video mode, in screen coordinates.
|
|
pub inline fn getHeight(self: VideoMode) u32 {
|
|
return @as(u32, @intCast(self.handle.height));
|
|
}
|
|
|
|
/// Returns the bit depth of the red channel of the video mode.
|
|
pub inline fn getRedBits(self: VideoMode) u32 {
|
|
return @as(u32, @intCast(self.handle.redBits));
|
|
}
|
|
|
|
/// Returns the bit depth of the green channel of the video mode.
|
|
pub inline fn getGreenBits(self: VideoMode) u32 {
|
|
return @as(u32, @intCast(self.handle.greenBits));
|
|
}
|
|
|
|
/// Returns the bit depth of the blue channel of the video mode.
|
|
pub inline fn getBlueBits(self: VideoMode) u32 {
|
|
return @as(u32, @intCast(self.handle.blueBits));
|
|
}
|
|
|
|
/// Returns the refresh rate of the video mode, in Hz.
|
|
pub inline fn getRefreshRate(self: VideoMode) u32 {
|
|
return @as(u32, @intCast(self.handle.refreshRate));
|
|
}
|
|
|
|
test "getters" {
|
|
const x = std.mem.zeroes(VideoMode);
|
|
_ = x.getWidth();
|
|
_ = x.getHeight();
|
|
_ = x.getRedBits();
|
|
_ = x.getGreenBits();
|
|
_ = x.getBlueBits();
|
|
_ = x.getRefreshRate();
|
|
}
|