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:
parent
7b35dc9b15
commit
7eddc80bc4
|
@ -594,9 +594,6 @@ CompositeExtensionInit(void)
|
||||||
return;
|
return;
|
||||||
CompositeReqCode = (CARD8) extEntry->base;
|
CompositeReqCode = (CARD8) extEntry->base;
|
||||||
|
|
||||||
miRegisterRedirectBorderClipProc(compSetRedirectBorderClip,
|
|
||||||
compGetRedirectBorderClip);
|
|
||||||
|
|
||||||
/* Initialization succeeded */
|
/* Initialization succeeded */
|
||||||
noCompositeExtension = FALSE;
|
noCompositeExtension = FALSE;
|
||||||
}
|
}
|
||||||
|
|
11
mi/mi.h
11
mi/mi.h
|
@ -425,17 +425,6 @@ extern _X_EXPORT int miShapedWindowIn(RegionPtr /*universe */ ,
|
||||||
int /*y */
|
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 */ ,
|
extern _X_EXPORT int miValidateTree(WindowPtr /*pParent */ ,
|
||||||
WindowPtr /*pChild */ ,
|
WindowPtr /*pChild */ ,
|
||||||
VTKind /*kind */
|
VTKind /*kind */
|
||||||
|
|
|
@ -99,8 +99,10 @@ Equipment Corporation.
|
||||||
#include "mi.h"
|
#include "mi.h"
|
||||||
#include "regionstr.h"
|
#include "regionstr.h"
|
||||||
#include "mivalidate.h"
|
#include "mivalidate.h"
|
||||||
|
|
||||||
#include "globals.h"
|
#include "globals.h"
|
||||||
|
#ifdef COMPOSITE
|
||||||
|
#include "compint.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Compute the visibility of a shaped window
|
* Compute the visibility of a shaped window
|
||||||
|
@ -160,17 +162,6 @@ miShapedWindowIn(RegionPtr universe, RegionPtr bounding,
|
||||||
return rgnOUT;
|
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
|
* Manual redirected windows are treated as transparent; they do not obscure
|
||||||
* siblings or parent windows
|
* siblings or parent windows
|
||||||
|
@ -242,11 +233,9 @@ miComputeClips(WindowPtr pParent,
|
||||||
* In redirected drawing case, reset universe to borderSize
|
* In redirected drawing case, reset universe to borderSize
|
||||||
*/
|
*/
|
||||||
if (pParent->redirectDraw != RedirectDrawNone) {
|
if (pParent->redirectDraw != RedirectDrawNone) {
|
||||||
if (miSetRedirectBorderClipProc) {
|
if (TreatAsTransparent(pParent))
|
||||||
if (TreatAsTransparent(pParent))
|
RegionEmpty(universe);
|
||||||
RegionEmpty(universe);
|
compSetRedirectBorderClip (pParent, universe);
|
||||||
(*miSetRedirectBorderClipProc) (pParent, universe);
|
|
||||||
}
|
|
||||||
RegionCopy(universe, &pParent->borderSize);
|
RegionCopy(universe, &pParent->borderSize);
|
||||||
}
|
}
|
||||||
#endif
|
#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 --
|
* miValidateTree --
|
||||||
|
@ -609,14 +609,7 @@ miValidateTree(WindowPtr pParent, /* Parent to validate */
|
||||||
forward = TRUE;
|
forward = TRUE;
|
||||||
for (pWin = pChild; pWin; pWin = pWin->nextSib) {
|
for (pWin = pChild; pWin; pWin = pWin->nextSib) {
|
||||||
if (pWin->valdata) {
|
if (pWin->valdata) {
|
||||||
RegionPtr pBorderClip = &pWin->borderClip;
|
RegionAppend(&totalClip, getBorderClip(pWin));
|
||||||
|
|
||||||
#ifdef COMPOSITE
|
|
||||||
if (pWin->redirectDraw != RedirectDrawNone &&
|
|
||||||
miGetRedirectBorderClipProc)
|
|
||||||
pBorderClip = (*miGetRedirectBorderClipProc) (pWin);
|
|
||||||
#endif
|
|
||||||
RegionAppend(&totalClip, pBorderClip);
|
|
||||||
if (pWin->viewable)
|
if (pWin->viewable)
|
||||||
viewvals++;
|
viewvals++;
|
||||||
}
|
}
|
||||||
|
@ -627,14 +620,7 @@ miValidateTree(WindowPtr pParent, /* Parent to validate */
|
||||||
pWin = pParent->lastChild;
|
pWin = pParent->lastChild;
|
||||||
while (1) {
|
while (1) {
|
||||||
if (pWin->valdata) {
|
if (pWin->valdata) {
|
||||||
RegionPtr pBorderClip = &pWin->borderClip;
|
RegionAppend(&totalClip, getBorderClip(pWin));
|
||||||
|
|
||||||
#ifdef COMPOSITE
|
|
||||||
if (pWin->redirectDraw != RedirectDrawNone &&
|
|
||||||
miGetRedirectBorderClipProc)
|
|
||||||
pBorderClip = (*miGetRedirectBorderClipProc) (pWin);
|
|
||||||
#endif
|
|
||||||
RegionAppend(&totalClip, pBorderClip);
|
|
||||||
if (pWin->viewable)
|
if (pWin->viewable)
|
||||||
viewvals++;
|
viewvals++;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue