xfree86/xv: Factor out the meat of xf86XVWindowExposures for later reuse
No fucntional change. Signed-off-by: Ville Syrjälä <ville.syrjala@nokia.com> Reviewed-by: Luc Verhaegen <luc.verhaegen@basyskom.de>
This commit is contained in:
parent
0178173f05
commit
38987aae19
|
@ -1004,6 +1004,33 @@ xf86XVRemovePortFromWindow(WindowPtr pWin, XvPortRecPrivatePtr portPriv)
|
||||||
portPriv->pDraw = NULL;
|
portPriv->pDraw = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
xf86XVReputOrStopPort(XvPortRecPrivatePtr pPriv,
|
||||||
|
WindowPtr pWin,
|
||||||
|
Bool AreasExposed)
|
||||||
|
{
|
||||||
|
switch (pPriv->type) {
|
||||||
|
case XvInputMask:
|
||||||
|
xf86XVReputVideo(pPriv);
|
||||||
|
break;
|
||||||
|
case XvOutputMask:
|
||||||
|
xf86XVRegetVideo(pPriv);
|
||||||
|
break;
|
||||||
|
default: /* overlaid still/image*/
|
||||||
|
if (pPriv->AdaptorRec->ReputImage)
|
||||||
|
xf86XVReputImage(pPriv);
|
||||||
|
else if (AreasExposed) {
|
||||||
|
if (pPriv->isOn == XV_ON) {
|
||||||
|
(*pPriv->AdaptorRec->StopVideo)(pPriv->pScrn, pPriv->DevPriv.ptr, FALSE);
|
||||||
|
pPriv->isOn = XV_PENDING;
|
||||||
|
}
|
||||||
|
|
||||||
|
xf86XVRemovePortFromWindow(pWin, pPriv);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**** ScreenRec fields ****/
|
/**** ScreenRec fields ****/
|
||||||
|
|
||||||
static Bool
|
static Bool
|
||||||
|
@ -1063,32 +1090,8 @@ xf86XVWindowExposures(WindowPtr pWin, RegionPtr reg1, RegionPtr reg2)
|
||||||
while(WinPriv) {
|
while(WinPriv) {
|
||||||
pPriv = WinPriv->PortRec;
|
pPriv = WinPriv->PortRec;
|
||||||
|
|
||||||
/* Reput anyone with a reput function */
|
|
||||||
|
|
||||||
switch(pPriv->type) {
|
|
||||||
case XvInputMask:
|
|
||||||
xf86XVReputVideo(pPriv);
|
|
||||||
break;
|
|
||||||
case XvOutputMask:
|
|
||||||
xf86XVRegetVideo(pPriv);
|
|
||||||
break;
|
|
||||||
default: /* overlaid still/image*/
|
|
||||||
if (pPriv->AdaptorRec->ReputImage)
|
|
||||||
xf86XVReputImage(pPriv);
|
|
||||||
else if(AreasExposed) {
|
|
||||||
if (pPriv->isOn == XV_ON) {
|
|
||||||
(*pPriv->AdaptorRec->StopVideo)(
|
|
||||||
pPriv->pScrn, pPriv->DevPriv.ptr, FALSE);
|
|
||||||
pPriv->isOn = XV_PENDING;
|
|
||||||
}
|
|
||||||
|
|
||||||
WinPriv = WinPriv->next;
|
|
||||||
xf86XVRemovePortFromWindow(pWin, pPriv);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
WinPriv = WinPriv->next;
|
WinPriv = WinPriv->next;
|
||||||
|
xf86XVReputOrStopPort(pPriv, pWin, AreasExposed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue