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 {
160
160
}
161
161
}
162
162
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
+
163
170
pub fn getNumberOfVideoModes (self : * Monitor ) usize {
164
171
var count : u32 = 0 ;
165
172
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 ) {
167
174
count += 1 ;
168
175
}
169
176
return count ;
170
177
}
171
178
172
179
pub fn getVideoMode (self : * Monitor , index : usize ) lib.VideoMode {
173
180
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 );
175
182
return .{
176
183
.width = @intCast (dev_mode .dmPelsWidth ),
177
184
.height = @intCast (dev_mode .dmPelsHeight ),
You can’t perform that action at this time.
0 commit comments