Skip to content

Commit 257d167

Browse files
committed
minimal_zgui_glfw_gl: fix dpi scaling
1 parent 3967de6 commit 257d167

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

libs/zgui/src/backend_glfw_opengl.zig

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,13 @@ pub fn deinit() void {
2222
ImGui_ImplOpenGL3_Shutdown();
2323
}
2424

25-
pub fn newFrame() void {
25+
pub fn newFrame(fb_width: u32, fb_height: u32) void {
2626
ImGui_ImplGlfw_NewFrame();
2727
ImGui_ImplOpenGL3_NewFrame();
2828

29+
gui.io.setDisplaySize(@as(f32, @floatFromInt(fb_width)), @as(f32, @floatFromInt(fb_height)));
30+
gui.io.setDisplayFramebufferScale(1.0, 1.0);
31+
2932
gui.newFrame();
3033
}
3134

samples/minimal_zgui_glfw_gl/src/minimal_zgui_glfw_gl.zig

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,17 @@ pub fn main() !void {
4343
zgui.init(gpa);
4444
defer zgui.deinit();
4545

46+
const scale_factor = scale_factor: {
47+
const scale = window.getContentScale();
48+
break :scale_factor @max(scale[0], scale[1]);
49+
};
4650
_ = zgui.io.addFontFromFile(
4751
content_dir ++ "Roboto-Medium.ttf",
48-
std.math.floor(16.0),
52+
std.math.floor(16.0 * scale_factor),
4953
);
5054

55+
zgui.getStyle().scaleAllSizes(scale_factor);
56+
5157
zgui.backend.init(window);
5258
defer zgui.backend.deinit();
5359

@@ -56,7 +62,9 @@ pub fn main() !void {
5662

5763
gl.clearBufferfv(gl.COLOR, 0, &[_]f32{ 0, 0, 0, 1.0 });
5864

59-
zgui.backend.newFrame();
65+
const fb_size = window.getFramebufferSize();
66+
67+
zgui.backend.newFrame(@intCast(fb_size[0]), @intCast(fb_size[1]));
6068

6169
// Set the starting window position and size to custom values
6270
zgui.setNextWindowPos(.{ .x = 20.0, .y = 20.0, .cond = .first_use_ever });

0 commit comments

Comments
 (0)