diff options
author | Ville Syrjälä <ville.syrjala@nokia.com> | 2010-10-29 17:31:14 +0300 |
---|---|---|
committer | Ville Syrjälä <ville.syrjala@nokia.com> | 2010-11-26 18:01:05 +0200 |
commit | 47d8bd0a999693f47fd244dc876ef7f8fcd52854 (patch) | |
tree | 3efa95a7657cba1e09f8f266cd0a59852804e500 | |
parent | 3d4d0237a3981820a9b7290f69c7172a48659a10 (diff) |
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>
-rw-r--r-- | hw/xfree86/common/xf86xv.c | 66 |
1 files changed, 35 insertions, 31 deletions
diff --git a/hw/xfree86/common/xf86xv.c b/hw/xfree86/common/xf86xv.c index f70a2ef04..e4c50825d 100644 --- a/hw/xfree86/common/xf86xv.c +++ b/hw/xfree86/common/xf86xv.c @@ -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); } |