Bool fakeRandRGetInfo (ScreenPtr pScreen, Rotation *rotations) { KdScreenPriv(pScreen); KdScreenInfo *screen = pScreenPriv->screen; FakeScrPriv *scrpriv = screen->driver; RRScreenSizePtr pSize; Rotation randr; int n; *rotations = RR_Rotate_All|RR_Reflect_All; for (n = 0; n < pScreen->numDepths; n++) if (pScreen->allowedDepths[n].numVids) break; if (n == pScreen->numDepths) return FALSE; pSize = RRRegisterSize (pScreen, screen->width, screen->height, screen->width_mm, screen->height_mm); randr = KdSubRotation (scrpriv->randr, screen->randr); RRSetCurrentConfig (pScreen, randr, 0, pSize); return TRUE; }
Bool ephyrRandRGetInfo(ScreenPtr pScreen, Rotation * rotations) { KdScreenPriv(pScreen); KdScreenInfo *screen = pScreenPriv->screen; EphyrScrPriv *scrpriv = screen->driver; RRScreenSizePtr pSize; Rotation randr; int n = 0; struct { int width, height; } sizes[] = { {1600, 1200}, {1400, 1050}, {1280, 960}, {1280, 1024}, {1152, 864}, {1024, 768}, {832, 624}, {800, 600}, {720, 400}, {480, 640}, {640, 480}, {640, 400}, {320, 240}, {240, 320}, {160, 160}, {0, 0} }; EPHYR_LOG("mark"); *rotations = RR_Rotate_All | RR_Reflect_All; if (!hostx_want_preexisting_window(screen) && !hostx_want_fullscreen()) { /* only if no -parent switch */ while (sizes[n].width != 0 && sizes[n].height != 0) { RRRegisterSize(pScreen, sizes[n].width, sizes[n].height, (sizes[n].width * screen->width_mm) / screen->width, (sizes[n].height * screen->height_mm) / screen->height); n++; } } pSize = RRRegisterSize(pScreen, screen->width, screen->height, screen->width_mm, screen->height_mm); randr = KdSubRotation(scrpriv->randr, screen->randr); RRSetCurrentConfig(pScreen, randr, 0, pSize); return TRUE; }