mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-06 06:46:46 +00:00
win32u: Introduce a new internal WINE_DM_UNSUPPORTED display flag.
This commit is contained in:
parent
a225ad4efd
commit
bd8de2a882
|
@ -2136,6 +2136,8 @@ static const DEVMODEW *find_display_mode( const DEVMODEW *modes, DEVMODEW *devmo
|
|||
|
||||
for (mode = modes; mode && mode->dmSize; mode = NEXT_DEVMODEW(mode))
|
||||
{
|
||||
if ((mode->dmFields & DM_DISPLAYFLAGS) && (mode->dmDisplayFlags & WINE_DM_UNSUPPORTED))
|
||||
continue;
|
||||
if ((devmode->dmFields & DM_BITSPERPEL) && devmode->dmBitsPerPel && devmode->dmBitsPerPel != mode->dmBitsPerPel)
|
||||
continue;
|
||||
if ((devmode->dmFields & DM_PELSWIDTH) && devmode->dmPelsWidth != mode->dmPelsWidth)
|
||||
|
@ -2527,6 +2529,8 @@ BOOL WINAPI NtUserEnumDisplaySettings( UNICODE_STRING *device, DWORD index, DEVM
|
|||
else ret = user_driver->pGetCurrentDisplaySettings( adapter->dev.device_name, devmode );
|
||||
adapter_release( adapter );
|
||||
|
||||
devmode->dmDisplayFlags &= ~WINE_DM_UNSUPPORTED;
|
||||
|
||||
if (!ret) WARN( "Failed to query %s display settings.\n", debugstr_us(device) );
|
||||
else TRACE( "position %dx%d, resolution %ux%u, frequency %u, depth %u, orientation %#x.\n",
|
||||
devmode->dmPosition.x, devmode->dmPosition.y, devmode->dmPelsWidth, devmode->dmPelsHeight,
|
||||
|
|
|
@ -97,6 +97,13 @@ static int display_mode_bits_per_pixel(CGDisplayModeRef display_mode)
|
|||
}
|
||||
|
||||
|
||||
static BOOL display_mode_is_supported(CGDisplayModeRef display_mode)
|
||||
{
|
||||
uint32_t io_flags = CGDisplayModeGetIOFlags(display_mode);
|
||||
return (io_flags & kDisplayModeValidFlag) && (io_flags & kDisplayModeSafeFlag);
|
||||
}
|
||||
|
||||
|
||||
static void display_mode_to_devmode(CGDirectDisplayID display_id, CGDisplayModeRef display_mode, DEVMODEW *devmode)
|
||||
{
|
||||
uint32_t io_flags;
|
||||
|
@ -124,6 +131,8 @@ static void display_mode_to_devmode(CGDirectDisplayID display_id, CGDisplayModeR
|
|||
devmode->dmDisplayFlags = 0;
|
||||
if (io_flags & kDisplayModeInterlacedFlag)
|
||||
devmode->dmDisplayFlags |= DM_INTERLACED;
|
||||
if (!display_mode_is_supported(display_mode))
|
||||
devmode->dmDisplayFlags |= WINE_DM_UNSUPPORTED;
|
||||
devmode->dmFields |= DM_DISPLAYFLAGS;
|
||||
|
||||
devmode->dmDisplayFrequency = CGDisplayModeGetRefreshRate(display_mode);
|
||||
|
@ -417,13 +426,6 @@ static int get_default_bpp(void)
|
|||
}
|
||||
|
||||
|
||||
static BOOL display_mode_is_supported(CGDisplayModeRef display_mode)
|
||||
{
|
||||
uint32_t io_flags = CGDisplayModeGetIOFlags(display_mode);
|
||||
return (io_flags & kDisplayModeValidFlag) && (io_flags & kDisplayModeSafeFlag);
|
||||
}
|
||||
|
||||
|
||||
#if defined(MAC_OS_X_VERSION_10_8) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_8
|
||||
static CFDictionaryRef create_mode_dict(CGDisplayModeRef display_mode, BOOL is_original)
|
||||
{
|
||||
|
|
|
@ -269,6 +269,8 @@ struct gdi_device_manager
|
|||
void (*add_mode)( const DEVMODEW *mode, void *param );
|
||||
};
|
||||
|
||||
#define WINE_DM_UNSUPPORTED 0x80000000
|
||||
|
||||
struct tagUPDATELAYEREDWINDOWINFO;
|
||||
|
||||
struct user_driver_funcs
|
||||
|
|
Loading…
Reference in a new issue