mi: Simplify composite border clip redirection interface

There's not really a good reason for mi to not just call the composite
code directly.

Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
Adam Jackson 2014-08-05 14:07:17 -04:00
parent 7b35dc9b15
commit 7eddc80bc4
3 changed files with 19 additions and 47 deletions

View File

@ -594,9 +594,6 @@ CompositeExtensionInit(void)
return;
CompositeReqCode = (CARD8) extEntry->base;
miRegisterRedirectBorderClipProc(compSetRedirectBorderClip,
compGetRedirectBorderClip);
/* Initialization succeeded */
noCompositeExtension = FALSE;
}

11
mi/mi.h
View File

@ -425,17 +425,6 @@ extern _X_EXPORT int miShapedWindowIn(RegionPtr /*universe */ ,
int /*y */
);
typedef void
(*SetRedirectBorderClipProcPtr) (WindowPtr pWindow, RegionPtr pRegion);
typedef RegionPtr
(*GetRedirectBorderClipProcPtr) (WindowPtr pWindow);
extern _X_EXPORT void
miRegisterRedirectBorderClipProc(SetRedirectBorderClipProcPtr setBorderClip,
GetRedirectBorderClipProcPtr getBorderClip);
extern _X_EXPORT int miValidateTree(WindowPtr /*pParent */ ,
WindowPtr /*pChild */ ,
VTKind /*kind */

View File

@ -99,8 +99,10 @@ Equipment Corporation.
#include "mi.h"
#include "regionstr.h"
#include "mivalidate.h"
#include "globals.h"
#ifdef COMPOSITE
#include "compint.h"
#endif
/*
* Compute the visibility of a shaped window
@ -160,17 +162,6 @@ miShapedWindowIn(RegionPtr universe, RegionPtr bounding,
return rgnOUT;
}
static GetRedirectBorderClipProcPtr miGetRedirectBorderClipProc;
static SetRedirectBorderClipProcPtr miSetRedirectBorderClipProc;
void
miRegisterRedirectBorderClipProc(SetRedirectBorderClipProcPtr setBorderClip,
GetRedirectBorderClipProcPtr getBorderClip)
{
miSetRedirectBorderClipProc = setBorderClip;
miGetRedirectBorderClipProc = getBorderClip;
}
/*
* Manual redirected windows are treated as transparent; they do not obscure
* siblings or parent windows
@ -242,11 +233,9 @@ miComputeClips(WindowPtr pParent,
* In redirected drawing case, reset universe to borderSize
*/
if (pParent->redirectDraw != RedirectDrawNone) {
if (miSetRedirectBorderClipProc) {
if (TreatAsTransparent(pParent))
RegionEmpty(universe);
(*miSetRedirectBorderClipProc) (pParent, universe);
}
if (TreatAsTransparent(pParent))
RegionEmpty(universe);
compSetRedirectBorderClip (pParent, universe);
RegionCopy(universe, &pParent->borderSize);
}
#endif
@ -516,6 +505,17 @@ miTreeObscured(WindowPtr pParent)
}
}
static RegionPtr
getBorderClip(WindowPtr pWin)
{
#ifdef COMPOSITE
if (pWin->redirectDraw != RedirectDrawNone)
return compGetRedirectBorderClip(pWin);
else
#endif
return &pWin->borderClip;
}
/*
*-----------------------------------------------------------------------
* miValidateTree --
@ -609,14 +609,7 @@ miValidateTree(WindowPtr pParent, /* Parent to validate */
forward = TRUE;
for (pWin = pChild; pWin; pWin = pWin->nextSib) {
if (pWin->valdata) {
RegionPtr pBorderClip = &pWin->borderClip;
#ifdef COMPOSITE
if (pWin->redirectDraw != RedirectDrawNone &&
miGetRedirectBorderClipProc)
pBorderClip = (*miGetRedirectBorderClipProc) (pWin);
#endif
RegionAppend(&totalClip, pBorderClip);
RegionAppend(&totalClip, getBorderClip(pWin));
if (pWin->viewable)
viewvals++;
}
@ -627,14 +620,7 @@ miValidateTree(WindowPtr pParent, /* Parent to validate */
pWin = pParent->lastChild;
while (1) {
if (pWin->valdata) {
RegionPtr pBorderClip = &pWin->borderClip;
#ifdef COMPOSITE
if (pWin->redirectDraw != RedirectDrawNone &&
miGetRedirectBorderClipProc)
pBorderClip = (*miGetRedirectBorderClipProc) (pWin);
#endif
RegionAppend(&totalClip, pBorderClip);
RegionAppend(&totalClip, getBorderClip(pWin));
if (pWin->viewable)
viewvals++;
}