This is strictly the application of the script 'x-indent-all.sh' from util/modular. Compared to the patch that Daniel posted in January, I've added a few indent flags: -bap -psl -T PrivatePtr -T pmWait -T _XFUNCPROTOBEGIN -T _XFUNCPROTOEND -T _X_EXPORT The typedefs were needed to make the output of sdksyms.sh match the previous output, otherwise, the code is formatted badly enough that sdksyms.sh generates incorrect output. The generated code was compared with the previous version and found to be essentially identical -- "assert" line numbers and BUILD_TIME were the only differences found. The comparison was done with this script: dir1=$1 dir2=$2 for dir in $dir1 $dir2; do (cd $dir && find . -name '*.o' | while read file; do dir=`dirname $file` base=`basename $file .o` dump=$dir/$base.dump objdump -d $file > $dump done) done find $dir1 -name '*.dump' | while read dump; do otherdump=`echo $dump | sed "s;$dir1;$dir2;"` diff -u $dump $otherdump done Signed-off-by: Keith Packard <keithp@keithp.com> Acked-by: Daniel Stone <daniel@fooishbar.org> Acked-by: Alan Coopersmith <alan.coopersmith@oracle.com>
123 lines
3.3 KiB
C
123 lines
3.3 KiB
C
|
|
#ifdef HAVE_XORG_CONFIG_H
|
|
#include <xorg-config.h>
|
|
#endif
|
|
|
|
#include "misc.h"
|
|
#include "xf86.h"
|
|
#include "xf86_OSproc.h"
|
|
|
|
#include <X11/X.h>
|
|
#include "scrnintstr.h"
|
|
#include "windowstr.h"
|
|
#include "xf86str.h"
|
|
#include "xaa.h"
|
|
#include "xaalocal.h"
|
|
#include "xaawrap.h"
|
|
#include "gcstruct.h"
|
|
#include "pixmapstr.h"
|
|
#include "mioverlay.h"
|
|
|
|
#ifdef PANORAMIX
|
|
#include "panoramiX.h"
|
|
#include "panoramiXsrv.h"
|
|
#endif
|
|
|
|
static void
|
|
XAACopyWindow8_32(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
|
|
{
|
|
DDXPointPtr pptSrc, ppt;
|
|
RegionRec rgnDst;
|
|
BoxPtr pbox;
|
|
int dx, dy, nbox;
|
|
WindowPtr pwinRoot;
|
|
ScreenPtr pScreen = pWin->drawable.pScreen;
|
|
XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_DRAWABLE((&pWin->drawable));
|
|
Bool doUnderlay = miOverlayCopyUnderlay(pScreen);
|
|
RegionPtr borderClip = &pWin->borderClip;
|
|
Bool freeReg = FALSE;
|
|
|
|
if (!infoRec->pScrn->vtSema || !infoRec->ScreenToScreenBitBlt ||
|
|
(infoRec->ScreenToScreenBitBltFlags & NO_PLANEMASK)) {
|
|
XAA_SCREEN_PROLOGUE(pScreen, CopyWindow);
|
|
if (infoRec->pScrn->vtSema && infoRec->NeedToSync) {
|
|
(*infoRec->Sync) (infoRec->pScrn);
|
|
infoRec->NeedToSync = FALSE;
|
|
}
|
|
(*pScreen->CopyWindow) (pWin, ptOldOrg, prgnSrc);
|
|
XAA_SCREEN_EPILOGUE(pScreen, CopyWindow, XAACopyWindow8_32);
|
|
return;
|
|
}
|
|
|
|
pwinRoot = pScreen->root;
|
|
|
|
if (doUnderlay)
|
|
freeReg = miOverlayCollectUnderlayRegions(pWin, &borderClip);
|
|
|
|
RegionNull(&rgnDst);
|
|
|
|
dx = ptOldOrg.x - pWin->drawable.x;
|
|
dy = ptOldOrg.y - pWin->drawable.y;
|
|
RegionTranslate(prgnSrc, -dx, -dy);
|
|
RegionIntersect(&rgnDst, borderClip, prgnSrc);
|
|
|
|
pbox = RegionRects(&rgnDst);
|
|
nbox = RegionNumRects(&rgnDst);
|
|
if (!nbox || !(pptSrc = (DDXPointPtr) malloc(nbox * sizeof(DDXPointRec)))) {
|
|
RegionUninit(&rgnDst);
|
|
return;
|
|
}
|
|
ppt = pptSrc;
|
|
|
|
while (nbox--) {
|
|
ppt->x = pbox->x1 + dx;
|
|
ppt->y = pbox->y1 + dy;
|
|
ppt++;
|
|
pbox++;
|
|
}
|
|
|
|
infoRec->ScratchGC.planemask = doUnderlay ? 0x00ffffff : 0xff000000;
|
|
infoRec->ScratchGC.alu = GXcopy;
|
|
|
|
XAADoBitBlt((DrawablePtr) pwinRoot, (DrawablePtr) pwinRoot,
|
|
&(infoRec->ScratchGC), &rgnDst, pptSrc);
|
|
|
|
free(pptSrc);
|
|
RegionUninit(&rgnDst);
|
|
if (freeReg)
|
|
RegionDestroy(borderClip);
|
|
}
|
|
|
|
static void
|
|
XAASetColorKey8_32(ScreenPtr pScreen, int nbox, BoxPtr pbox)
|
|
{
|
|
XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);
|
|
ScrnInfoPtr pScrn = infoRec->pScrn;
|
|
|
|
/* I'm counting on writes being clipped away while switched away.
|
|
If this isn't going to be true then I need to be wrapping instead. */
|
|
if (!infoRec->pScrn->vtSema)
|
|
return;
|
|
|
|
(*infoRec->FillSolidRects) (pScrn, pScrn->colorKey << 24, GXcopy,
|
|
0xff000000, nbox, pbox);
|
|
|
|
SET_SYNC_FLAG(infoRec);
|
|
}
|
|
|
|
void
|
|
XAASetupOverlay8_32Planar(ScreenPtr pScreen)
|
|
{
|
|
XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCREEN(pScreen);
|
|
int i;
|
|
|
|
pScreen->CopyWindow = XAACopyWindow8_32;
|
|
|
|
if (!(infoRec->FillSolidRectsFlags & NO_PLANEMASK))
|
|
miOverlaySetTransFunction(pScreen, XAASetColorKey8_32);
|
|
|
|
infoRec->FullPlanemask = ~0;
|
|
for (i = 0; i < 32; i++) /* haven't thought about this much */
|
|
infoRec->FullPlanemasks[i] = ~0;
|
|
}
|