Zhiyi Zhang (@zhiyi) commented about dlls/win32u/sysparams.c:
memset( &devmode->dmDriverExtra, 0, devmode->dmSize - offsetof(DEVMODEW, dmDriverExtra) ); if (index == ENUM_REGISTRY_SETTINGS) ret = read_registry_settings( adapter_path, devmode );
- else ret = user_driver->pEnumDisplaySettingsEx( device_name, index, devmode, flags );
- else ret = user_driver->pEnumDisplaySettingsEx( device_name, ENUM_CURRENT_SETTINGS, devmode, flags );
- if (index != ENUM_CURRENT_SETTINGS && index != ENUM_REGISTRY_SETTINGS && ret)
- {
for (ret = FALSE, mode = modes; mode && mode->dmSize; mode = NEXT_DEVMODEW(mode))
{
if (!(flags & EDS_ROTATEDMODE))
{
if ((mode->dmFields & DM_DISPLAYORIENTATION) != (devmode->dmFields & DM_DISPLAYORIENTATION)) continue;
All available display modes and the current display modes must have DM_DISPLAYORIENTATION. So you can simply this condition. Don't forget to set DM_DISPLAYORIENTATION for the current mode from other drivers, which can be a separate patch.