xfree86/xv: Factor out the meat of xf86XVAdjustFrame for later reuse

No functional change.

Signed-off-by: Ville Syrjälä <ville.syrjala@nokia.com>
Reviewed-by: Luc Verhaegen <luc.verhaegen@basyskom.de>
This commit is contained in:
Ville Syrjälä 2010-10-29 17:31:14 +03:00
parent 3d4d0237a3
commit 47d8bd0a99

View File

@ -1035,6 +1035,40 @@ xf86XVReputOrStopPort(XvPortRecPrivatePtr pPriv,
}
}
static void
xf86XVReputOrStopAllPorts(ScrnInfoPtr pScrn)
{
ScreenPtr pScreen = pScrn->pScreen;
XvScreenPtr pxvs = GET_XV_SCREEN(pScreen);
XvAdaptorPtr pa;
int c, i;
for (c = pxvs->nAdaptors, pa = pxvs->pAdaptors; c > 0; c--, pa++) {
XvPortPtr pPort = pa->pPorts;
for (i = pa->nPorts; i > 0; i--, pPort++) {
XvPortRecPrivatePtr pPriv = (XvPortRecPrivatePtr)pPort->devPriv.ptr;
WindowPtr pWin = (WindowPtr)pPriv->pDraw;
Bool visible;
if (pPriv->isOn == XV_OFF || !pWin)
continue;
visible = pWin->visibility == VisibilityUnobscured ||
pWin->visibility == VisibilityPartiallyObscured;
/*
* Stop and remove still/images if
* ReputImage isn't supported.
*/
if (!pPriv->type && !pPriv->AdaptorRec->ReputImage)
visible = FALSE;
xf86XVReputOrStopPort(pPriv, pWin, visible);
}
}
}
/**** ScreenRec fields ****/
static Bool
@ -1269,11 +1303,7 @@ xf86XVAdjustFrame(int index, int x, int y, int flags)
{
ScrnInfoPtr pScrn = xf86Screens[index];
ScreenPtr pScreen = pScrn->pScreen;
XvScreenPtr pxvs = GET_XV_SCREEN(pScreen);
XF86XVScreenPtr ScreenPriv = GET_XF86XV_SCREEN(pScreen);
WindowPtr pWin;
XvAdaptorPtr pa;
int c, i;
if(ScreenPriv->AdjustFrame) {
pScrn->AdjustFrame = ScreenPriv->AdjustFrame;
@ -1281,33 +1311,7 @@ xf86XVAdjustFrame(int index, int x, int y, int flags)
pScrn->AdjustFrame = xf86XVAdjustFrame;
}
for(c = pxvs->nAdaptors, pa = pxvs->pAdaptors; c > 0; c--, pa++) {
XvPortPtr pPort = pa->pPorts;
XvPortRecPrivatePtr pPriv;
for(i = pa->nPorts; i > 0; i--, pPort++) {
Bool visible;
pPriv = (XvPortRecPrivatePtr)pPort->devPriv.ptr;
pWin = (WindowPtr)pPriv->pDraw;
if (pPriv->isOn == XV_OFF || !pWin)
continue;
visible = pWin->visibility == VisibilityUnobscured ||
pWin->visibility == VisibilityPartiallyObscured;
/*
* Stop and remove still/images if
* ReputImage isn't supported.
*/
if (!pPriv->type && !pPriv->AdaptorRec->ReputImage)
visible = FALSE;
xf86XVReputOrStopPort(pPriv, pWin, visible);
}
}
xf86XVReputOrStopAllPorts(pScrn);
}