You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I think it should provide the physical resolution and the scale factor instead of the (virtual) resolution, the virtual resolution will be affected by the PROCESS_DPI_AWARENESS .
The physical resolution can be got by EnumDisplaySettings function with ENUM_CURRENT_SETTINGS just like the one used in available_display_configurations().
DPI
All the DPI retrieved by GetDeviceCaps(hdc, LOGPIXELSX) in infoware for multiple displays is the system (primay display virtual) DPI, not per display.
< Windows 8.1 : GetDeviceCaps(hdc, LOGPIXELSX), system DPI
>= Windows 8.1 : GetDpiForMonitor(,MDT_EFFECTIVE_DPI,,) with SetProcessDpiAwareness(PROCESS_PER_MONITOR_DPI_AWARE), per monitor DPI, but may affect the UI of the process
>= Windows 10, version 1607 : GetDpiForMonitor(,MDT_EFFECTIVE_DPI,,) with SetThreadDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2) in a thread, per monitor DPI
More information
more information required, such as scale factor, position , primary, orientation.
The text was updated successfully, but these errors were encountered:
The resolution currently detected are virtual ones after scaling and the DPI seems to be wrong, like:
The infoware output:
Resolution
I think it should provide the physical resolution and the scale factor instead of the (virtual) resolution, the virtual resolution will be affected by the PROCESS_DPI_AWARENESS .
The physical resolution can be got by
EnumDisplaySettings
function withENUM_CURRENT_SETTINGS
just like the one used inavailable_display_configurations()
.DPI
All the DPI retrieved by
GetDeviceCaps(hdc, LOGPIXELSX)
in infoware for multiple displays is the system (primay display virtual) DPI, not per display.< Windows 8.1
:GetDeviceCaps(hdc, LOGPIXELSX)
, system DPI>= Windows 8.1
:GetDpiForMonitor(,MDT_EFFECTIVE_DPI,,)
withSetProcessDpiAwareness(PROCESS_PER_MONITOR_DPI_AWARE)
, per monitor DPI, but may affect the UI of the process>= Windows 10, version 1607
:GetDpiForMonitor(,MDT_EFFECTIVE_DPI,,)
withSetThreadDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2)
in a thread, per monitor DPIMore information
more information required, such as
scale factor
,position
,primary
,orientation
.The text was updated successfully, but these errors were encountered: