mi: Add a default no-op miSourceValidate
Slightly simplifies the callers since they don't need to check for non-NULL anymore. I do extremely hate the workarounds here to suppress misprite taking the cursor down though. Surely there's a better way. Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
This commit is contained in:
parent
89a9927b1e
commit
ff310903f3
|
@ -180,7 +180,6 @@ compSourceValidate(DrawablePtr pDrawable,
|
|||
pScreen->SourceValidate = cs->SourceValidate;
|
||||
if (pDrawable->type == DRAWABLE_WINDOW && subWindowMode == IncludeInferiors)
|
||||
compPaintChildrenToWindow((WindowPtr) pDrawable);
|
||||
if (pScreen->SourceValidate)
|
||||
(*pScreen->SourceValidate) (pDrawable, x, y, width, height,
|
||||
subWindowMode);
|
||||
cs->SourceValidate = pScreen->SourceValidate;
|
||||
|
|
|
@ -32,6 +32,7 @@ from The Open Group.
|
|||
|
||||
#include <X11/X.h>
|
||||
#include "scrnintstr.h"
|
||||
#include "mi.h"
|
||||
#include "misc.h"
|
||||
#include "os.h"
|
||||
#include "windowstr.h"
|
||||
|
@ -394,7 +395,7 @@ Bool PixmapSyncDirtyHelper(PixmapDirtyUpdatePtr dirty)
|
|||
* leaves the software cursor in place
|
||||
*/
|
||||
SourceValidate = pScreen->SourceValidate;
|
||||
pScreen->SourceValidate = NULL;
|
||||
pScreen->SourceValidate = miSourceValidate;
|
||||
|
||||
RegionTranslate(&pixregion, dirty->x, dirty->y);
|
||||
RegionIntersect(&pixregion, &pixregion, region);
|
||||
|
|
|
@ -2918,8 +2918,8 @@ The sample server implementation is in Xserver/fb/fbscreen.c.</para>
|
|||
unsigned int subWindowMode;
|
||||
|
||||
</programlisting></blockquote>
|
||||
SourceValidate should be called by CopyArea/CopyPlane primitives when
|
||||
the SourceValidate function pointer in the screen is non-null. If you know that
|
||||
SourceValidate should be called by any primitive that reads from pDrawable.
|
||||
If you know that
|
||||
you will never need SourceValidate, you can avoid this check. Currently,
|
||||
SourceValidate is used by the mi software cursor code to remove the cursor
|
||||
from the screen when the source rectangle overlaps the cursor position.
|
||||
|
|
|
@ -459,12 +459,10 @@ ExaSrcValidate(DrawablePtr pDrawable,
|
|||
RegionUnion(dst, dst, ®);
|
||||
RegionUninit(®);
|
||||
|
||||
if (pExaScr->SavedSourceValidate) {
|
||||
swap(pExaScr, pScreen, SourceValidate);
|
||||
pScreen->SourceValidate(pDrawable, x, y, width, height, subWindowMode);
|
||||
swap(pExaScr, pScreen, SourceValidate);
|
||||
}
|
||||
}
|
||||
|
||||
static Bool
|
||||
ExaPrepareCompositeReg(ScreenPtr pScreen,
|
||||
|
|
|
@ -321,7 +321,6 @@ VGAarbiterSourceValidate(DrawablePtr pDrawable,
|
|||
|
||||
SCREEN_PROLOG(SourceValidate);
|
||||
VGAGet(pScreen);
|
||||
if (pScreen->SourceValidate)
|
||||
(*pScreen->SourceValidate) (pDrawable, x, y, width, height,
|
||||
subWindowMode);
|
||||
VGAPut();
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "mi.h"
|
||||
#include "xf86.h"
|
||||
#include "xf86DDC.h"
|
||||
#include "windowstr.h"
|
||||
|
@ -191,7 +191,7 @@ xf86RotateRedisplay(ScreenPtr pScreen)
|
|||
* leaves the software cursor in place
|
||||
*/
|
||||
SourceValidate = pScreen->SourceValidate;
|
||||
pScreen->SourceValidate = NULL;
|
||||
pScreen->SourceValidate = miSourceValidate;
|
||||
|
||||
for (c = 0; c < xf86_config->num_crtc; c++) {
|
||||
xf86CrtcPtr crtc = xf86_config->crtc[c];
|
||||
|
|
|
@ -263,7 +263,6 @@ xnestOpenScreen(ScreenPtr pScreen, int argc, char *argv[])
|
|||
pScreen->SaveScreen = xnestSaveScreen;
|
||||
pScreen->GetImage = xnestGetImage;
|
||||
pScreen->GetSpans = xnestGetSpans;
|
||||
pScreen->SourceValidate = NULL;
|
||||
|
||||
/* Window Procedures */
|
||||
|
||||
|
|
4
mi/mi.h
4
mi/mi.h
|
@ -360,6 +360,10 @@ extern _X_EXPORT void miPushPixels(GCPtr /*pGC */ ,
|
|||
|
||||
/* miscrinit.c */
|
||||
|
||||
extern _X_EXPORT void
|
||||
miSourceValidate(DrawablePtr pDrawable, int x, int y, int w, int h,
|
||||
unsigned int subWindowMode);
|
||||
|
||||
extern _X_EXPORT Bool miModifyPixmapHeader(PixmapPtr pPixmap,
|
||||
int width,
|
||||
int height,
|
||||
|
|
|
@ -158,11 +158,9 @@ miDoCopy(DrawablePtr pSrcDrawable,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
if (pSrcDrawable->pScreen->SourceValidate) {
|
||||
(*pSrcDrawable->pScreen->SourceValidate) (pSrcDrawable, xIn, yIn,
|
||||
widthSrc, heightSrc,
|
||||
pGC->subWindowMode);
|
||||
}
|
||||
|
||||
/* Compute source clip region */
|
||||
if (pSrcDrawable->type == DRAWABLE_PIXMAP) {
|
||||
|
|
|
@ -130,6 +130,13 @@ miSaveScreen(ScreenPtr pScreen, int on)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
miSourceValidate(DrawablePtr pDrawable, int x, int y, int w, int h,
|
||||
unsigned int subWindowMode)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/* With the introduction of pixmap privates, the "screen pixmap" can no
|
||||
* longer be created in miScreenInit, since all the modules that could
|
||||
* possibly ask for pixmap private space have not been initialized at
|
||||
|
@ -251,7 +258,7 @@ miScreenInit(ScreenPtr pScreen, void *pbits, /* pointer to screen bits */
|
|||
/* QueryBestSize */
|
||||
pScreen->SaveScreen = miSaveScreen;
|
||||
/* GetImage, GetSpans */
|
||||
pScreen->SourceValidate = (SourceValidateProcPtr) 0;
|
||||
pScreen->SourceValidate = miSourceValidate;
|
||||
/* CreateWindow, DestroyWindow, PositionWindow, ChangeWindowAttributes */
|
||||
/* RealizeWindow, UnrealizeWindow */
|
||||
pScreen->ValidateTree = miValidateTree;
|
||||
|
|
|
@ -478,7 +478,6 @@ miSpriteSourceValidate(DrawablePtr pDrawable, int x, int y, int width,
|
|||
}
|
||||
}
|
||||
|
||||
if (pScreen->SourceValidate)
|
||||
(*pScreen->SourceValidate) (pDrawable, x, y, width, height,
|
||||
subWindowMode);
|
||||
|
||||
|
|
|
@ -228,10 +228,8 @@ RootlessSourceValidate(DrawablePtr pDrawable, int x, int y, int w, int h,
|
|||
|
||||
RootlessStartDrawing(pWin);
|
||||
}
|
||||
if (pDrawable->pScreen->SourceValidate) {
|
||||
pDrawable->pScreen->SourceValidate(pDrawable, x, y, w, h,
|
||||
subWindowMode);
|
||||
}
|
||||
SCREEN_WRAP(pDrawable->pScreen, SourceValidate);
|
||||
}
|
||||
|
||||
|
|
|
@ -294,11 +294,9 @@ SourceValidateOnePicture(PicturePtr pPicture)
|
|||
|
||||
pScreen = pDrawable->pScreen;
|
||||
|
||||
if (pScreen->SourceValidate) {
|
||||
pScreen->SourceValidate(pDrawable, 0, 0, pDrawable->width,
|
||||
pDrawable->height, pPicture->subWindowMode);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
miCompositeSourceValidate(PicturePtr pPicture)
|
||||
|
|
Loading…
Reference in New Issue