static int X11DRV_XRandR_GetCurrentMode(void) { SizeID size; Rotation rot; Window root; XRRScreenConfiguration *sc; short rate; unsigned int i; int res = -1; wine_tsx11_lock(); root = RootWindow (gdi_display, DefaultScreen(gdi_display)); sc = pXRRGetScreenInfo (gdi_display, root); size = pXRRConfigCurrentConfiguration (sc, &rot); rate = pXRRConfigCurrentRate (sc); pXRRFreeScreenConfigInfo(sc); wine_tsx11_unlock(); for (i = 0; i < real_xrandr_modes_count; i++) { if ( (dd_modes[i].dwWidth == real_xrandr_sizes[size].width ) && (dd_modes[i].dwHeight == real_xrandr_sizes[size].height) && (dd_modes[i].wRefreshRate == rate ) ) { res = i; break; } } if (res == -1) { ERR("In unknown mode, returning default\n"); res = 0; } return res; }
static int xrandr10_get_current_mode(void) { SizeID size; Rotation rot; XRRScreenConfiguration *sc; short rate; unsigned int i; int res = -1; if (xrandr_current_mode != -1) return xrandr_current_mode; sc = pXRRGetScreenInfo (gdi_display, DefaultRootWindow( gdi_display )); size = pXRRConfigCurrentConfiguration (sc, &rot); rate = pXRRConfigCurrentRate (sc); pXRRFreeScreenConfigInfo(sc); for (i = 0; i < xrandr_mode_count; ++i) { if (xrandr10_modes[i] == size && dd_modes[i].refresh_rate == rate) { res = i; break; } } if (res == -1) { ERR("In unknown mode, returning default\n"); return 0; } xrandr_current_mode = res; return res; }