From fd9331f6eb39a28da7de4867b2e3a460f667d514 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 23 Feb 2011 11:17:24 -0800 Subject: Revert "Separate out screen size and screen pixmap sizes in RRScreenSizeSet" This reverts commit 752c368421c1c824752cf467fba9318d75d2ca2c. --- hw/xfree86/common/xf86Helper.c | 6 +-- hw/xfree86/modes/xf86RandR12.c | 105 ++++++++++++----------------------------- randr/mirrcrtc.c | 7 ++- randr/randrstr.h | 4 -- randr/rrcrtc.c | 9 ++-- randr/rrscreen.c | 6 +-- 6 files changed, 41 insertions(+), 96 deletions(-) diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c index 9e2ffaace..1a5bf8a1c 100644 --- a/hw/xfree86/common/xf86Helper.c +++ b/hw/xfree86/common/xf86Helper.c @@ -1038,12 +1038,7 @@ xf86SetRootClip (ScreenPtr pScreen, Bool enable) RegionInit(&pWin->winSize, &box, 1); RegionInit(&pWin->borderSize, &box, 1); if (WasViewable) - { - PixmapPtr pPixmap = (*pScreen->GetScreenPixmap) (pScreen); - box.x2 = pPixmap->drawable.width; - box.y2 = pPixmap->drawable.height; RegionReset(&pWin->borderClip, &box); - } pWin->drawable.width = pScreen->width; pWin->drawable.height = pScreen->height; RegionBreak(&pWin->clipList); @@ -1121,6 +1116,7 @@ xf86EnableDisableFBAccess(int scrnIndex, Bool enable) */ if (!xf86Resetting) xf86SetRootClip (pScreen, TRUE); + } else { diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c index 407bf3567..dfe2cc33f 100644 --- a/hw/xfree86/modes/xf86RandR12.c +++ b/hw/xfree86/modes/xf86RandR12.c @@ -659,12 +659,10 @@ xf86RandR12SetConfig (ScreenPtr pScreen, static Bool xf86RandR12ScreenSetSize (ScreenPtr pScreen, - CARD16 width, - CARD16 height, - CARD16 pixWidth, - CARD16 pixHeight, - CARD32 mmWidth, - CARD32 mmHeight) + CARD16 width, + CARD16 height, + CARD32 mmWidth, + CARD32 mmHeight) { XF86RandRInfoPtr randrp = XF86RANDRINFO(pScreen); ScrnInfoPtr pScrn = XF86SCRNINFO(pScreen); @@ -672,8 +670,6 @@ xf86RandR12ScreenSetSize (ScreenPtr pScreen, WindowPtr pRoot = pScreen->root; PixmapPtr pScrnPix; Bool ret = FALSE; - Bool pixSizeChanged = FALSE; - Bool winSizeChanged = FALSE; int c; if (xf86RandR12Key) { @@ -681,85 +677,46 @@ xf86RandR12ScreenSetSize (ScreenPtr pScreen, { randrp->virtualX = pScrn->virtualX; randrp->virtualY = pScrn->virtualY; - pixSizeChanged = TRUE; } } + if (pRoot && pScrn->vtSema) + (*pScrn->EnableDisableFBAccess) (pScreen->myNum, FALSE); - pScrnPix = (*pScreen->GetScreenPixmap)(pScreen); - if (pixWidth != pScrnPix->drawable.width || - pixHeight != pScrnPix->drawable.height) - pixSizeChanged = TRUE; - - if (width != pScreen->width || height != pScreen->height) - winSizeChanged = TRUE; - - if (pixSizeChanged) - { - if (pRoot && pScrn->vtSema) - (*pScrn->EnableDisableFBAccess) (pScreen->myNum, FALSE); - - /* Let the driver update virtualX and virtualY */ - if (!(*config->funcs->resize)(pScrn, pixWidth, pixHeight)) - goto finish; - } + /* Let the driver update virtualX and virtualY */ + if (!(*config->funcs->resize)(pScrn, width, height)) + goto finish; ret = TRUE; - - if (winSizeChanged) - { - /* Update panning information */ - for (c = 0; c < config->num_crtc; c++) { - xf86CrtcPtr crtc = config->crtc[c]; - if (crtc->panningTotalArea.x2 > crtc->panningTotalArea.x1 || - crtc->panningTotalArea.y2 > crtc->panningTotalArea.y1) { - if (crtc->panningTotalArea.x2 > crtc->panningTrackingArea.x1) - crtc->panningTotalArea.x2 += width - pScreen->width; - if (crtc->panningTotalArea.y2 > crtc->panningTrackingArea.y1) - crtc->panningTotalArea.y2 += height - pScreen->height; - if (crtc->panningTrackingArea.x2 > crtc->panningTrackingArea.x1) - crtc->panningTrackingArea.x2 += width - pScreen->width; - if (crtc->panningTrackingArea.y2 > crtc->panningTrackingArea.y1) - crtc->panningTrackingArea.y2 += height - pScreen->height; - xf86RandR13VerifyPanningArea (crtc, width, height); - xf86RandR13Pan (crtc, randrp->pointerX, randrp->pointerY); - } + /* Update panning information */ + for (c = 0; c < config->num_crtc; c++) { + xf86CrtcPtr crtc = config->crtc[c]; + if (crtc->panningTotalArea.x2 > crtc->panningTotalArea.x1 || + crtc->panningTotalArea.y2 > crtc->panningTotalArea.y1) { + if (crtc->panningTotalArea.x2 > crtc->panningTrackingArea.x1) + crtc->panningTotalArea.x2 += width - pScreen->width; + if (crtc->panningTotalArea.y2 > crtc->panningTrackingArea.y1) + crtc->panningTotalArea.y2 += height - pScreen->height; + if (crtc->panningTrackingArea.x2 > crtc->panningTrackingArea.x1) + crtc->panningTrackingArea.x2 += width - pScreen->width; + if (crtc->panningTrackingArea.y2 > crtc->panningTrackingArea.y1) + crtc->panningTrackingArea.y2 += height - pScreen->height; + xf86RandR13VerifyPanningArea (crtc, width, height); + xf86RandR13Pan (crtc, randrp->pointerX, randrp->pointerY); } } pScrnPix = (*pScreen->GetScreenPixmap)(pScreen); - pScreen->width = width; - pScreen->height = height; - if (pRoot) - { - BoxRec box; - - pRoot->drawable.width = width; - pRoot->drawable.height = height; - box.x1 = 0; - box.y1 = 0; - box.x2 = width; - box.y2 = height; - RegionInit(&pRoot->winSize, &box, 1); - RegionInit(&pRoot->borderSize, &box, 1); - } - pScrnPix->drawable.width = pixWidth; - pScrnPix->drawable.height = pixHeight; + pScreen->width = pScrnPix->drawable.width = width; + pScreen->height = pScrnPix->drawable.height = height; randrp->mmWidth = pScreen->mmWidth = mmWidth; randrp->mmHeight = pScreen->mmHeight = mmHeight; - if (winSizeChanged) - { - xf86SetViewport (pScreen, pScreen->width-1, pScreen->height-1); - xf86SetViewport (pScreen, 0, 0); - } + xf86SetViewport (pScreen, pScreen->width-1, pScreen->height-1); + xf86SetViewport (pScreen, 0, 0); finish: - if (pixSizeChanged) - { - if (pRoot && pScrn->vtSema) - (*pScrn->EnableDisableFBAccess) (pScreen->myNum, TRUE); - } - + if (pRoot && pScrn->vtSema) + (*pScrn->EnableDisableFBAccess) (pScreen->myNum, TRUE); #if RANDR_12_INTERFACE if (xf86RandR12Key && pScreen->root && ret) RRScreenSizeNotify (pScreen); @@ -859,8 +816,6 @@ xf86RandR12CreateScreenResources (ScreenPtr pScreen) pScreen->width = width; pScreen->height = height; xf86RandR12ScreenSetSize (pScreen, - width, - height, width, height, mmWidth, diff --git a/randr/mirrcrtc.c b/randr/mirrcrtc.c index a9ee6b445..d493a0e88 100644 --- a/randr/mirrcrtc.c +++ b/randr/mirrcrtc.c @@ -28,6 +28,11 @@ miRRSetScreenConfig(ScreenPtr screen, { RRScreenConfigRec old_screen_config; + /* XXX deal with separate pixmap/screen sizes */ + if (screen_config->screen_pixmap_width != screen_config->screen_width || + screen_config->screen_pixmap_height != screen_config->screen_height) + return FALSE; + RRScreenCurrentConfig(screen, &old_screen_config); /* Check and see if nothing has changed */ @@ -42,8 +47,6 @@ miRRSetScreenConfig(ScreenPtr screen, return RRScreenSizeSet(screen, screen_config->screen_width, screen_config->screen_height, - screen_config->screen_pixmap_width, - screen_config->screen_pixmap_height, screen_config->mm_width, screen_config->mm_height); } diff --git a/randr/randrstr.h b/randr/randrstr.h index 7c553f21f..8240824db 100644 --- a/randr/randrstr.h +++ b/randr/randrstr.h @@ -191,8 +191,6 @@ struct _rrOutput { typedef Bool (*RRScreenSetSizeProcPtr) (ScreenPtr pScreen, CARD16 width, CARD16 height, - CARD16 pixWidth, - CARD16 pixHeight, CARD32 mmWidth, CARD32 mmHeight); @@ -480,8 +478,6 @@ extern _X_EXPORT Bool RRScreenSizeSet (ScreenPtr pScreen, CARD16 width, CARD16 height, - CARD16 pixWidth, - CARD16 pixHeight, CARD32 mmWidth, CARD32 mmHeight); diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c index 97aa3d7fa..0b2bc28c5 100644 --- a/randr/rrcrtc.c +++ b/randr/rrcrtc.c @@ -435,9 +435,10 @@ RRCrtcCurrentConfig(RRCrtcPtr crtc, crtc_config->sprite_position_f_transform = crtc->client_sprite_f_position_transform; crtc_config->sprite_image_f_transform = crtc->client_sprite_f_image_transform; - crtc_config->pixmap = crtc->scanoutPixmap; - crtc_config->pixmap_x = crtc->x; - crtc_config->pixmap_y = crtc->y; + /* XXX add pixmap stuff */ + crtc_config->pixmap = NULL; + crtc_config->pixmap_x = 0; + crtc_config->pixmap_y = 0; return TRUE; } @@ -1509,8 +1510,6 @@ RRConvertCrtcConfig(ClientPtr client, ScreenPtr screen, if (x->pixmap == None) pixmap = NULL; - else if (x->pixmap == RR_CurrentScanoutPixmap) - pixmap = crtc->scanoutPixmap; else { rc = dixLookupResourceByType((pointer *) &pixmap, x->pixmap, diff --git a/randr/rrscreen.c b/randr/rrscreen.c index 0efc62e87..c7387267a 100644 --- a/randr/rrscreen.c +++ b/randr/rrscreen.c @@ -168,8 +168,6 @@ Bool RRScreenSizeSet (ScreenPtr pScreen, CARD16 width, CARD16 height, - CARD16 pixWidth, - CARD16 pixHeight, CARD32 mmWidth, CARD32 mmHeight) { @@ -180,7 +178,6 @@ RRScreenSizeSet (ScreenPtr pScreen, { return (*pScrPriv->rrScreenSetSize) (pScreen, width, height, - pixWidth, pixHeight, mmWidth, mmHeight); } #endif @@ -320,7 +317,6 @@ ProcRRSetScreenSize (ClientPtr client) return BadValue; } if (!RRScreenSizeSet (pScreen, - stuff->width, stuff->height, stuff->width, stuff->height, stuff->widthInMillimeters, stuff->heightInMillimeters)) @@ -965,7 +961,7 @@ ProcRRSetScreenConfig (ClientPtr client) goto sendReply; } } - if (!RRScreenSizeSet (pScreen, width, height, width, height, + if (!RRScreenSizeSet (pScreen, width, height, pScreen->mmWidth, pScreen->mmHeight)) { rep.status = RRSetConfigFailed; -- cgit v1.2.3