File tree Expand file tree Collapse file tree 1 file changed +9
-2
lines changed
Expand file tree Collapse file tree 1 file changed +9
-2
lines changed Original file line number Diff line number Diff line change @@ -160,18 +160,25 @@ pub fn getDpi(self: *Monitor) u32 {
160160 }
161161}
162162
163+ // Workaround as zigwin32 doesn't use the correct enum type for ENUM_DISPLAY_SETTINGS_MODE
164+ pub extern "user32" fn EnumDisplaySettingsW (
165+ lpszDeviceName : ? [* :0 ]const u16 ,
166+ iModeNum : u32 ,
167+ lpDevMode : ? * win32.DEVMODEW ,
168+ ) callconv (@import ("std" ).os .windows .WINAPI ) win32 .BOOL ;
169+
163170pub fn getNumberOfVideoModes (self : * Monitor ) usize {
164171 var count : u32 = 0 ;
165172 var dev_mode : win32.DEVMODEW = std .mem .zeroInit (win32 .DEVMODEW , .{ .dmSize = @sizeOf (win32 .DEVMODEW ) });
166- while (win32 . EnumDisplaySettingsW (self .adapter_win32_name , @enumFromInt ( count ) , & dev_mode ) != 0 ) {
173+ while (EnumDisplaySettingsW (self .adapter_win32_name , count , & dev_mode ) != 0 ) {
167174 count += 1 ;
168175 }
169176 return count ;
170177}
171178
172179pub fn getVideoMode (self : * Monitor , index : usize ) lib.VideoMode {
173180 var dev_mode : win32.DEVMODEW = std .mem .zeroInit (win32 .DEVMODEW , .{ .dmSize = @sizeOf (win32 .DEVMODEW ) });
174- std .debug .assert (win32 . EnumDisplaySettingsW (self .adapter_win32_name , @enumFromInt (index ), & dev_mode ) != 0 );
181+ std .debug .assert (EnumDisplaySettingsW (self .adapter_win32_name , @intCast (index ), & dev_mode ) != 0 );
175182 return .{
176183 .width = @intCast (dev_mode .dmPelsWidth ),
177184 .height = @intCast (dev_mode .dmPelsHeight ),
You can’t perform that action at this time.
0 commit comments